1. 관계 데이터 모델이란?
1) 관계 데이터 모델의 정의
- DB를 2차원 테이블(Table) 즉, 릴레이션(Relation)의 집합으로 모델링하는 논리적 데이터 구조이다.
- 1970년 E.F Codd 박사가 처음 제안한 모델로서, 현재 가장 많은 DBMS가 기초로 하고 있는 논리적 데이터 모델이다.
2) 관계 데이터 모델의 특징
- 개체와 관계가 모두 2차원 테이블(릴레이션)로 표현된다.
- ER 모델을 관계 데이터 모델로 변형하는 것이 매우 쉽다.
2. 관계 데이터 모델의 주요 용어
1) 튜플(Tuple)
- 릴레이션의 각 행(Row)으로서, 개체(Entity)에 대응한다.
2) 속성(Attribute)
- 릴레이션의 각 열(Column)로서, 이름을 가진 정보의 가장 작은 논리적인 단위이다.
3) 도메인(Domain)
- 한 속성이 취할 수 있는 모든 원자의 값의 집합을 의미한다.
(데이터 타입, 크기, 형식, 제한 범위, Not Null 여부 등으로 정의한다.)
4) 기수(Cardinality;카디널리티)
- 하나의 릴레이션이 갖는 튜플의 수를 의미한다.
5) 차수(Degree)
- 하나의 릴레이션이 갖는 속성의 수를 의미한다.
6) 릴레이션 스키마(Relation Schema)
- 릴레이션을 구성하는 속성들의 집합을 의미한다.
7) 릴레이션 인스턴스(Relation Instance)
- 릴레이션을 구성하는 튜플들의 집합을 의미한다.
8) 릴레이션(Relation)
- 행과 열로 구성된 2차원 구조로서, 릴레이션 스키마와 릴레이션 인스턴스가 합쳐진 개념이다.
(릴레이션 스키마 + 릴레이션 인스턴스)
9) 키(Key)
- 튜플들을 유일(Unique)하게 식별할 수 있는 속성, 또는 속성들의 집합을 의미한다.
3. 릴레이션의 특징
-
튜플의 유일성
- 하나의 릴레이션에 있는 튜플들은 모두 달라야 한다.
-
튜플의 무순서성
- 하나의 릴레이션에서 튜플들의 순서(order)는 아무런 의미가 없다.
-
속성의 무순서성
- 하나의 릴레이션에서 속성들의 순서는 아무런 의미가 없다.
-
속성의 유일성
- 하나의 릴레이션에는 같은 이름을 갖는 속성은 존재할 수 없다.
-
속성의 원자성
- 모든 속성은 반드시 원자 값(Atomic Value)을 가져야 한다.
4. 관계 DB 스키마 정의 방법
관계 DB 스키마 = {릴레이션 스키마} + {무결성 제약 조건}
5. 키(Key)
- 후보 키(Candidate Key)
- 키 가운데 유일성(Uniqueness)과 최소성(Minimality)을 만족하는 속성 집합
- 슈퍼 키(Super Key)
- 유일성은 만족하지만 최소성이 만족되지 않는 속성 집합
- 기본 키(Primary Key)
- 후보 키 가운데 업무에 적합하게 선택된 하나의 키(대개 DB설계자가 지정함)
- 널 값을 가질 수 없고, 중복되지 않는 유효한 값을 가져야 함
- 대체 키(Alternative Key)
- 외래 키(Foreign Key)
- 릴레이션 간의 관계를 정의하는 키로서, 하위 릴레이션(참조 릴레이션)에서 상위 릴레이션(피참조 릴레이션)의 기본 키를 외래 키로 포함하게 됨
6. 무결성 제약 조건(Integrity Constraints)
- DB에 저장된 데이터의 정확성과 일관성 유지를 위해서 DB가 항상 만족해야 하는 조건
관계 데이터 모델의 무결성 제약 조건
1) 개체 무결성(Entity Integrity)
- 기본 키는 튜플들을 유일하게 식별하기 위해서 널(Null) 값을 가질 수 없다는 제약 조건이다.
=> 튜플을 유일하게 식별하기 위해서 기본 키는 반드시 값을 가져야 한다.
2) 참조 무결성(Referential Integrity)
- 외래 키는 반드시 피참조 릴레이션의 기본 키 값이나 널 값을 가져야 한다는 제약 조건이다.
=> 외래 키는 대응하지 않는 값을 가질 수 없으며, 이를 위배하는 경우 두 릴레이션은 서로 참조될 수 없음을 의미한다.
3) 도메인 무결성(Domain Integrity)
- 특정 속성은 반드시 미리 정해진 값을 가져야 한다는 제약 조건
=> 데이터 타입, 길이, 디폴트 값, 널(Null) 값 허용 여부, 허용되는 값의 범위 등을 만족하는 값을 가져야 함을 의미한다.
무결성 제약 조건 정의 방법
1) 묵시적 정의
- 릴레이션을 정의할 때 기본 키와 외래 키를 정의하면, 개체 무결성과 참조 무결성이 묵시적으로 정의된다.
2) 명시적 정의
- 개체 무결성과 참조 무결성 이외에, 데이터의 정확성과 일관성 유지를 위해서 특정 속성이 만족해야 하는 무결성 제약조건(NOT NULL, UNIQUE, CHECK 등)은 명시적으로 정의해야 한다.