Computer Science/데이터 베이스

[데이터베이스] 관계의 제약 조건, 관계 타입의 애트리뷰트

바보1 2023. 10. 25. 18:45

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

 

2023.10.21 - [Computer Science/데이터 베이스] - [데이터베이스] ER 모델(관계, Relationship)

 

[데이터베이스] ER 모델(관계, Relationship)

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

hi-guten-tag.tistory.com


1. 관계의 제약 조건

 

 

  • 예를 들어 모든 직원은 정확히 한 부서에서 근무해야 한다. 혹은 몇몇 직원은 그들의 부서를 관리한다. 같은 제약 조건을 ER 모델에서 표시할 수 있을까요?
  • 이때 사용되는 것이 Cardinality ratioParticipation constraint입니다.

2. Cardinality Ratio

 

 

  • Cardinality Ratio는 엔티티가 참여할 수 있는 최대 관계 인스턴스들의 수를 명시합니다.
  • Cardinality Ratio에는 1:1, 1:N, N:M 비율이 존재합니다.
  • 1:1은 각 엔티티가 관계에 한 번만 참여한다는 뜻이고, N:M은 각 엔티티가 관계에 제한 없이 참여할 수 있음을 뜻합니다.
  • 위의 예시에서 모든 직원은 하나의 부서에서 근무해야 한다의 관계는 WORKS_ON이 됩니다.
  • 이때 관계에 참여하는 엔티티는 EMPLOYEE와 DEPARTMENT입니다.
  • 따라서 EMPLOYEE : DEPARTMENT의 Cardinality Ratio는 N:1이 됩니다.
  • 이는 ER 모델에서 직접 명시함으로써 표현됩니다.


3. Participation Constraint

 

 

  • 참여 제약 조건인 Participation Constraint는 앞선 Cardinality Ratio와는 반대 개념입니다.
  • 위의 Cardinality Ratio는 관계에 참여하는 엔티티의 최대 개수를 명시한다면, 이 Pariticipation Constraint는 최소 조건을 명시합니다.
  • Participation Constraint에는 total participation과 partial participation이 존재합니다.
  • 모든 직원은 하나의 부서에서 근무해야 한다를 다시 예시로 들어봅시다.
  • 이때 전체 직원은 반드시 WORKS_ON 관계에 참여해야 하므로, total participation 제약 조건을 가지고 있습니다.
  • ER 모델에서는 total participation은 이중선으로 연결하고, partial participation은 단일선으로 연결하여 나타냅니다.


4. 관계 타입의 애트리뷰트

 

 

  • 관계 타입도 엔티티 타입처럼 애트리뷰트를 가질 수 있습니다.
  • 예를 들어 한 사원이 근무하는 주당 시간을 기록하기 위해 WORKS_ON 관계 타입에 애트리뷰트 Hours를 포함시킬 수 있습니다.
  • 하지만 관계 애트리뷰트는 1:1 혹은 1:N 관계 타입은 참여하고 있는 엔티티 타입들 중 하나로 통합될 수 있습니다.
  • 왜냐하면 엔티티에 의해 독립적으로 결정될 수 있기 때문입니다.
  • 2번 목차의 예시처럼 EMPLOYEE와 DEPARTMENT는 N:1 관계입니다. 이는 N 명의 직원이 1 개의 부서에 근무한다를 의미합니다.
  • 1개의 부서는 N명의 직원을 관리하기 때문에 부서 엔티티에는 관계 애트리뷰트가 통합될 수 없습니다.
  • 1명의 직원은 오로지 1개의 부서에만 참여하기 때문에 직원 엔티티에 관계 애트리뷰트가 통합될 수 있습니다.
  • 하지만 M:N 관계 타입에서는 관계 인스턴스에 참여하는 엔티티들의 조합에 의해 결정되는 애트리뷰트가 존재합니다.
  • 따라서 위의 관계 타입은 어느 한쪽의 엔티티에 의해 독립적으로 결정되지 않으므로, 관계 애트리뷰트로 명시해야 합니다.

5. (min, max)

 

 

  • Cardinality Ratio, Participation Constraint를 통합하여 (min, max)로 표현할 수 있습니다.
  • min이 0이면 부분 참여를 의미하고, min이 0보다 크면 전체 참여를 의미합니다.
  • 이때 max는 Cardinality Ratio를 바꿔서 적는 방법으로 표시합니다.
  • 직원과 부서를 다시 예시로 들면, Carinality Ratio는 N:1이고, 직원은 전체 참여 조건을 가지고 있습니다.
  • 이를 (min, max)로 바꾸면, 직원 : 부서 = (1, 1) : (1, N)이 됩니다.
  • 따라서 직원과 부서는 전부 관계에 전체 참여를 해야 합니다.
  • 또한 직원은 최대 1번 관계에 참여해야 하지만, 부서는 최대 N번 관계에 참여할 수 있습니다.

참고

 

 

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

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


다음 글에서는 약한 엔티티 타입(Weak Entity Type)에 대해 알아보겠습니다.

 

2023.10.25 - [Computer Science/데이터 베이스] - [데이터베이스] 약한 엔티티 타입(Weak Entity Type)

 

[데이터베이스] 약한 엔티티 타입(Weak Entity Type)

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

hi-guten-tag.tistory.com

 

감사합니다.

지적 환영합니다.