1. 키(Key)
: 릴레이션에서 다른 튜플들과 서로 구분할 수 있는 유일한 기준이 되는 속성.
1. 1. 키의 종류 ★★
- 후보키(Candidate Key)
– 릴레이션을 구성하는 속성들 중 튜플을 유일하게 구별하기 위해 사용하는 속성들의 부분집합. => 기본키로 사용할 수 있는 집합
– 반드시 하나 이상의 후보키가 존재.
– 모든 튜플에 대해 *유일성과 *최소성 만족
*유일성(Unique): 하나의 키 값으로 하나의 튜플만을 유일하게 식별해야 함.
*최소성(Minimality): 모든 레코드를 유익하게 식별하는 데 필요한 속성으로 만 구성되어야 함.
- 기본키(Primary Key)
– 후보키 중에서 특별히 선정된 주 키.
– 후보키의 성질을 갖고있으므로, 최소성과 유일성 만족.
– 중복된 값을 가질 수 없으며, NULL값을 가질 수 없음.
- 대체키(Alternate Key)
– 후보키가 둘 이상일 때 기본키를 제외한 나머지.
- 슈퍼키(Super Key)
– 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키.
– 유일성은 만족하지만, 최소성은 만족시키지 못함.
- 외래키(Foreign Key)
– 다른 릴레이션의 기본키를 참조하는 속성이나 속성들의 집합.
=> 기본키 / 대체키 ⊂ 후보키 ⊂ 슈퍼키
2. 무결성
: 데이터의 정확성, 일관성, 유효성이 유지되는 것.
2. 1. 무결성의 종류 ★★
- 개체 무결성(Entity Integrity)
– 모든 릴레이션은 기본키를 가져야 한다.
– 기본키는 중복되지 않는 고유한 값을 가져야 한다.
– 릴레이션의 기본키는 NULL값을 허용하지 않는다.
- 참조 무결성(Referential Integrity)
– 외래키의 값은 NULL이나 참조하는 릴레이션의 기본키 값과 동일해야 한다.
– 각 릴레이션은 참조할 수 없는 외래키 값을 가질 수 있다.
- 도메인 무결성(Domain Integrity)
– 속성들의 값은 정의된 도메인에 속한 값이어야 한다.
- 이외: 고유 무결성, 키 무결성, 릴레이션 무결성, 사용자 정의 무결성