반응형
키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 구별할 수 있는 유일한 기준이 되는 속성(Attribute)을 의미한다.
튜플은 속성의 모임으로 릴레이션의 각 행을 뜻하며 파일 구조에서 레코드와 같은 의미이다. 튜플의 수를 카디널리티(Cardinality) 또는 기수, 대응수라고 한다.
속성은 데이터베이스를 구성하는 가장 작은 논리적 단위로 개체(Entity)의 특성을 의미한다. 파일 구조상의 데이터 항목 또는 데이터 필드에 해당된다. 속성의 수를 디그리(Degree) 또는 차수라고 한다.
예를 들어 다음과 같이 4개의 속성과 4개의 튜플이 존재하는 학생 테이블이 있다고 하자.
현재의 테이블에서는 중복된 값을 가지는 S_Grade, S_Subject 속성을 제외한 S_Id, S_Name 속성들은 모든 튜플을 구별할 수 있기 때문에 키가 될 수 있다.
그렇다면 다른 학생이 추가되는 경우를 생각해보자. 매번 학생이 추가될 때마다 S_Id는 중복이 되지 않을 것이지만 똑같은 이름을 가질 수도 있을 것이다. 그런 상황이 발생한다면 S_Name은 키의 조건을 충족하지 못할 것이다.
결국 상황에 따라 키의 정의가 애매할 수 있을 것이다. 이를 해결하기 위해 키라는 큰 개념을 다양한 범위의 키들로 분리하였다.
그렇다면 분리된 키의 종류는 어떤 것이 있는지 살펴보자.
1. 후보키(Candidate Key)
- 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합
- 기본키로 사용할 수 있는 속성
- 하나의 릴레이션에는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션은 반드시 하나 이상의 후보키가 존재
- 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함
2. 기본키(Primary Key)
- 후보키 중에서 특별히 선정된 주키(Main Key)로 중복된 값을 가질 수 없음
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성
- 후보키의 성질을 가짐. 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키
- 기본키는 NULL 값을 가질 수 없음
3. 대체키(Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미
4. 슈퍼키(Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않음
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만 최소성은 만족시키지 못함
5. 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미
- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 떄의 속성 A를 외래키라고 함
- 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없음
반응형
'Computer Science > 데이터베이스' 카테고리의 다른 글
인덱스(Index) (0) | 2021.07.10 |
---|---|
DML - JOIN (0) | 2021.07.10 |
SQL의 분류와 사용법 (0) | 2021.07.09 |
트랜잭션(Transaction) (0) | 2021.07.09 |
정규화(Normalization) (0) | 2021.07.09 |
댓글