Relation Data model
릴레이션의 예시
- Attribute 속성 : 각 데이터를 의미하는 이름
- Tuple 투플 : entity instance, record.
- Domain 도메인 : 속성의 타입을 의미한다. 예를들어 age는 int로 정의할 수 있다.
- Null
- Degree 차수 : attribute의 갯수 여기서는 7개다
- Cardinality 카디널리티 : tuple(entity instance)의 갯수
Relation의 특징
- Tuple의 유일성 : 하나의 relation에는 동일한 tuple이 존재 할 수 없다.
- Tuple의 무순서 : tuple간에는 순서가 없다. 효율을 위해 삽입 순서를 임의로 바꾸기도 한다.
- Attribute의 무순서 : attribute간에는 순서가 없다.
- Attribute의 원자성 : tuple속 데이터는 하나의 값만 들어가야 한다.
Key
1. Super key
- 유일성의 특성을 만족하는 attribute의 집합이다.
- 유일성은 key가 갖춰어야 하는 기본 특성으로 , 하나의 relation에서 key로 지정된 속성 값은 tuple마다 달라야 한다는 의미다. key가 같은 tuple은 존재할 수 없다.
- 그런데 super key중에는 유일한 tuple을 구별하기 위해 N개의 tuple이 다름을 판단하기 위해 불필요한 attribute 값까지 확인하는 비효율적인 작업이 필요한 경우도 있다. 그래서 몇가지로 제한하는 것이 candidate key다.
2. Candidate key
- 유일성과 최소성을 만족하는 attribute의 집합니다.
- 최소성은 꼭 필요한 최소한의 attribute들로만 key를 구성하는 특징이다.
- 유일성과 최소성의 특징은 새로운 tuple이 삽입되거나 기존 tuple attribute가 바껴도 유지되어야 한다.
3. Primary key
- relation에서 tuple을 구별하기 위해 여러개의 candidate key를 모두 사용할 필요는 없다. 그중에 하나만 선택해 primary key로 사용한다.
- Null 값을 가질 수 있는 attribute가 포함된 cadidate key는 primary key로 부적합한다.
- 값이 자주 변경 될 수 있는 attribute가 포함된 candidate key는 primary key로 부적합하다
- 단순한 candidate key를 primary key로 선택한다.
4. Foreign key
- 다른 릴레이션의 primary key가 되는 key다. 아래의 scheme을 보면 이해할 수 있다.
5. Alternative key
- primary key로 선정되지 못한 candidate key를 말한다.