※ 공부 내용의 복습 개념으로 정리된 글입니다. - 출처 시나공
제약 조건이란 데이터베이스에 저장되는 데이터의 정확성을 보장하기 위하여 키(Key)를 이용하여 입력되는 데이터에 제한을 주는 것으로 개체 무결성 제약, 참조 무결성 제약 등이 해당됩니다.
키(Key)의 개념 및 종류
키는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 튜플들을 서로 구분할 수 있는 기준이 되는 애트리뷰트를 말합니다.
- 키의 종류에는 후보키, 기본키, 대체키, 슈퍼키, 외래키 등이 있습니다.
후보키(Candidate Key)
후보키는 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합, 즉 기본키로 사용할 수 있는 속성들을 말합니다.
- 하나의 릴레이션내에서는 중복된 튜플들이 있을 수 없으므로 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재합니다.
- 후보키는 릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야합니다.
- 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 합니다.
- 최소성(Minimality) : 모든 레코드들을 유일하게 식별하는 데 꼭 필요한 속성으로만 구성되어야 합니다.
- 예) <학생> 릴레이션에서 '학번'이나 '주민번호'는 다른 레코드를 유일하게 구별할 수 있는 기본키로 사용할 수 있으므로 후보키입니다.
기본키(Primary Key)
기본키는 후보키 중에서 특별히 선정된 주키(Main Key)로 중복된 값을 가질 수 없습니다.
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성입니다.
- 기본키는 후보키의 성질을 갖습니다. 즉, 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키입니다.
- 기본키는 NULL 값을 가질 수 없습니다. 즉 튜플에서 기본키로 설정된 속성에는 NULL 값이 있어서는 안 됩니다.
예
- <학생> 릴레이션에서는 '학번'이나 '주민번호'가 기본키가 될 수 있고, <수강> 릴레이션에서는 '학번' + '과목명'으로 조합해야 기본키가 만들어집니다.
- '학번'이 <학생> 릴레이션의 기본키로 정의되면 이미 입력된 '1001'은 다른 튜플의 '학번' 속성의 값으로 입력 할 수 없습니다.
※ 널 값(NULL Value)
데이터베이스에서 아직 알려지지 않거나 모르는 값으로서 '해당 없음' 등의 이유로 정보 부재를 나타내기 위해 사용하는 이론적으로 아무것도 없는 특수한 데이터를 말합니다.
대체키(Alternate Key)
대체키는 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미합니다.
- 보조키라고도 합니다.
예
<학생> 릴레이션에서 '학번'을 기본키로 정의하면 '주민번호'는 대체키가 됩니다.
슈퍼키(Alternate Key)
슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않습니다.
- 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못합니다.
예
<학생> 릴레이션에서는 '학번', '주민번호', '학번'+'주민번호', "학번'+'주민번호'+'성명' 등으로 슈퍼키를 구성할 수 있습니다.
※ 최소성
'학번'+'주민번호'를 사용하여 슈퍼키를 만들면 다른 듀플들과 구분 할 수 있는 유일성은 만족하지만, '학번'이나 '주민번호' 하나만 가지고도 다른 튜플들을 구분할 수 있으므로 최소성은 만족시키지 못합니다.
외래키(Foreign Key)
외래키는 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미합니다.
- 외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는데 중요한 도구입니다.
- 한 릴레이션에 속한 속성 A와 참조 릴레이션의 기본키인 B가 동일한 도메인 상에서 정의되었을 때의 속성 A를 외래키라고 합니다.
- 외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없습니다.
예
- <수강> 릴레이션이 <학생> 릴레이션을 참조하고 있으므로, <학생> 릴레이션의 '학번'은 기본키이고, <수강> 릴레이션의 '학번'은 외래키입니다.
- <수강> 릴레이션의 '학번'에는 <학생> 릴레이션의 '학번'에 없는 값은 입력할 수 없습니다.
※ 참조 릴레이션
외래키를 포함하는 릴레이션이 참조하는 릴레이션이고, 대응되는 기본키를 포함하는 릴레이션이 참조 릴레이션입니다. 여기서는 <수강> 릴레이션이 참조하는 릴레이션이고, <학생> 릴레이션이 참조 릴레이션입니다.
'정보처리산업기사' 카테고리의 다른 글
정보처리산업기사 - 데이터베이스 이해 - 관계대수 및 관계해석 (0) | 2024.09.15 |
---|---|
정보처리산업기사 - 데이터베이스 이해 - 관계형 데이터베이스의 제약 조건 - 무결성 (1) | 2024.09.14 |
정보처리산업기사 - 데이터베이스 이해 - 관계형 데이터베이스의 구조 (0) | 2024.09.12 |
정보처리산업기사 - 데이터베이스 이해 - E-R(개체-관계) 모델 (0) | 2024.09.11 |
정보처리산업기사 - 데이터베이스 이해 - 데이터 모델의 개념 (2) | 2024.09.10 |