관계 모델·스키마·키·무결성

정보처리실무 · SQL·데이터베이스

이 페이지의 목차

학습 목표

속성 집합의 유일성과 최소성을 따로 검사한다.

본문

핵심 이론

슈퍼키는 튜플을 유일하게 식별하며 후보키는 더 줄일 수 없는 최소 슈퍼키다. 후보키 중 선택한 것이 기본키, 나머지는 대체키다. 후보키 구성 속성은 주요 속성이다.

속성 폐포 X+는 X로부터 함수 종속을 반복 적용하여 얻는 속성 집합이다. 전체 속성을 얻는지 확인하고 각 속성을 빼서 최소성을 검사한다.

개체 무결성은 기본키의 NULL·중복 금지, 참조 무결성은 외래키의 유효한 참조, 도메인 무결성은 허용 값 범위다. 외래키 NULL은 NOT NULL 등 다른 제약이 없으면 허용될 수 있다.

외부 스키마는 사용자 관점, 개념 스키마는 전체 논리 구조, 내부 스키마는 물리 저장이다. 물리적 독립성은 내부 변경을 개념 수준에서, 논리적 독립성은 개념 변경을 외부 수준에서 흡수한다. 릴레이션 차수는 열 수, 카디널리티는 행 수다.

개념 도식

전체 맞춤새 창 보기
관계 모델·스키마·키·무결성의 관계와 흐름을 보여 주는 도식

키를 찾을 때 유일성과 최소성을 따로 검사한다

슈퍼키는 행을 유일하게 구별하는 속성 집합, 후보키는 그중 불필요한 속성을 뺄 수 없는 최소 집합이다. 후보키 중 하나를 기본키로 선택하고 나머지는 대체키가 된다. 현재 표에서 우연히 중복이 없다는 사실만으로 모든 미래 데이터의 키라고 단정하지 않는다.

A→B, B→A, C→D만 있다면 AC로 A·B·C·D를 모두 알 수 있고 BC로도 모두 알 수 있다. C 없이는 C를 얻지 못하고 A나 B 없이 둘을 얻지 못하므로 최소 후보키는 AC와 BC다. ABC는 유일하더라도 A나 B를 뺄 수 있어 후보키가 아니다.

무결성핵심 검사
개체 무결성기본키의 중복·NULL 금지
참조 무결성외래키의 비NULL 값이 허용된 참조키에 존재
도메인 무결성속성값의 형식·범위·허용값 충족

3단계 스키마는 사용자별 관점인 외부, 전체 논리 구조인 개념, 저장 구조인 내부다. 내부 저장 배치를 바꿔도 논리 구조를 유지하면 물리적 데이터 독립성에 해당한다. 릴레이션의 디그리는 열 수, 카디널리티는 행 수라는 방향도 함께 확인한다.

풀이 예시

다음 릴레이션의 기본키는 (room_id, slot)이다. 1번과 2번 행은 이미 저장되어 있다. 후보 3번, 4번을 각각 독립적으로 삽입할 때 기본키 제약조건을 위반하는 행 번호를 모두 쓰시오.

번호room_idslotperson
1R11가
2R12나
3R11다
4R2NULL라
정답과 풀이 보기

예시 정답

예시·텍스트
3, 4

풀이 과정

3번은 기존 1번과 기본키 조합이 같아 유일성을 위반한다. 4번은 기본키의 구성 속성 slot이 NULL이므로 개체 무결성을 위반한다. person이 다르다고 기본키 중복이 허용되지는 않는다.