1. 기본키(key)
: 필드의 일부로, 레코드를 유일하게 식별해 낼 수 있는 식별자 역할을 함
-> 관계형 데이터 모델에서 특정 레코드를 구별하기 위한 유일한 방법
2. 두 개 이상의 필드로 구성된 복합키를 가질 수도 있음
ex) '학번'과 '주민등록번호' 필드는 레코드마다 유일하므로 키가 될 수 있음
3. 키의 종류
1) 수퍼키
: 아무런 제약 조건없이 레코드들을 식별할 수 있는 필드의 집합
ex)(주민등록번호), (학번, 주민등록번호)
2) 후보키(기본키가 되기위한)
: 레코드를 구별하는데 불필요한 필드를 제외하고 최소한의 필드로만 구성
ex)(주민등록번호), (학번),(이름,학과명)
3) 기본키
: 후보키 중에서 레코드들의 식별자로 선택한 하나의 키
ex)(주민등록번호), (학번)
여기서 잠깐!!
Quiz 1) (이름, 주소), (이름, 학과명)이 후보키/기본키 자격이 있는가?
-> 있다! 테이블의 모든 가능한 인스턴스에 대해서도 키가 되는 것이 보장되어야 함
Quiz 2) 키가 null이 될 수 있나?
-> 기본키는 null 값을 가질 수 없다! null 값을 가지면 식별자로서의 기능을 상실하기 때문이다.
4. 외래키(foreign key)
: 다른 테이블의 기본키를 참조하는 필드 집합
두 스키마 R1, R2에 대하여,
R1의 기본키를 R2가 외래키로서 참조하려면
- R1의 기본키 필드와 R2의 외래키 필드가 동일한 도메인을 가져야 함
- R2의 각 레코드들은 R1 기본키 필드의 값 중 하나와 일치하거나 null 값을 가져야 함
* 만약 외래키가 null일 경우, 그 값을 알지 못하거나 아직 결정되지 않았음을 의미함
- 자기 자신을 참조하는 외래키가 있을 수도 있음
'Computer Science > Database' 카테고리의 다른 글
SQL Plus 명령어 (0) | 2020.10.16 |
---|---|
관계형 데이터베이스 5) 집합 연산, 조인 (0) | 2020.10.13 |
관계형 데이터베이스 4) 관계형 데이터베이스란? 관계 대수 (0) | 2020.10.12 |
관계형 데이터베이스 2) 테이블 스키마, 테이블 인스턴스 (0) | 2020.10.06 |
관계형 데이터베이스 1) 릴레이션이란? (0) | 2020.10.06 |