JINWOOJUNG

[ DB ] 데이터베이스...3(EER Diagram) 본문

Database

[ DB ] 데이터베이스...3(EER Diagram)

Jinu_01 2024. 9. 30. 22:18
728x90
반응형

본 포스팅은 인하대학교 최원익교수님의 "데이터베이스설계" 수업에서 진행한 프론트, 백엔드 실습 관련 정리하는 포스팅입니다. 백엔드, 프론트엔드는 전문 분야가 아니기에 공부용으로 올리는 포스팅이며 오류사항이 있을 수 있습니다.

 

https://jinwoo-jung.tistory.com/101

 

[ DB ] 데이터베이스...2(ER Diagram)

본 포스팅은 인하대학교 최원익교수님의 "데이터베이스설계" 수업에서 진행한 프론트, 백엔드 실습 관련 정리하는 포스팅입니다. 백엔드, 프론트엔드는 전문 분야가 아니기에 공부용으로 올리

jinwoo-jung.com

 


 

Extended ER Diagram

ER Diagram에서 나타낸 Entity는 추가적인 의미있는 Sub-Group을 가질 수 있다. 예를들어 EMPLOYEE Entity는 SECRETARY, ENGINEER, TECHNICIAN 등 직업별로 그룹화 할 수 있다. 이처럼, Sub-Group을 표현하기 위해서 ER Diagram을 확장한 것을 Extended ER Diagram(EER Diagram)이라 한다. 

 

EER Diagram

 

위와 같은 EER Diagram을 살펴보자. EMPLOYEE Entity는 SECRETARY, TECHNICIAN, ENGINEER 이라는 subgroupings를 가진다. 이처럼 특정 Entity의 subgrouping을 subclass라 부른다. 그리고 subgroupings를 가지는 Entity를 superclass라 하며, 위 예시에서는 EMPLOYEE Entity가 superclass가 된다. 

 

이러한 관겨는 IS-A Relationship이라고도 표현하는데, ENGINEER IS A EMPLOLYEE와 같이 예시를 통해 쉽게 이해할 수 있을 것이다. 

 

EER Diagram에서 subclass, superclass 관계를 표현하는 방법은 총 4가지가 있다. 

  • Disjoint, Total

Disjoint는 위와 같이 원 안에 d로 표현된다. Disjoint의 의미는 superclass인 Entity는 subclass 중 하나에만 속함을 의미한다. 위 예시에서는 EMPLOYEE Entity는 SALARIED_EMPLOYEE, HOURLY_EMPLOYEE 둘 중 하나에 속한다. 

 

Total은 superclass의 모든 Entity가 subclass 중 하나에 속함을 의미한다. 즉,  EMPLOYEE Entity는 SALARIED_EMPLOYEE, HOURLY_EMPLOYEE 둘 중 하나에는 무조건 속함을 의미한다. 

 

  • Disjoint, Partial

 

Partial은 위 EER Diagram과 같이 1개의 실선으로 표현된다. 이는 superclass는 subclass 중 어느것도 속하지 않을 수 있음을 의미한다. 

 

  • Overlapping, Total

 

Overlapping은 위 EER Diagram과 같이 원 안에 o로 표현된다. 이는 subclass 들 중 중복이 가능함을 의미한다. 위 예시에서는 팔린 부품(PART)의 경우 제조되었으므로 MANUFACTURED_PART에 속하며, 팔린 경우 PURCHASED_PART에도 속함을 의미한다. 

 

  • Overlapping, Partial

따로 예시는 없다..하지만 앞서 소개한 정보를 종합 해 보면, superclass는 subclass들 중 중복으로 포함 가능하며, superclass는 subclass들 중 어느것도 속하지 않을 수 있다. 

 

 

위 EER Diagram을 해석해 보자. 

 

EMPLOYEE Entity는 SALARIED_EMPLOYEE, HOURLY_EMPLOYEE 중 하나에 무조건 속한다. 또한, SECRETARY, TECHNICIAN,ENGINEER 중 하나에 속할 수도 있으며, MANAGER일 수도 있다. 그렇다면, 왜 SECRETARY, TECHNICIAN,ENGINEER, MANAGER를 하나의 Disjoint로 표현하지 않았을까? EMPLOYEE는 MANAGER임과 동시에 SECRETARY, TECHNICIAN,ENGINEER 중 하나일 수 있으므로 위와 같이 표현 한 것이다. 

 

UNION TYPE

Categories라고도 불리는 Union Type이 있다. 이는, 다수의 Entity의 공통 부분을 하나의 Entity로 통합할 때 사용되며, Union을 구성하는 모든 Entity에 공통된 속성과 관계를 부여한다. 

 

 

Union은 원 안에 U로 표기된다. REGISTERD_VEHICLE을 소유하고 있는 객체는 PERSON, COMPANY, BANK(저당권을 보유한)일 수 있다. 따라서 OWNER라는 Category를 생성하여 PERSON, COMPANY, BANK의 공통 부분을 통합하여 관리할 수 있다. 이처럼 Category는 같은 기능을 수행할 때 사용된다. 

 

끝으로, UNION과 disjoint, overlapping을 표현할 때의 굴다리 모양의 방향이 다름을 주의하자.

728x90
반응형