| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 현대오토에버 코딩테스트
- 안드로이드
- 삼성sw문제
- IT
- 자바
- 데이터베이스
- dp
- 익명객체
- 백준 알고리즘
- 멀티스레드
- 조합
- 개발
- 익명클래스
- BFS
- 삼성SW테스트
- CKLU
- dfs
- 프로그래머스
- 모바일
- 네트워크
- backjoon
- Java
- 너비탐색
- 백준
- 다이나믹 프로그래밍
- 알고리즘
- Android
- 재귀함수
- 언더라이터
- 금융IT
- Today
- Total
Limky 삽질블로그
[DataBase] 무결성(Integrity) 제약조건이란? 본문
무결성(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 |