본문 바로가기
데이타베이스

관계 데이터베이스의 키 제약사항과 무결성

by minimax95 2020. 7. 2.

이번 포스팅에서는 관계 데이터베이스의 키 제약사항에 대해서 알아보겠습니다.

키(Key)는 각각의 튜플을 유일하게 구분할 수 있는 개념으로 관계형 데이터 모델에서는 대단히 중요한 개념입니다. 키는 유일한 식별성과 최소성을 가지고 있어야 하며 하나의 릴레이션에는 최소한 하나의 키가 있어야 합니다.

 

키(Key)의 종류에는 후보키(Candidate Key), 기본키(Primary Key), 대체키(Alternate Key), 외래키(Foreign Key), 수퍼키(Super Key) 등이 있습니다.

 

[학생] 릴레이션

학번 이름 연락처 주민번호 수험번호
1111 홍길동 02-0000-0000 000000-0000000 0000
1112 아무개 032-1111-1111 111111-1111111 9999
1113 존덴버 051-2222-2222 222222-2222222 7777

[성적] 릴레이션

수험번호 물리학 통계학
0000 90 87
9999 80 96
7777 88 85

먼저 후보키는 하나의 릴레이션에서 유일성과 최소성을 가지고 있는 모든 속성(Attribute) 또는 속성 집합을 후보키라 부릅니다. [학생] 릴레이션에서 후보키로는 <학번>, <주민번호> 등 두 개의 속성이 될 수 있습니다.

기본키는 후보키들 중에서 데이터베이스의 설계자에 의해 선택된 한 개의 키가 됩니다. 기본키로 선택된 속성은 중복되지 않으며 정의되지 않은 Null 값을 가질 수 없습니다.

대체키는 후보키 중 기본키를 제외한 모든 키를 말합니다. [학생] 릴레이션에서 <학번>이 기본키라면 <주민번호>는 대체키가 됩니다.

외래키는 릴레이션과의 관계를 맺어주기 위해 사용됩니다. [성적] 릴레이션에 있는 <수험번호> 속성은 [성적] 릴레이션에서 기본키이면서 [학생] 릴레이션과의 관계를 맺어주기 위해 외래키로 선언할 수 있습니다. 

수퍼키는 최소성 없이 단지 튜플을 식별하기 위하여 두 개 이상의 속성 집합으로 이루어진 키를 말합니다. 예를 들면

<학번>과 <수험번호> 속성을 결합한 수퍼키를 만들어서 사용할 수도 있습니다.

 

다음으로 무결성(Integrity) 제약사항에 대해 알아보겠습니다.

무결성 제약사항은 데이터베이스에 저장되는 데이터에 대한 정확성을 부여할 목적으로 제약사항을 설정하는 것을 의미합니다. 여기에는 도메인 무결성(Domain Integrity)와 개체 무결성(Entity Integrity), 참조 무결성(Referential Integrity) 등이 있습니다. 먼저 도메인 무결성은 가장 기본적인 무결성 규정으로 데이터베이스 릴레이션(테이블)에서 주어진 속성으로 입력되는 모든 값은 그 속성으로 정의되거나 제약된 도메인 영역에 있어야 한다는 규정입니다.

예를 들어 위 [성적] 릴레이션에서 <물리학> 속성이나 <통계학> 속성으로 입력될 수 있는 값의 범위를 0 ~ 100점으로 한정시켜 0~100점 범위 이외에는 입력되지 않도록 하여 정확한 데이터를 유지하는 것입니다.

 

개체 무결성(Entity Integrity)은 주어진 릴레이션에 튜플을 삽입, 삭제, 갱신하고 나서 그 전후의 관계가 의미적으로 이상이 없는가를 규정하는 것입니다. 주어진 릴레이션에 기본키를 선언하고 기본키로 NULL 값을 허용하지 않은 상태에서 이 기본키에 따라 릴레이션에 접근하여 연산함으로써 유지되는 무결성을 말합니다. 즉, 하나의 개체 릴레이션에서는 중복된 튜플이 존재해서는 안 된다는 제약사항입니다.

 

마지막으로 참조 무결성(Referential Integrity)은 릴레이션에 있는 튜플 정보가 다른 릴레이션에 있는 튜플 정보와 비교하여 관계성이 있으며, 관계되는 정보의 정확성을 유지하는가를 규정하는 것으로 외래키에 의해 유지됩니다.

예를 들어 [성적] 릴레이션에서 <수험번호>를 기본키로 정의하고, [학생] 릴레이션에서 <수험번호>를 외래키로 정의하면서 참조 테이블로 [성적] 릴레이션을 지정했다면, [학생] 릴레이션에 있는 <수험번호> 값들은 반드시 [성적] 릴레이션의 <수험번호> 값들에 포함되어야 함을 의미합니다.

 

이상으로 키 제약사항과 무결성 제약사항에 대한 정리를 마치겠습니다.

감사합니다.

댓글