데이터 키
데이터 키의 개요
데이터 키의 정의
데이터베이스 객체(Entity) 간의 관계(Relation)에서 투플을 유일하게 식별할 수 있는 속성의 집합
데이터 키의 특징
- 유일성: 속성의 집합인 키의 내용이 객체 내에서 유일해야 함
- 대표성: 객체 내의 후보키는 하나의 투플만을 식별
- 최소성: 객체의 모든 투플을 유일하게 식별하기 위해 꼭 필요한 속성들로 구성
데이터 키의 관계 및 유형
데이터 키의 관계
데이터 키의 유형
유형 | 설명 | 특성 |
---|---|---|
Super Key(슈퍼키) | 레코드를 유일하게 식별할 수 있는 하나 또는 그 이상의 애트리뷰트 집합 | 유일성(uniqueness) |
Candidate Key(후보키) | 레코드를 유일하게 구분할 수 있는 최적화한 필드의 집합 | 유일성, 최소성, minimal, not null |
Primary Key(기본키) | 후보키 중 레코드를 효율적으로 관리하도록 선택한 주 키(Main Key) | 유일성, 최소성, Not null |
Alternate Key(대체키) | 선정된 기본키를 제외한 나머지 후보키들, 보조키(Secondary Key) | 유일성, 최소성, Not null |
Foreign Key(외래키) | 연관 관계가 있는 다른 테이블의 후보키 값을 참조하는 키 |
데이터 키의 제약조건과 무결성
데이터 키의 제약조건
제약조건 | 설명 |
---|---|
PRIMARY KEY(PK) | 해당 컬럼 값은 반드시 존재해야 하며, 유일해야 함 (NOT NULL과 UNIQUE 제약조건을 결합한 형태) |
FOREIGN KEY(FK) | 해당 컬럼 값은 참조되는 테이블의 컬럼 값 중의 하나와 일치하거나 NULL을 가짐 |
UNIQUE KEY(UK) | 테이블내에서 해당 컬럼 값은 항상 유일해야 함 |
NOT NULL | 컬럼은 NULL 값을 포함할 수 없다. |
CHECK(CK) | 해당 컬럼에 저장 가능한 데이터 값의 범위나 조건 지정 |
데이터 키의 무결성
무결성 | 대상 | 설명 |
---|---|---|
개체 무결성(entity integrity) | 객체 | 기본키로 사용하는 속성은 null 값을 가질 수 없음 |
참조 무결성(referential integrity) | 관계 | 릴레이션은 참조할 수 없는 외래키의 값을 가져서는 안됨 |
범위 무결성(domain integrity) | 레코드 | 속성에서 허용 가능한 값의 범위를 지정 (속성의 데이터 타입, 길이, 기본 키, 유일성, null 허용, 허용 값의 범위) |