[데이터베이스] Key의 종류
(관계형) 데이터베이스 (RDBMS) 의 각 table을 relation이라고 하며
relation은 attribute(column name)와 tuple(rows)들로 이루어져있다.
이때 attribute들의 부분집합으로 super key를 정의할 수 있다.
여기서 key란, 해당 attribute들의 tuple들이 서로 겹치지 않을 때, 그 해당 attribute들은 super key가 될 자격을 가지게 된다.
예를 들어, 아래와 같은 table이 주어졌다고 할 때, {age,sex}, {age,bloodtype} 등은 super key가 될 수 있다.
한편, candidate key란 위의 가능한 super key의 후보들 중 최소한의 개수(cardinality)를 갖는 key이다.
예를 들면, {age} 나 {height} 같은 것이 최소 개수 1을 가지므로 candidate key가 될 수 있겠다.
한편, primary key는 candidate key 들 중에서 사용자가 지정한 key이다.
즉, table마다 하나의 primary key를 가질 수 있으며, 이는 사용자가 지정하기 나름이다.
정리하면
가 성립한다.
참고로 primary key를 refer하는 attribute를 foreign key라고 부른다.
즉, 테이블에서 어떤 attribute가 primary key가 아닌데 또다른 테이블에서는 primary key일때,
그 테이블에서의 attribute가 다른 테이블에서의 primary key를 참조하게 만들면 그 attribute는 foreign key가 된다. foreign key는 데이터의 기입 오류를 방지해준다.