본문 바로가기
My Image
프로그래밍/DataBase

[DataBase] 무결성(Integrity) 제약조건이란?

by Lim-Ky 2018. 9. 5.
반응형



무결성(Integrity) 제약조건


1. 개체 무결성


* 릴레이션에서 기본키를 구성하는 속성은 널(NULL)값이나 중복값을 가질 수 없습니다.

ex) <학생> 릴레이션에서 '학번'이 기본키로 정의되면 튜플을 추가할 때 '주민번호'나 '성명'필드에는 값을 입력하지 않아도 되지만 '학번' 속성에는 반드시 값을 입력해야 합니다. 또한 '학번' 속성에는 이미 한번 입력한 속성값을 중복하여 입력 할 수 없습니다.

즉 NULL 값 허용 불가, 값 중복 허용 불가 입니다.


2. 참조 무결성


* 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 합니다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없습니다. 

당연한 이야기입니다. 없는 값을 참조할 수 없으니 있는 값에서 참조하라는 말입니다.

ex) <수강> 릴레이션 '학번' 속성에는 <학생> 릴레이션의 '학번' 속성에 없는 값은 입력할 수 없습니다.


3. 도메인 무결성


* 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정입니다. 현재 대한민국 고등학교 학년은 1학년,2학년,3학년이지요? 그렇다면 학년이라는 속성값에 들어갈 수 있는 값의 범위는 무조건 1~3입니다. 이것이 바로 도메인 무결성입니다. 또 한가지 예를 들어 보겠습니다. 인간의 성별은 남, 여로 나뉩니다. 그렇다면 성별이라는 속성에 들어 갈 수 있는 값은 여자 이거나 남자 여야 합니다. 남자, 여자 이외의 값은 도메인 무결성을 위반한 것이라 할 수 있습니다. 


[학생 테이블]


 학번

이름 

학년 

학과 

성적 

400 

박태인 

수학과 

90 

200 

홍길동 

국문과 

70 

100 

이영진 

토목과 

80 



4. 고유 무결성


 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 하는 제약조건을 말합니다. 


학생 릴레이션(테이블)에서 테이블 정의시 '이름' 속성에는 중복된 값이 없도록 제한했다면, '이름' 속성에는 중복된 이름이 있어서는 안됩니다.



5. NULL 무결성


 특정 속성값에 NULL 이 올 수 없다는 조건이 주어진 경우, 그 속성값은 NULL 값이 올 수 없다는 제약조건을 말합니다. 


학생 릴레이션에서 릴레이션 정의 시 '학과' 속성에는 NULL 값이 올 수 없도록 제한했다면 '학과' 속성에는 NULL 이 있어서는 안됩니다.



6. 키 무결성


 한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 한다는 제약조건을 뜻합니다.





반응형

댓글