개인공부/db

1-2장 (관계형 데이터베이스)

minseokiim 2023. 7. 20. 15:18

* 데이터, 정보, 지식 차이?

1. 데이터- 정형화되고 기록할 만한 가치가 있다고 판단되는 현상, 사진 아이디어 묘사

2. 정보- 데이터를 포함하면서 이들 로부터 유도될 수 있는 유추된 사실들 포함

3. 지식- 정적인 데이터나 정보를 처리하는 방법이나 어떤 근거에 의한 판단을 내리는데 필요한 분석과 규칙, 법칙 포함

 

현실세계에서 데이터 추출, 데이터 처리한 게 정보, 정보에서 지식으로 추론

 

* 데이터베이스

: 정형화되고 조작가능한 컴퓨터에 저장된 데이터의 모임, 특정목적을 위해 데이터 처리작업 수행

 

* DBMS (데이터 베이스 관리 시스템)

: 컴퓨터에 저장되는 데이터베이스 관리 (창고의 관리인 역할)

 

데이터모델-정보를 관리하는 양식, 하나의 응용 프로그램의 독점이 아닌 여러 곳의 공유

동시성문제 때문에 하나의 프로그램이 일을 마칠 때까지 해당 데이터 독점 가능

 

* 파일시스템- 컴퓨터 시스템에서 사용되는 모든 자료를 운영체제가 편리하고 효과적으로 디스크에 쓰고 읽을 수 있도록 지원

 

* 최종사용자(=일반사용자) -인터페이스 이용하여 해당 응용분야 업무처리

기술적 사항 알 필요 없지만 DBMS 숙련된 최종 사용자라면 응용프로그램 통하지 않고도 DBMS자체 제공 인터페이스 이용 가능

 

* 데이터모델- 현실세계를 단순하고 정형화된 형태로 표현하는 하나의 방식 혹은 규범

실제 데이터가 갖는 특성을 살리면서 목적에 맞게 관심있는 정보만 단순화하여 표현

(단, 데이터에 대한 조작 가능해야 함)

 

* 관계형 데이터 모델(relational data model)

- 테이블(=릴레이션) 이용하여 데이터 정의

릴레이션 구성하는 각 열 -> 필드(컬럼, 속성) : ex)이름 ,전화번호

릴레이션 구성하는 행 -> 레코드 (튜플, 행) : 각 속성에서 정의된 값 이용하여 구성

 

 

* 도메인 : 각 필드에서 입력 가능한 값의 범위, 더 이상 분리 할 수 없는 원자값 이어야 함

* 필드의 null값: 값을 알지 못하거나 정해지지 않아 입력 못하는 값, 아스키코드 0(숫자 0이랑 다름)

 

 

* 테이블 스키마

: 테이블의 정의에 따라 만들어진 데이터 구조

R(A1, …., An)  // R은 테이블 이름, An은 필드의 이름 -> R스키마 ,N항 테이블

* 테이블 인스턴스: 테이블 스키마에 현실세계의 데이터를 레코드로 저장한 형태(레코드들의 집합)

* 기수 : 레코드의 수 (인스턴스의 개수)

 

* 테이블 특성

-중복X, 순서는 의미X(집합 같은 개념), 모든 필드는 원자값 가짐

 

* key

* : 일부만으로도 각 레코드를 식별 할 수 있는 필드 ex) 학번, 군번, 주민번호

* 복합키: 두개 이상의 필드로 구성된 키 ex) (학번, 주민번호)

* 수퍼키: 아무런 제약 조건 없이 레코드를 식별 할 수 있는 집합

* 후보키: 최소한의 필드만으로 구성된 키 ex)주민번호

* 기본키: 후보키중 식별자로 지정 가능한 하나의 키, 기본키는 null이 될 수 없음

* 외래키: 필드의 값이 다른 필드의 값의 기본키가 되는 것 (테이블간의 관계를 맺어주는 값)

외래키(FK)의 필드들은 기본키(PK)와 동일한 도메인(같은 타입)을 갖는다

 

* 관계대수

:관계형 데이터베이스에서의 질의어, 관계해석보다는 절차적, 기존언어보다는 비절차적

 

* 기본연산

-선택연산 (데이터 검색) -> σ <조건식> (테이블 이름)

선택연산에서의 NULL-> 알지 못하는 값이라 A도 아니고 A의 여집합도 아니다

 

* 추출연산 (필드 검색) -> π <필드리스트> (테이블이름)

중복을 제거해야 하지만 대부분의 실제DBMS에서는 중복 허용

 

* 재명명 연산 (관계대수의 연산결과로 생성되는 테이블에 이름 부여 /변경 해줌)

P <테이블명1> (테이블명2)  //테이블명2를 1로 변경

P <테이블명1>(<필드리스트>) (<테이블명2>) //테이블명 변경 + 필드명 변경

 

* 집합 연산

       -합집합

       -교집합

       -차집합

       -카티션 프로덕트

        (각각의 레코드들을 서로 결합하여 가능한 모든 조합을 테이블로 만듦) -> <테이블명1> x <테이블명2>

 

* 추가연산

-      조인(세타조인) : 특정조건을 만족하는 레코드들을 하나로 결합

<테이블이름1> ▷◁<조건식> <테이블이름2> //테이블끼리는 외래키로 관련되어있음

(동등비교 연산하는 세타 조인을 동등조인이라 함)

-      자연조인 : 동일한 이름을 갖는 필드 중 같은 값 갖는 레코드만 선택, 동일 필드중 하나 제외

              서로 일치되지 않는 레코드 제외

<테이블이름1> ▷◁ <테이블이름2>

-      외부조인 : 조인조건에 만족되지 않은 레코드까지 포함

왼쪽(=▷◁), 오른쪽(▷◁=) ,완전 외부조인(=▷◁=) 존재

부합하는 레코드 없으면 null값 입력

 

* 지정연산 :복잡한 질의를 단계적으로 분해

 

'개인공부 > db' 카테고리의 다른 글

8장 (물리적 저장 구조와 인덱스)  (0) 2023.07.20
7장 (함수적 종속과 정규화)  (0) 2023.07.20
6장 (데이터베이스 설계)  (0) 2023.07.20
5장 (무결성과 보안)  (0) 2023.07.20
3장 (오라클)  (0) 2023.07.20