데이터 무결성
- 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사한다
- 데이터의 정확성 또는 유효성을 의미
도메인 제약조건
- 각 애트리뷰트의 값이 원자값이어야함
- CHECK 제약조건을 통해 값의 범위를 제한할수 있음
- CONSTRAINT 키워드 사용
키 제약조건
- 키 애트리뷰트의 중복된 값을 막기 위해 UNIQUE 사용
기본키와 엔티티 무결성 제약조건
- 기본 키가 각 튜플들을 식별하기 위하여 사용되기 때문에 릴레이션의 기본 키를 구성하는 어떤 애트리뷰트도 널값을 가질 수 없다는 제약조건
외래키와 참조 무결성 제약조건
- 두 릴레이션의 연관된 투플들 사이의 일관성을 유지하는데 사용
- CONSTRAINT , REFERENCES 사용하여 외래키 명시
- B가 A의 애트리뷰트를 참조하는 상태이면 B가 참조하는 릴레이션, A가 참조되는 릴레이션이라고 부름
- 릴레이션 R2의 외래 키가 릴레이션 R1의 기본 키를 참조할 때 참조 무결성 제약조건은 아래의 두 조건 중 하나가 성립되면 만족
- 외래 키의 값은 R1의 어떤 투플의 기본 키 값과 같다
- 외래 키가 자신을 포함하고 있는 릴레이션의 기본 키를 구성하고 있지 않으면 널값을 가진다.
- DBMS가 제공하는 옵션 -> ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
- 제한 : 위배를 야기한 연산을 단순히 거절
- 연쇄 : 참조되는 릴레이션에서 투플을 삭제하고, 참조하는 릴레이션에서 이 투플을 참조하는 투플들도 함께 삭제
- 널값 : 참조되는 릴레이션에서 투플을 삭제하고, 참조하는 릴레이션에서 이 투플을 참조하는 투플들의 외래 키에 널값을 삽입
- 디폴트값 : 널값을 넣는 대신에 디폴트값을 넣는다는 것을 제외하고는 바로 위의 옵션과 동일
'CS > 데이터베이스' 카테고리의 다른 글
[Database] INSERT문 / UPDATE문 / DELETE 문 (0) | 2021.10.22 |
---|---|
[Database] SELECT (0) | 2021.10.08 |
[Database] SQL (0) | 2021.10.08 |
[Database] 관계 대수와 SQL (2) (0) | 2021.10.08 |
[Database] 관계대수와 SQL (0) | 2021.09.23 |
댓글