Get Up & Code, MacKin Talk

[데이터베이스] 무결성 제약 조건 본문

Computer Science

[데이터베이스] 무결성 제약 조건

맥킨 2021. 7. 2. 11:02

관계 데이터 모델에서 정의하고 있는 기본 제약 사항 : 키와 관련한 무결성 제약조건(Integrity constraint)

  • 무결성은 데이터에 결함이 없는 상태, 즉 데이터를 정확하고 유효하게 유지하는 것

데이터베이스가 삽입, 삭제, 수정 연산으로 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야 한다.

보안 vs 무결성

  • 보안 : 권한이 없는 사용자로부터 데이터를 보호하는 것.
  • 무결성 : 권한이 있는 사용자의 잘못된 요구에 의해 데이터가 부정확해지지 않도록 하는 것.

관계 데이터 모델이 기본으로 포함하고 있는 무결성 제약 조건

개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 Null 값을 가질 수 없다.

  • 관계 데이터 모델에서 기본키는 튜플들을 구별해주고, 쉽게 접근하게 해준다. 기본키의 구성요소가 Null이 되면 유일성을 판단할 수 없고, 기본키 본래 목적을 상실할 수 있다.
  • 새로운 튜플이 삽입되는 연산과 기존 튜플의 수정 연산이 발생할 때, 기본키에 Null이 포함될 경우, 연산의 수행을 거부한다.

참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.

외래키 : 다른 릴레이션의 기본키를 참조하는 속성, 릴레이션 간의 관계를 표현하는 역할

  • 외래키가 자신이 참조하는 릴레이션의 기본키와 상관이 없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없다.
  • 참조 무결성 제약조건을 위반하지 않는 경우에만 참조 릴레이션에서 튜플을 삭제할 수 있다.

도메인 무결성

  • 데이터 베이스에 삽입되는 데이터들에 제약조건: 각 속성의 도메인에 지정된 값만을 가져야 한다.
  • ex) 주문 일자 데이터 : 날짜 데이터 사용

키 무결성

  • 릴레이션은 최소 하나 이상의 키를 가지고 있어야 한다.

null 무결성

  • null 무결성은 특정 속성값에는 Null 값을 가질 수 없다.
  • 기본적으로 속성값으로 Null 값을 가질 수 있는데 기본키와 같이 필수적인 속성에 대해서는 스키마를 정의할 때 해당 속성을 Not Null로 미리 정의할 수 있다.

고유 무결성

  • 특정 속성에 삽입되는 데이터가 고유한 값을 가지도록 조건이 주어졌을 때, 그 속성은 모두 달라야 한다.
  • 각 튜플에서 위 조건을 만족하는 속성값은 중복될 수 없다.