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

2022. 10. 7. 16:33CS/데이터베이스

무결성 제약 조건

  • 무결성 : 데이터에 결함이 없는 상태, 즉 데이터를 정확하고 유효하게 유지하는 것이다.
  • 무결성 제약조건의 주요 목적은 데이터베이스에 저장된 데이터의 무결성을 보장하고 데이터베이스의 상태를 일관되게 유지하는 것이다. 그래서 이를 위해 필요한 세부 규칙도 정의하고 있다.
  • 데이터베이스가 삽입, 삭제, 수정, 연산으로 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야 한다.

 

1. 개체 무결성 : 기본키는 null 값이 될 수 없음

개체 무결성 제약조건은 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다. 관계 데이터 모델에서는 릴레이션에 포함되는 튜플들을 유일하게 구별해주고 각 튜플에 쉽게 접근할 수 있도록 릴레이션마다 기본키를 정의하는 기본키를 구성하는 속성 전체나 일부가 널 값이 되면 튜플의 유일성을 판단할 수 없기 때문에 본래의 목적을 상실하게 된다.

 

2. 참조 무결성 : 외래키는 참조할 수 없는 값을 가질 수 없음

참조 무결성 제약조건은 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙이다. 외래키는 다른 릴레이션의 기본키를 참조하는 속성이고 릴레이션 간의 관계를 표현하는 역할을 한다. 그런데 외래키가 자신이 참조하는 릴레이션의 기본키와 상관없는 값을 가지게 되면 두 릴레이션을 연관시킬 수 없으므로 외래키 본래의 의미가 없어지게 된다.

 

3. 도메인 무결성 : 특정 속성값은 그 속성이 정의된 도메인에 속한 값이어야 함

도메인 무결성은 데이터 베이스에 삽입되는 데이터들에 제약조건을 의미한다. 각각의 속성은 숫자, 문자 등의 도메인을 가지면 해당 도메인에 맞는 데이터를 삽입해야 한다. 그 뿐만 아니라 삽입되는 데이터를 제한하거나, 삽입되지 않을 경우 기본값, null 제한 등의 기능을 제공한다. 예를 들어 "성"에 대한 속성의 경우 입력되는 데이터를 "남", "여"로 제한하여 그 외의 데이터가 삽입되는 경우를 제한할 수 있다.

 

4. 키 무결성 : 릴레이션에는 최소한 하나의 키가 존재해야 함

 

5. null 무결성 : 특정 속성은 null 값을 가질 수 없음

null 무결성은 특정 속성값에는 null 값을 가질 수 없다는 규칙이다. 기본적으로 속성값으로 null 값을 가질 수 있는데 만약 "유저 아이디"처럼 중요한 정보에는 스키마를 정의할 때 해당 속성을 null 데이터가 올 수 없음을 미리 정의할 수 있다.

 

6. 고유 무결성 : 특정 속성값은 서로 달라야 함

고유 무결성은 특정 속성에 삽입되는 데이터는 고유한 값을 가져야 한다는 규칙이다. 이 말은 즉, 각 튜플에서 하나의 속성값은 중복된 값이 없는 각각 서로 다른 값을 가져야 한다는 의미이다. 예를 들어 이름, 나이, 사는 곳과 같은 속성은 튜플들이 서로 같은 값을 가질 수 있지만 고객 아이디의 경우 각 튜플을 서로 다른 값을 가져야한다.