1. 무결성
무결성 (Integrity)
- 데이터베이스에 저장된 데이터가 실제 세계에 존재하는 정보들을 모순 없이 반영하는 성질
- 즉, 데이터가 갖추어야 할 제약 조건을 항상 만족하도록 보장하는 성질
- 데이터베이스 설계자가 무결성 제약을 정의하면 DBMS가 이들을 자동으로 보장함
무결성 제약의 종류
분류 | 의미 | 무결성 제약의 종류 및 방식 |
기본적 무결성 제약 | 관계형 데이터 모델에서 정의한 제약 | 기본키 무결성 제약 참조 무결성 제약 |
테이블 무결성 제약 | 테이블을 정의하거나 변경하는 과정에서 설정 가능한 제약 | NOT NULL UNIQUE CHECK DEFAULT |
기타 무결성 제약 | 위의 방법으로는 정의할 수 없는 제약 | TRIGGER 프로그래밍 |
2. 기본적 무결성 제약
기본키 무결성 제약
- 테이블에서 레코드들이 반드시 유일하게 식별될 수 있어야 하는 제약
- 즉, 기본키는 null 값을 가질 수 없으며 기본키의 값이 동일한 레코드가 하나의 테이블에 중복될 수 없음
참조 무결성 제약
- 한 테이블의 레코드가 다른 테이블을 참조할 때, 참조되는 테이블에 해당 레코드가 반드시 존재하거나, 참조할 레코드가 없는 경우 null 값을 가져야 하는 제약
3. 테이블 무결성 제약
NOT NULL
- 특정 필드에 대해서 null 값을 허용하지 않아야 하는 제약
UNIQUE
- 기본키와 유사하게 해당 필드가 테이블 내에서 중복된 값을 갖지 않고 유일하게 식별되도록 하는 제약
- 즉, UNIQUE 제약조건을 설정할 수 있는 필드는 해당 테이블의 후보키를 의미함
- 단, NOT NULL 제약조건이 설정되지 않는 한 null 값의 입력을 허용함
→ null 값은 서로 다른 값으로 간주되기 때문
CHECK
- 필드의 값은 정의된 도메인에 속한 값만 허용되며 이를 도메인 제약이라 함
- 그러나 도메인 제약만으로 충분하지 않은 경우가 존재함
→ ex) 대학교 학년 필드의 경우, 1~4 이외의 정수를 허용하면 안 됨 - 즉, 필드가 가질 수 있는 값의 범위를 지정하는 제약
DEFAULT
- 레코드를 삽입할 때, 필드에 대한 값이 정해지지 않았을 경우, 사전에 정해놓은 값으로 입력되도록 지정하는 제약
- 기본적으로는 null 값이 입력됨
4. 기타 무결성 제약
TRIGGER
- 특정 이벤트(INSERT, UPDATE, DELETE)가 발생했을 때 자동으로 실행되는 프로시저
- 프로시저는 사용자가 정의함
프로그래밍
- 사용자가 응용 프로그램에서 직접 무결성을 보장하는 코드를 삽입하는 방식
- 복잡한 제약을 제어할 수 있고, 데이터베이스에 집중된 부하를 분산하는 효과를 얻을 수 있음
Reference
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=104610433