본문 바로가기
CS/데이터베이스

[Database] 무결성 제약조건

by 루시킴 2021. 10. 22.

데이터 무결성

  •  데이터베이스가 갱신될 때 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

댓글