Computer Science/Database :: 데이터베이스

[데이터베이스] 무결성 제약조건: 개체, 참조, 도메인

HJPlumtree 2021. 3. 24. 12:17

무결성 제약조건

관계형 모델

구조: 릴레이션(2차원 테이블)

연산: 관계대수(relational Algebra)

제약조건: 무결성 제약조건(Integrity Constraint)

  • 모든 관계형 데이터 모델에 적용되는 일반적이고 기본적인 제약
  • 이 제약을 기초로 세부적이고 특수한 제약을 생성 가능
  • 스키마에 정의된 무결성 제약조건을 위반하지 않아야된다
    • 개체 무결성
    • 참조 무결성
    • 도메인 무결성

 

개체 무결성(Entity Integrity)

의미: 서로 다른 두 튜플은 같을 수 없다

정의: 기본키 값은 널(Null)을 가질 수 없다.

튜플을 개체(Entity)를 나타낸다

  • 개체는 본질적으로 구분 가능
  • 구별할 수 있는 식별자가 필요하다
  • 기본키는 이들을 유일하게 구별할 수 있는 기능을 제공
기본키: 유일성, 최소성을 만족하는 키. 즉 식별자가 된다.

 

기본키 값이 널(Null)일 경우

정보의 부재를 의미

튜플들을 유일하게 식별할 수 없다는 의미다

서로 구별할 수 없는 개체가 존재한다는 의미 -> 개체의 정의에 모순

 

 

예시

성적은?

아직 정해지지 않아서 0이라고 하면 성적이 0이 된다.

널(Null)로 하면 아직 성적이 없는 것이다.

 

여학생은 군필인가? 미필인가?

널(Null)로 가서 적용 불가능으로 기록한다.

 

 

참조 무결성(Referential Integrity)

릴레이션은 참조할 수 없는 외래키 값을 가지면 안된다.

참조할 수 없는 외래키 값이 존재하면, 존재하지 않은 튜플을 참조한다는 의미

R의 외래키 값은 피참조 릴레이션 S의 기본키 값이거나 널(Null)값이어야 한다

추가적으로 널(Null)을 가질 수 없다고 제약 걸 수 있다.

 

예시

교번이 1~5까지 밖에 없는데, 교번이 9번을 참조를 하게되면

참조 무결성 위반이라고 한다.

 

 

도메인 무결성(Domain Integrity)

속성 값은 속성 도메인(값들이 집합)에 속한 값들 중 하나여야 한다.

 

예시

대학생은 1~4학년, 9학년 10학년은 존재할 수 없다.

 

 

무결성 제약조건 위반 처리

DBMS는 데이터베이스의 상태 변화에도 항상 무결성 제약조건을 검사시키고 유지해야 한다.

릴레이션에 대한 기본 갱신 연산(삽입, 삭제, 수정이) 일어났을 때 무결성 제약조건을 검사한다.

 

 

데이터베이스 상태가 항상 만족해야 하는 기본 규칙

사용자가 명시하고, DBMS는 자동적으로 무결설 제약조건에 맞는지 검사