728x90
릴레이션의 키
- 각 투플을 고유하게 식별할 수 있는 하나 이상의 애트리뷰트들의 모임
- 수퍼 키(superkey), 후보 키(candidate key), 기본 키(primary key), 대체 키(alternate key), 외래 키(foreign key)
수퍼 키 (superkey)
- 한 릴레이션 내의 특정 투플을 고유하게 식별하는 하나의 애트리뷰트 또는 애트리뷰트들의 집합
- 예: 신용카드 회사의 고객 릴레이션에서 (신용카드번호, 주소) 또는 (주민등록번호, 이름) 또는 (주민등록번호)
- 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음
- 필요하지 않은 애트리뷰트를 포함할 수 있음
후보 키 (candidate key)
- 각 투플을 고유하게 식별하는 최소한의 애트리뷰트들의 모임 (예: (신용카드번호, 주소)는 신용카드 회사의 고객 릴레이션의 후보 키가 아니지만 (신용카드번호)는 후보 키)
- 모든 릴레이션에는 최소한 한 개 이상의 후보 키가 있음
- 후보 키도 두 개 이상의 애트리뷰트로 이루어질 수 있으며 이런 경우에 복합 키(composite key)라고 부름(예: (학번, 과목번호)가 후보 키)
- 혼자서 후보키가 안되는 두개 이상의 애트리뷰트를 모아 후보키를 만들 수 있다.
기본 키 (primary key)
- 한 릴레이션에 후보 키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정함(예: 신용카드 회사의 고객 릴레이션에서 신용카드번호와 주민등록번호가 후보 키가 될 수 있음. 이 중에서 신용카드 번호를 기본 키로 선정)
- 자연스러운 기본 키를 찾을 수 없는 경우에는 레코드 번호와 같이 종종 인위적인 키 애트리뷰트를 릴레이션에 추가할 수 있음(항상 고유한 값을 가져야한다, 항상 NULL 값을 갖지 않아야한다, 값이 변경되지 않아야한다, 가능하면 가는 문자열, 짧은 정수가 좋다, 복합키는 피하는 것이 좋다.)
대체 키 (alternate key)
- 기본 키가 아닌 후보 키(예: 신용카드 회사의 고객 릴레이션에서 신용카드번호를 기본 키로 선정하면 주민등록번호는 대체 키)
외래 키 (foreign key)
- 어떤 릴레이션의 기본 키를 참조하는 애트리뷰트
- 관계 데이터베이스에서 릴레이션들 간의 관계를 나타내기 위해서 사용됨
- 외래 키 애트리뷰트는 참조되는 릴레이션의 기본 키와 동일한 도메인을 가져야 함
- 자신이 속한 릴레이션의 기본 키의 구성요소가 되거나 되지 않을 수 있음
외래 키의 유형
- 다른 릴레이션의 기본 키를 참조하는 외래 키
- 자체 릴레이션의 기본 키를 참조하는 외래 키
- 기본 키의 구성요소가 되는 외래 키(외래 키들이 모여서 기본키가 되는 것)
728x90
'👨💻Computer Science > 데이터베이스' 카테고리의 다른 글
[Database] 04 - 1 관계 대수와 SQL (0) | 2021.09.16 |
---|---|
[Database] 02 - 4 무결성 제약조건 (0) | 2021.09.14 |
[Database] 02 - 2 릴레이션의 특성 (0) | 2021.09.14 |
[Database] 02 - 1 관계 데이터 모델과 제약조건 (0) | 2021.09.14 |
[Database] 01 - 7 데이터베이스 시스템 아키텍처 (0) | 2021.09.09 |
댓글