DATABASE/Modelling
2009. 5. 6. 11:33
※데이터의 무결성
- 데이터의 정확성과 일관성이 보장된 상태
- 무결성 제약 조건은 데이터베이스에 저장된 데이터의 정확성을 보장하기 위해 정확하지 않은 데이터가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건
※무결성의 종류
1. 엔티티 무결성 : 한 엔티티는 중복과 누락이 있을 수가 없음. 동일한 PK를 가질 수 없으며 PK의 속성이 Null을 허용할 수 없음
2. 참조 무결성 : 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키 값이나 Null이어야 함
3. 속성 무결성 : 속성의 값은 기본값, Null여뷰, 지정된 도메인(데이터타입, 길이)규칙을 준수하여 존재해야 함
4. 사용자 무결성 : 사용자의 의미적 요구사항을 준수해야 함
※제약조건의 종류
1. 엔티티 무결성 : Primary Key. Unique Index
2. 속성 무결성 : Check, Null/Not Null, Default
3. 참조 무결성 : Foreign Key
4. 사용자 정의 무결성 : Trigger, User Define Data Type
※각 요소의 내용
Primary Key |
컬럼의 유일성 보장, PK는 Null이 될 수 없음 |
Unique Index |
다중의 보조 키 개념을 지원, 컬럼의 유일성 보장, Null 허용 |
Foreign Key |
테이블 간의 논리적 관계가 유지됨을 보장, FK는 참조하는 테이블의 PK값, Null 허용 Cascaded Option : Master 삭제 시 레코드가 함께 삭제 Nullified Option : Master 삭제 시 해당 값을 Null로 세팅 Restricted Option : FK가 존재하면 Master 레코드를 삭제할 수 없음 |
Data Type |
데이터의 형을 제한하여 데이터 무결성 유지 |
Check |
데이터를 추가할 때마다 SQL서버가 해당 값이 해당 컬럼들에 지정된 Check제약을 위배하는지를 검사함으로써 데이터 무결성 유지 |
Default |
특정 컬럼에 대해 명시적으로 값을 입력하지 않은 경우에 SQL서버가 자동적으로 지정된 값을 삽입할 수 있도록 함으로써 데이터 무결성 유지 INSERT 또는 UPDATE에서 DEFAULT 키워드를 사용할 수 있음 |
Trigger |
테이블의 내용을 변경하려는 특정 사건(DB연산)에 대해서 DBMS가 미리 정의된 일련의 행동(DB연산)을 수행하는 메커니즘, DBMS서버에 의해 자동으로 호출 데이터에 대한 변경을 시도할 때마다 자동적으로 호출 트랜젝션의 철회(rollback)와 같은 동작을 수행가능 저장 프로시저의 특별할 형태로서 SQL의 모든 기능을 이용가능 참조 무결성을 위해 사용가능 |