CS/데이터베이스(DB)

[DB] 키(key)

혀니리리 2023. 12. 17. 18:32
728x90

[DataBase] 키(Key)의 개념 및 종류 (tistory.com)

 

[DataBase] 키(Key)의 개념 및 종류

데이터 베이스 키(Key)의 개념 및 종류 키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)입니다. *

limkydev.tistory.com

 

 

1.후보키

 * 릴레이션을 구성하는 속성들 중 튜플을 유일하게 식별할 수 있는 속성들의 부분집합

 * 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야함.

 * 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함.

 ex) <학생> 릴레이션에서의 '학번' 이나 '주민번호'

-> 기본키가 될 수 있는 키들을 후보키라고 함.

 

2.기본키

* 후보키 중에서 선택한 주 키 (main key)

* 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성

ex) <학생> 릴레이션에서는 '학번'이나 '주민번호'가 기본키가 될 수 있고,

<수강>릴레이션에서는 '학번' + '과목명'으로 조합해야 기본키가 만들어질 수 있음.

 

3.대체키 (보조키)

* 후보키가 둘 이상일때 기본키를 제외한 나머지 후보키

ex) <학생>릴레이션에서 '학번'을 기본키로 정의하면 '주민번호'는 대체키가 됨.

 

4.슈퍼키

* 한 릴레이션 내에 있는  속성들의 집합으로 구성된 키.

* 유일성은 만족하지만, 최소성은 만족시키지 못함

ex) <학생>릴레이션에서는 '학번', '주민번호', '학번'+'주민번호', '학번'+'주민번호'+'성명' 등으로 슈퍼키를 구성할 수 있습니다. 또한 여기서 최소성을 만족시키지 못한다는 말은 '학번'+'주민번호'+'성명' 가 슈퍼기인 경우 3개의 속성 조합을 통해 다른 튜플과 구별이 가능하지만, '성명' 단독적으로 슈퍼키를 사용했을 때는 구별이 가능하지 않기 때문에 최소성을 만족시키지 못합니다. 즉 뭉쳤을 경우 유일성이 생기고, 흩어지면 몇몇 속성들은 독단적으로 유일성있는 키로 사용할 수 없습니다. 이것을 최소성을 만족하지 못한다고 합니다.

 

5.외래키

관계를 맺고 있는 릴레이션 R1,R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성

ex) <수강>릴레이션이 <학생>릴레이션을 참조하고 있으므로 <학생> 릴레이션의 '학번'은 기본키, <수강>릴레이션의 '학번'은 외래키임.

728x90

'CS > 데이터베이스(DB)' 카테고리의 다른 글

[DB] NoSQL (+Redis)  (0) 2023.12.17
[DB] clustered / non clustered index  (0) 2023.12.17
[DB] Union vs Union All (+JOIN)  (0) 2023.12.17
[DB] 정규화  (1) 2023.12.17
트랜잭션  (0) 2023.09.27