티스토리 뷰
데이터를 저장하는 데 있어서 데이터베이스는 일관성을 유지하고 중복을 제거하는 등 데이터의 신뢰도를 유지해야 한다.
따라서 데이터의 삽입, 삭제, 수정 시 여러 가지 제약조건이 따릅니다
데이터 무결성(Data integrity)
: 데이터 무결성(Data integrity)은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말합니다.
일관성과 정확성을 가지고 구축된 데이터베이스가 무결성을 유지하려면 튜플의 삽입, 삭제, 수정 시 데이터의 제약조건 준수 여부를 확인해야 합니다.
무결성 제약조건에는 아래 세 가지가 있습니다.
1. 도메인 무결성 제약조건 Domain integrity constraint
릴레이션 내의 튜플은 각 속성의 도메인에 지정된 값만을 가져야 합니다
*도메인(Domain): 속성이 가질 수 있는 값의 집합
2. 개체 무결성 제약조건 Entity integrity constraint
개체 무결성 제약조건(Entity integrity constraint)은 기본키 제약(Primary key constraint)라고도 하는데
릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙 즉, 기본키는 Null값을 가져서는 안되고 릴레이션 내에 오직 하나의 값만 존재해야 한다는 조건입니다.
3. 참조 무결성 제약조건 referential integrity constraint
참조 무결성 제약 조건은 외래키 제약 foreign key constraint라고도 한다. 릴레이션 간의 참조 관계를 선언하는 제약조건입니다.
일반적으로 참조되는(제공하는)릴레이션을 부모 릴레이션, 참조하는(제공받는)릴레이션을 자식 릴레이션이라고 합니다.
제약조건 정리
구분 | 도메인 | 키 | |
도메인 무결성 제약조건 | 개체 무결성 제약조건 | 참조 무결성 제약조건 | |
제약대상 | 속성(attribute) | 튜플(tuple) | 속성과 튜플(attribute, tuple) |
같은 용어 | 도메인 제약 Domain constraint | 기본키 제약 Primary key constraint | 외래키 제약 foreign key constraint |
기타 | 투플 삽입/수정 시 제약사항 우선 확인 | 투플 삽입/수정 시 제약사항 우선 확인 | 투플 삽입/수정 시 제약사항 우선 확인. 부모릴레이션의 투플 수정/삭제시 제약사항 우선 확인 |
참조 무결성 제약조건은 단일 릴레이션에 대한 내용이 아닙니다. 따라서 참조 무결성 제약조건을 준수하기 위해서는
두 릴레이션 간의 참조 관계에 따라 좀 더 복잡한 처리를 수행해야 합니다.
부모 릴레이션에서 투플을 삭제할 경우 - 참조 무결성 제약조건의 옵션
명령어 |
의미 |
예 |
RESTRICTED | 자식 릴레이션에서 참조하고 있는 경우 부모 릴레이션의 삭제 작업을 거부함 |
학과 릴레이션의 투플 삭제 거부 |
CASECADE | 자식 릴레이션의 관련 투플을 같이 삭제함 |
학생 일레이션의 관련 투플을 삭제 |
DEFAULT | 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경함 |
wktlr학생 릴레이션의 학과가 다른 학과로 자동 배정 |
NULL | 자식 릴레이션의 관련 투플을 NULL값으로 설정 |
학생 릴레이션의 학과가 NULL값으로 변경 |
<참고>
Mysql 로 배우는 데이터베이스 개론과 실습
'Database' 카테고리의 다른 글
Connection Pool (0) | 2021.09.18 |
---|---|
Binary log와 DB복구 (Mysql version) (0) | 2021.09.17 |
Transaction log (0) | 2021.09.17 |
Index (0) | 2021.09.17 |
Database System (0) | 2021.09.16 |