Enhanced-ER(EER) Model
개선된 ER Model: 기존의 ER model에 다음의 기능들을 추가 확장한 model
- Subclasses/Superclasses
- Inheritance
- Multiple Inheritance
- Disjoint/Overlap Constraints
- Specialization
- Generalization
applications를 더 완전하고 정확하게 모델링하기 위해 사용
object-oriented applications에 유용
Subclass and Superclass
- 한 entity type은 여러 개의 의미있는 sub-entity type 들로 group화 가능
- Subclass와 superclass 관계를 IS-A (혹은 Inclusion) relationship이라고 함
- 각 Subclass는 superclass 보다 더 많은 attribute들을 가짐(즉 superclass의 attribute들 외에 자신만의 고유한 attribute들을 추가로 가질 수 있음.)
상속
- subclass에 속하는 개체는 superclass에 속하는 개체의 모든 속성들과 관계들, 기능(프로그램)들을 상속
- 다른 class들과 자기 자신만의 관계를 가질 수 있음
- 상속을 통해 이미 존재하는 ER schema를 새로운 ER Schema를 만드는 데 재사용할 수 있음
다중 상속
Single Inheritance 단일 상속
- subclass는 superclass 하나만 가짐
- It forms a class hierarchy (= like tree).
Multiple Inheritance 다중 상속
- subclass는 하나 이상의 superclasses 가짐
- subclass는 각각의 superclasses들의 속성 상속 가능
- 즉, 각 superclass는 자기 자신 고유의 이질적인 특성들을 가질 수 있음.
상속 제약조건
- Disjoint : superclass의 개체는 최대 한 개의 subclass에만 속할 수 있음
- Overlap : superclass의 개체는 하나 이상의 subclass에 속할 수 있음
- Total : superclass는 subclasses에 반드시 속해야 함
- Partial : superclass는 subclasses에 안 속해도 됨
Specialization 세분화
- superclass로부터 subclass들의 집합을 정의하는 과정
- Top-Down (= Refinement정제) Modeling
- IS_A relationship 기반
- subclass는 자신의 모든 직접/간접 superclass의 속성들을 상속한다
Example:
{SECRETARY, ENGINEER, TECHNICIAN} is a specialization of EMPLOYEE based upon job type.
{SALARY_EMP, HOURLY_EMP} is a specialization of EMPLOYEE based in payment type
Generalization
- Specialization의 역
- Bottom-Up (= Synthesis 합성) modeling
- IS-A relationship 기반
- 공통특징을 갖는 class들을 superclass로 일반화
Example:
{CAR, TRUCK, BUS} can be generalized into VEHICLE;