무결성(Integrity) 제약조건
1. 개체 무결성
* 릴레이션에서 기본키를 구성하는 속성은 널(NULL)값이나 중복값을 가질 수 없습니다.
ex) <학생> 릴레이션에서 '학번'이 기본키로 정의되면 튜플을 추가할 때 '주민번호'나 '성명'필드에는 값을 입력하지 않아도 되지만 '학번' 속성에는 반드시 값을 입력해야 합니다. 또한 '학번' 속성에는 이미 한번 입력한 속성값을 중복하여 입력 할 수 없습니다.
즉 NULL 값 허용 불가, 값 중복 허용 불가 입니다.
2. 참조 무결성
* 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 합니다. 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없습니다.
당연한 이야기입니다. 없는 값을 참조할 수 없으니 있는 값에서 참조하라는 말입니다.
ex) <수강> 릴레이션 '학번' 속성에는 <학생> 릴레이션의 '학번' 속성에 없는 값은 입력할 수 없습니다.
3. 도메인 무결성
* 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정입니다. 현재 대한민국 고등학교 학년은 1학년,2학년,3학년이지요? 그렇다면 학년이라는 속성값에 들어갈 수 있는 값의 범위는 무조건 1~3입니다. 이것이 바로 도메인 무결성입니다. 또 한가지 예를 들어 보겠습니다. 인간의 성별은 남, 여로 나뉩니다. 그렇다면 성별이라는 속성에 들어 갈 수 있는 값은 여자 이거나 남자 여야 합니다. 남자, 여자 이외의 값은 도메인 무결성을 위반한 것이라 할 수 있습니다.
[학생 테이블]
학번 |
이름 |
학년 |
학과 |
성적 |
400 |
박태인 |
1 |
수학과 |
90 |
200 |
홍길동 |
2 |
국문과 |
70 |
100 |
이영진 |
4 |
토목과 |
80 |
4. 고유 무결성
특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야 하는 제약조건을 말합니다.
학생 릴레이션(테이블)에서 테이블 정의시 '이름' 속성에는 중복된 값이 없도록 제한했다면, '이름' 속성에는 중복된 이름이 있어서는 안됩니다.
5. NULL 무결성
특정 속성값에 NULL 이 올 수 없다는 조건이 주어진 경우, 그 속성값은 NULL 값이 올 수 없다는 제약조건을 말합니다.
학생 릴레이션에서 릴레이션 정의 시 '학과' 속성에는 NULL 값이 올 수 없도록 제한했다면 '학과' 속성에는 NULL 이 있어서는 안됩니다.
6. 키 무결성
한 릴레이션(테이블)에는 최소한 하나의 키가 존재해야 한다는 제약조건을 뜻합니다.
'프로그래밍 > DataBase' 카테고리의 다른 글
[DataBase] 정규화(Normalization)_제2정규형(2NF: Second Normal Form) (2) | 2018.10.31 |
---|---|
[DataBase] 정규화(Normalization)_제1정규형(1NF: First Normal Form) (1) | 2018.10.31 |
[DataBase] 조건절에 특정 컬럼 값이 NULL이면 해당 테이블 전체조회, 컬럼 값이 있으면 테이블 조건 조회 (1) | 2018.06.29 |
[DataBase] NULL 처리 함수 (0) | 2018.03.20 |
[DataBase] OUTER JOIN (외부조인) LEFT,RIGHT,FULL JOIN (7) | 2018.02.06 |
댓글