개요
릴레이션에서 키란, 각 튜플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임이다.
슈퍼 키, 후보 키, 기본 키, 대체 키, 외래 키가 있다.
슈퍼 키
한 릴레이션 내의 특정 튜플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합이다.
튜플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있다.
후보 키
각 튜플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임이다.
슈퍼 키와의 차이점은 후보 키는 최소성을 만족해야 한다는 것
후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있다. 이 경우 복합 키라고도 부른다.
ex) 수강 릴레이션의 학번-과목번호는 재수강이 없는 한 후보 키가 될 수 있다.
위 그림에서 학번, 과목번호는 같은 값이 여러 개 존재 할 수 있지만, 학번-과목번호의 애트리뷰트 집합은 고유하다.
기본 키
하나의 릴레이션에는 여러 개의 후보 키가 존재할 수 있다.
설계자 또는 DB 관리자가 이 중의 하나를 기본 키로 선정한다.
기본 키가 아닌 후보 키들은 대체 키라고 부른다.
기본 키 선정조건
1. 항상 고유한 값을 가지는가?
2. 확실하게 NULL 값을 가지지 않는가?
3. 값이 변경될 가능성이 적은가?
4. 가능하면 작은 정수 값 또는 문자열
5. 가능하면 복합 키는 피하기
자연스럽게 튜플을 대표할 수 있는 애트리뷰트가 기본 키로 선정하기에 좋다.
자연스러운 기본 키가 없을 경우 레코드 번호와 같이 인위적인 애트리뷰트를 릴레이션에 추가하기도 한다.
외래 키
어떤 릴레이션의 기본 키를 참조하는 애트리뷰트이다.
어떤 릴레이션은 다른 릴레이션 일수도, 자기 자신일수도 있다.
관계 DB에서 릴레이션 간의 관계를 나타내기 위해 사용된다.
외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 한다.
외래 키는 자신이 속한 릴레이션의 기본 키 구성요소가 될 수도 있고, 되지 않을 수도 있다.
외래 키의 유형
1. 다른 릴레이션의 기본 키를 참조하는 외래 키
EMPLOYEE 릴레이션의 DNO 애트리뷰트는 다른 릴레이션 DEPARTMENT의 기본 키인 DEPTNO을 참조한다.
2. 자체 릴레이션의 기본 키를 참조하는 외래 키
각 사원의 관리자가 누군지를 표시하는 MANAGER 애트리뷰트가 존재한다.
이 애트리뷰트는 자체 릴레이션의 기본 키인 EMPNO 애트리뷰트를 참조한다.
EMPNO 3011 이수민의 MANAGER 값에는 NULL값이 들어있는 것을 확인할 수 있다.
3. 기본 키의 구성요소가 되는 외래 키
학번, 과목번호는 다른 릴레이션의 기본 키를 참조하는 모두 외래 키이다.
학번, 과목번호는 각각 애트리뷰트 하나로는 기본 키가 될 수 없다.
하지만 (학번, 과목번호)의 애트리뷰트 집합은 앞서 말했듯이 기본 키가 될 수 있다.
즉, 학번과 과목번호(각각 외래 키)는 수강 릴레이션의 기본 키의 구성요소가 된다.
'CS > DB' 카테고리의 다른 글
[SQL] Table 생성 및 수정, 삭제 (0) | 2022.04.25 |
---|---|
[SQL] 내포된 SQL (0) | 2022.04.24 |
[DB] 연산자 (0) | 2022.03.23 |
[DB] 무결성 제약 조건 (0) | 2022.03.18 |
[DB] 트랜잭션 (0) | 2022.03.15 |