본문 바로가기
Quality control (Univ. Study)/Database Design

EER

by 생각하는 이상훈 2023. 9. 26.
728x90

EER

EER은 Enhanced ER이거나 Extended ER의 줄임말이다.

EER Model은 ER Model의 모든 modeling concept은 포함하고 추가적으로 subclasses/superclasses, specialization/generalization, categories(UNION types), attribute and relationship inheritance라는 concept이 추가된다.


Subclasses/Superclasses

Superclass (슈퍼클래스) 슈퍼클래스는 여러 서브클래스들이 공통으로 가지는 속성들을 포함하는 클래스이다. 예를 들면, "동물"이라는 슈퍼클래스는 "사자", "기린", "코끼리"와 같은 서브클래스들이 공통으로 가질 수 있는 "이름", "나이", "체중"과 같은 속성들을 가질 수 있다.

Subclass (서브클래스) 서브클래스는 슈퍼클래스의 속성들을 상속받아서 사용하며, 그 외에도 자신만의 고유한 속성이나 관계를 가질 수 있다. 위의 예에서, "사자"는 "갈기 색상"이라는 특별한 속성을 가질 수 있으며, "기린"은 "목의 길이"와 같은 특별한 속성을 가질 수 있다.

이렇게 슈퍼클래스와 서브클래스를 사용함으로써, 공통 속성들은 슈퍼클래스에서 정의하고, 특화된 속성이나 관계는 서브클래스에서 정의함으로써 데이터 모델링의 중복성을 줄이고 효율성을 높일 수 있다.


Specialization

Specialization은 데이터 모델링 과정에서 발생하는 과정이나 행위이다. 이는 하나의 엔터티 superclass를 두 개 이상의 더 구체적인 엔터티 subclasses로 나누는 과정을 의미한다. Specialization의 목적은 공통된 속성을 가지면서도 구별되는 특성을 가진 엔터티들을 효과적으로 모델링하기 위함이다.

disjoint와 overlap은 서브클래스들 간의 관계와 그들의 속성을 표현하는 데 사용되는 개념이다.

Disjoint는 서브클래스 간에 겹치는 부분이 없음을 나타낸다. 즉, 어떤 엔터티가 하나의 서브클래스에 속하면 그 엔터티는 다른 서브클래스에 속할 수 없다. 배타적인 서브클래스 관계에서는, 엔터티는 오직 하나의 서브클래스에만 속하게 된다. 예를들어 동물이라는 슈퍼클래스 아래에 포유류와 파충류라는 서브클래스가 있다고 할 때, 특정 동물이 포유류에 속한다면 그 동물은 파충류에는 속할 수 없다.

Overlap은 서브클래스 간에 겹치는 부분이 있음을 나타낸다. 즉, 하나의 엔터티가 여러 서브클래스에 동시에 속할 수 있다. 예를들어 사람이라는 슈퍼클래스 아래에 학생과 교직원이라는 서브클래스가 있다고 할 때, 대학원생은 학생이면서 동시에 교직원일 수 있으므로 이런 경우에는 겹치는 관계를 가질 수 있다. EER 다이어그램에서 이러한 관계를 표현할 때, disjoint 관계는 'd'와 같은 기호로, overlap 관계는 'o'와 같은 기호로 나타낼 수 있다. 위의 예시에서는 disjoint가 쓰였음을 알 수 있고 대부분 disjoint인 관계가 많다.


Generalization

Generalization은 specialization과 상반된 개념으로 아래와 같이 여러 개의 서브클래스들에서 공통된 속성들을 합쳐 하나의 슈퍼클래스를 만드는 과정이다. 간단히 말하면, 둘 이상의 구체적인 엔터티에서 공통점을 찾아 이를 기반으로 일반적인 엔터티를 정의하는 것이다. 아래를 보면 car와 truck에서 공통점을 찾아서 vehicle이라는 superclass를 만들어냈음을 알 수 있다.


Categories (UNION TYPES)

카테고리는 여러 개의 엔터티 타입들 중 공통의 부분만을 추출하여 하나의 엔터티 타입으로 통합하는 것을 의미한다. 이는 서로 다른 엔터티 타입들이 일정한 상황에서 같은 역할을 수행할 때 유용하게 사용된다. 

예를들어 학교에서 학생과 교직원이 각각 다른 엔터티 타입으로 존재한다고 가정해보자. 그런데 학교 도서관에서 도서 대출 시스템에서는 학생과 교직원을 도서 대출자로 간주하고 싶다면, "도서 대출자"라는 카테고리를 생성하여 학생과 교직원의 공통 부분을 통합할 수 있다. 

카테고리의 특징은 주로 서로 다른 엔터티 타입들이 같은 역할이나 기능을 수행해야 할 때 사용된다는 것이다. 카테고리 내에서는 엔터티의 원래 타입 (예: 학생, 교직원)을 식별하는데 필요한 정보가 유지된다. 

EER 다이어그램에서 카테고리는 일반적으로 원 또는 타원과 같은 도형으로 표시되며, 관련된 엔터티 타입들과 연결선으로 연결된다. 이 연결선 위에는 'U' 표기가 들어갈 수 있어, UNION을 나타다. 결론적으로, Categories 또는 UNION TYPES는 여러 엔터티 타입들의 공통 부분을 하나의 엔터티로 통합하고자 할 때 사용되는 구조적 모델링 개념이다.

 


UML


다양한 Notation


 

728x90

'Quality control (Univ. Study) > Database Design' 카테고리의 다른 글

MySQL Express upgrade  (1) 2023.10.05
Univ. DB upgrade  (0) 2023.10.05
MySQL의 ER diagram  (0) 2023.09.26
MySQL Express 연동  (0) 2023.09.25
Mini University DB design  (0) 2023.09.23