Computer Science/데이터 베이스

[데이터베이스] 전이 제약 조건(Transition Constraint)

바보1 2023. 10. 26. 02:52

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델의 제약 조건 - 2(Relational Model Constraints)

 

[데이터베이스] 관계 모델의 제약 조건 - 2(Relational Model Constraints)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] 관계 모델의 제약 조건 - 1(Relational Model Constraints) [데이터베이스] 관계 모델의 제약 조건 - 1(Re

hi-guten-tag.tistory.com


1. 관계 모델의 연산

 

 

  • 관계 모델의 연산에는 Retrieval과 Update으로 나누어집니다.
  • 갱신 연산인 Update에는 Insert, Delete, Update or Modify가 존재합니다.
  • Insert는 새로운 튜플을 삽입하고, Delete는 튜플을 삭제하는 데 사용됩니다.
  • Update or Modify는 기존의 튜플의 몇 개의 애트리뷰트 값을 바꾸는 데 사용됩니다.
  • 이때 어떠한 갱신 연산을 적용해도 스키마에 정의된 무결성 제약 조건을 위반하지 않아야 합니다.
  • 해당 글에서는 각 연산으로 생길 수 있는 위반 조건과 이때 취할 수 있는 처리 방법에 대해 설명합니다.

2. Insert 연산

 

 

  • 삽입 연산은 릴레이션 R에 새로운 튜플 t를 삽입합니다.
  • 이때 t에는 주어진 도메인에 대한 적당한 데이터 타입을 갖지 않는다면 도메인 제약 조건을 위반할 수 있습니다.
  • t의 PK 값이 같은 릴레이션의 다른 튜플에 존재한다면 키 제약 조건을 위반할 수 있습니다.
  • t의 PK 값이 NULL이라면 엔티티 제약 조건을 위반할 수 있습니다.
  • t의 FK 값이 참조하는 Referenced Relation에 존재하지 않는 튜플을 가리키면 참조 제약 조건을 위반할 수 있습니다.

 

  • 이때 삽입이 제약 조건을 위반하면 삽입을 거부하는 것이 기본 옵션이 될 수 있습니다.
  • 혹은 이유를 정정하는 것 또한 옵션이 될 수 있습니다.

3. Delete 연산

 

 

  • 삭제되는 튜플이 다른 릴레이션의 튜플에 의해서 외래키로 참조되고 있다면 참조 제약 조건을 위반할 수 있습니다.

 

  • 이때 삭제 연산이 제약 조건을 위반한다면 다양한 옵션으로 처리가 가능합니다.
  • 첫 번째는 삭제를 거부하는 것으로 RESTRICT를 옵션으로 할 수 있습니다.
  • 두 번째는 삭제되는 튜플을 참조하는 모든 튜플을 연쇄적으로 삭제하는 것으로, CASCADE라고 부릅니다.
  • 마지막은 참조하는 애트리뷰트의 값을 변화시키는 것으로 SET NULL 혹은 SET DEFAULT가 있습니다.

4. Update or Modify 연산

 

 

  • 갱신되는 연산은 도메인 제약 조건을 위반할 수 있습니다.
  • 또한 키 제약 조건, 엔티티 제약 조건, 참조 제약 조건, 널 제약 조건 등을 위반할 수 있습니다.

 

  • 갱신 연산은 기존의 튜플을 삭제하고, 새로운 튜플을 넣는 것과 비슷합니다.
  • 따라서 이 또한 Delete 연산과 마찬가지로 변경하려는 애트리뷰트가 PK라면 Delete와 비슷한 연산을 사용해 해결할 수 있습니다.
  • 또한 변경하려는 애트리뷰트가 FK일 경우에도 Delete와 비슷한 연산을 사용해 해결할 수 있습니다.
  • 반대로 PK나 FK가 아닌 경우 도메인 혹은 널 제약 조건에 위반된 것일텐데, 이때는 거절할 수 있습니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0322-004 데이타베이스 수업

DATABASE SYSTEMS 7th / Elmasri, Navathe 저 / PEARSON / 2019년


다음 글에서는 ER-관계 사상(ER to Relational Mapping)에 대해 알아보겠습니다.

 

2023.10.26 - [Computer Science/데이터 베이스] - [데이터베이스] ER-관계 사상(ER to Relational Mapping)

 

[데이터베이스] ER-관계 사상(ER to Relational Mapping)

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.10.21 - [Computer Science/데이터 베이스] - [데이터베이스] ER 모델(Entity Type, Entity Sets, Attributes and Keys) [데이터베이스] ER 모델(Entity Type, Entity Sets, Attribute

hi-guten-tag.tistory.com

 

감사합니다.

지적 환영합니다.