DB의 상태가 변하더라도 무결성 제약조건은 반드시 지켜져야 한다.
from DB개론 ¶
개체무결성제약조건entity_integrity_constraint
{
기본키primary_key를 구성하는 모든 속성attribute은 null 값을 가질 수 없다. 가지면 안 된다. 는 규칙.
{
기본키primary_key를 구성하는 모든 속성attribute은 null 값을 가질 수 없다. 가지면 안 된다. 는 규칙.
관계데이터모델에선, 릴레이션relation에 포함된 tuple들을 유일하게 구별할 수 있도록 각 relation마다 기본키를 정의한다. 그런데 기본키를 구성하는 속성attribute 전체나 일부가 null 값이 되면 tuple의 유일성을 판단할 수 없으므로 기본키의 목적을 상실하게 된다.
이 조건을 만족시키려면,
- 새 tuple 삽입 연산
- 기존 tuple의 기본키 속성 값을 변경하는 연산
외래키는 자신이 참조하는 릴레이션에 기본키primary_key 값으로 존재하는 값, 즉 참조 가능한 값만 가져야 함.
황인준 ¶
From Slide 22/82: Integrity Constraint Review
도메인제약조건 domain_constraint
널제약조건 null_constraint
참조무결성제약조건referential_integrity_constraint
널제약조건 null_constraint
null이 허용되는지 or 안되는지를 specify.
키제약조건 key_constraint모든 tuple은 key attribute를 위해 unique value를 가져야 한다.
개체무결성제약조건entity_integrity_constraint참조무결성제약조건referential_integrity_constraint
변시우 ¶
개체무결성제약조건entity_integrity_constraint
- 기본키primary_key로 지정한 모든 속성attribute은 널null 값을 가질 수 없고 릴레이션relation 안에서 중복되지 않는 유일한 값을 가져야 한다는 제약 사항.
(i.e. PK는 null을 가질 수 없고 유일하다)
- 기본키제약조건primary_key_constraint
- 개체의 유일성uniqueness을 선언하는 제약 조건.
- DBMS에게 기본키를 선언함으로써 즉시 적용됨.
- 외래키foreign_key로 지정한 속성은 참조하는 릴레이션의 기본키primary_key 속성 값과 일치하는 값이나 널 값만을 가져야 한다는 제약 사항.
- 외래키제약조건foreign_key_constraint
- 개체entity의 참조 관계를 선언하는 제약 조건.
- DBMS에게 외래키를 선언함으로써 즉시 적용됨.
- 의미적으로 연관된 두 릴레이션 튜플tuple 사이의 일관성 유지를 위해 사용함.
추가적인 제약조건
{
도메인무결성제약조건domain_integrity_constant
튜플tuple의 모든 속성attribute 값이 각 속성의 도메인domain에 속한 값만을 취해야 한다는 제약 사항.
SQL의 CREATE TABLE 명령 작성 시,
등의 키워드 설정을 통해 DBMS에게 지시함.
{
도메인무결성제약조건domain_integrity_constant
튜플tuple의 모든 속성attribute 값이 각 속성의 도메인domain에 속한 값만을 취해야 한다는 제약 사항.
SQL의 CREATE TABLE 명령 작성 시,
등의 키워드 설정을 통해 DBMS에게 지시함.
유일성제약조건uniqueness_constraint
유일성uniqueness
모든 키 속성 값이 중복되지 않고 유일해야 한다는 제약 사항.
대체키alternate_key와 밀접.
키 제약 조건(key_constraint)이라고도 함.
SQL의 CREATE TABLE 명령 작성 시, UNIQUE(유일 조건) 키워드 설정을 통해 DBMS에게 지시.
/// QQQ 이건 이름에 무결성이 없는데 위의 세가지와 따로 분류해야 하는지?
}
유일성uniqueness
모든 키 속성 값이 중복되지 않고 유일해야 한다는 제약 사항.
대체키alternate_key와 밀접.
키 제약 조건(key_constraint)이라고도 함.
SQL의 CREATE TABLE 명령 작성 시, UNIQUE(유일 조건) 키워드 설정을 통해 DBMS에게 지시.
/// QQQ 이건 이름에 무결성이 없는데 위의 세가지와 따로 분류해야 하는지?
}
개체무결성제약조건 | 참조무결성제약조건 |
기본키에 대한 규칙: 각 relation마다 적용됨 | 외래키에 대한 규칙: 연관된 relation들에 적용됨 |
기본키primary_key를 구성하는 모든 속성attribute은 널null값을 가질 수 없다. | 외래키foreign_key는 참조할 수 없는 값을 가질 수 없다. |
see also 키key#s-6 <- merge from there
----