앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델의 제약 조건 - 1(Relational Model Constraints)
0. 들어가기에 앞서
- 이번 글에서는 릴레이션 내에서의 제약 조건인 도메인 제약 조건, 키 제약 조건, 널 제약 조건을 제외하고, 릴레이션 사이에서 발생하는 제약 조건인 엔티티 무결성 제약 조건, 참조 무결성 제약 조건, 외래키 대해 설명하겠습니다.
- 그 전에 릴레이션 사이를 설명하기 위하여, 관계 데이터베이스와 관계 데이터베이스 스키마에 대해 정의하고 가도록 하겠습니다.
- 관계 데이터베이스 스키마(Relational Database Schema) S는 릴레이션 스키마의 집합 S = {R1, R2, ..., Rm}과 무결성 제약 조건(Integrity Constraint)의 집합입니다.
- S의 관계 데이터베이스 상태는 릴레이션 상태들의 집합입니다.
- 무결성 제약 조건을 만족하지 않는 관계 데이터베이스 상태는 유효하지 않은 상태 즉, invalid라 하고, 모든 무결성 제약 조건을 만족하는 관계 데이터베이스 상태는 유효한 상태, valid라고 합니다.
1. 엔티티 무결성 제약 조건(Entity Integrity Constraint)
- 엔티티 무결성 제약 조건(Entity Integrity Constraint)는 어떤 기본키 값도 널 값이 될 수 없다 를 뜻합니다.
- 왜냐하면 기본키는 한 릴레이션 내에서 각 튜플을 식별하는데 사용되는데, 만약 기본키 값이 널 값이라면 튜플을 식별할 수 없기 때문입니다.
- 따라서 t[PK] != NULL이 만족해야 하고, PK가 여러 개의 애트리뷰트를 가진다면 어떤 애트리뷰트라도 NULL이 허용되지 않습니다.
2. 참조 무결성 제약 조건(Referential Integrity Constraint)
- 참조 무결성 제약 조건(Referential Integrity Constraint)은 두 릴레이션 사이에 명시되는 제약 조건이며, 두 릴레이션의 튜플 사이의 일관성인 Consistency를 유지하는데 사용됩니다.
- 해당 제약 조건은 한 릴레이션에 있는 튜플이 다른 릴레이션에 있는 튜플을 참조하려면 반드시 참조되는 튜플이 그 릴레이션 내에 존재해야 한다는 것입니다.
- 즉 대학생 애트리뷰트의 학번은, 어떤 학과의 학부생 명단 릴레이션의 특정 학번과 반드시 일치해야 합니다.
- 이를 조금 더 엄격하게 정의하기 위해서는 외래키(foreign key)에 대해 설명해야 합니다.
3. 외래키(foreign key)
- 외래키가 되기 위해서는 두 개의 릴레이션 스키마인 R1과 R2 사이의 참조 무결성 제약 조건이 만족되어야 합니다.
- 즉, R1의 어떤 애트리뷰트들의 집합 FK(Foreign Key)가 다음의 규칙을 만족하면 FK는 R2를 참조하는 R1의 외래키가 됩니다.
- FK의 애트리뷰트는 R2의 PK의 애트리뷰트와 동일한 도메인을 가진다. 이때 FK는 R2를 참조한다고 한다.
- 현재 상태 r1(R1)의 한 튜플 t1 내의 FK 값은 현재 상태 r2(R2)의 한 튜플 t2 내의 PK 값과 일치하거나 널 값을 가져야 한다. 전자의 경우 t1[FK] = t2[PK]이고, 튜플 t1이 튜플 t2를 참조한다고 말한다.
- 이때 R1은 Referencing Relation이라하고, R2는 Referenced Relation이라 합니다.
- 위의 두 조건을 만족한다면 R1에서 R2로의 참조 무결성 제약 조건을 만족한다고 말합니다.
- 만약 FK가 NULL이라면, FK는 R1의 PK가 될 수 없습니다. 이는 Entity Integrity Constraint를 위배하기 때문입니다.
4. 기타 다른 제약 조건들
- 예를 들면 부하의 연봉은 상사의 연봉을 넘을 수 없다 같은 의미적 무결성 제약 조건(Semantic Integrity Constraint)이 있습니다.
- 이런 경우에는 Trigger, Assertion을 통해 해결할 수 있습니다.
- 지금까지는 데이터베이스의 유효한 상태가 만족해야 하는 제약 조건들이므로 상태 제약 조건(State Constraint)라고 부릅니다.
- 다음 글부터는 데이터베이스 내의 상태 변화를 다루기 위해 정의되는 전이 제약 조건(Transition Constraint)에 대해 알아보겠습니다.
참고
경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업
DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년
다음 글에서는 전이 제약 조건(Transition Constraint)에 대해 알아보겠습니다.
2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 전이 제약 조건(Transition Constraint)
감사합니다.
지적 환영합니다.
'Computer Science > 데이터 베이스' 카테고리의 다른 글
[데이터베이스] ER-관계 사상(ER to Relational Mapping) (3) | 2023.10.26 |
---|---|
[데이터베이스] 전이 제약 조건(Transition Constraint) (1) | 2023.10.26 |
[데이터베이스] 관계 모델의 제약 조건 - 1(Relational Model Constraints) (1) | 2023.10.26 |
[데이터베이스] 릴레이션의 특성(Characteristics of Relation) (0) | 2023.10.26 |
[데이터베이스] 관계 모델(Relation Model) (0) | 2023.10.25 |