Database
Chapter 05. 관계 데이터 모델
JinWooHong Dev
2019. 10. 17. 00:08
1. 관계 데이터 모델의 개념
1-1. 관계 데이터 모델의 기본 용어
- 일반적으로 관계 데이터 모델에서는 하나의 개체에 관한 데이터를 릴레이션(Relation) 하나에 담아 데이터베이스에 저장.
- 릴레이션의 예 : 고객 릴레이션
고객아이디 CHAR(20) |
고객이름 CHAR(20) |
나이 INT |
등급 CHAR(10) |
직업 CHAR(10) |
적립금 INT |
apple | 김현준 | 20 | gold | 학생 | 1000 |
banana | 정소화 | 25 | vip | 간호사 | 2500 |
carrot | 원유선 | 28 | gold | 교사 | 4500 |
orange | 정지영 | 22 | silver | 학생 | 0 |
- 속성 : 릴레이션의 열을 속성 또는 애트리뷰트(Attribute)라고 부른다.
- 투플 : 릴레이션의 행을 투플(Tuple)이라 부른다.
- 도메인 : 속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인(Domain)이라 한다. 도메인을 정의해두면 사용자가 속성 값을 입력하거나 수정할 때 데이터베이스 시스템이 적합성을 판단하여 네 가지 잉외의 값을 허용하지 않음으로써 항상 올바른 값만 유지할 수 있다는 장점이 있다.
- 널 값 : 릴레이션에 있는 특정 투플의 속성 값을 모르거나, 적합한 값이 없는 경우에는 널(Null)이라는 특별한 값을 사용할 수 있다.
- 차수 : 하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수(Degree)라고 한다.
- 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수를 릴레이션의 카디널리티(Cardinality)라고 한다.
1-2. 릴레이션과 데이터베이스의 구성
- 릴레이션 스키마 : 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조.
- 릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 존재하는 투플들의 집합.
1-3. 릴레이션의 특성
- 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다.
- 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다.
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다.
1-4. 키의 종류
릴레이션에 포함된 투플들을 유일하게 구별해주는 역할은 속성 또는 속성들의 집합인 키가 담당한다.
- 슈퍼키 : 유일성의 특성을 만족하는 속성 또는 속성들의 집합
- 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합.
- 기본키 : 여러 후보키 중에서 기본적으로 사용해야 하는 키
- 널 값을 가질 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
- 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.
- 단순한 후보키를 기본키로 선택한다.
- 대체키 : 기본키로 선택되지 못한 후보키
- 외래키 : 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키
2. 관계 데이터 모델의 제약
2-1. 개체 무결성 제약조건
개체 무결성 제약조건(Entity Integrity Constraint)이란?
- 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙.
- 기본키를 구성하는 속성 전체나 일부가 널 값이 되면 투플의 유일성을 판단할 수 없어 기본키의 본래 목적을 상실하게된다.
2-2. 참조 무결성 제약조건
참조 무결성 제약조건(Referential Integrity Constraint)이란?
- 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙.
- 외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 없어지기 때문에 외래키는 참조 가능한 값만 가져야 한다.