-
확장 ER 모델의 개념
- ER 모델의 단점을 보완하기 위해 특수화(Specialization), 일반화(Generalization), 집단화(Aggregation) 등을 지원할 수 있도록 추상적 기능을 추가해서 만든 ER모델
- 재사용, 상속, 확장성 등의 개념을 적용하여 현실 세계를 보다 정확하게 데이터베이스에 표현하기 위해 작성된 모델
-
주요 개념
- 수파 타입(Super-type) / 서버 타입(Sub-type)
- 특수화(Specialization) / 일반화(Generalization)
- 상속(Inheritance)
- 집단화(Aggregation)
-
분류화(Classification)
-
슈퍼 타입/서버 타입
- 한 수퍼 타입은 여러 서브 타입으로 나누어짐
- 슈퍼 타입과 서브 타입의 관계는 IS-A 관계를 가짐
- 서브 타입은 또 다른 개체 타입의 슈퍼 타입이 될 수 있음
-
특수화/일반화
-
특수화
- 하나의 개체 타입을 몇 개의 하위 레벨 개체 타입으로 분리하는 것
- 하향식(Top-Down) 설계 방식으로, IS-A 관계에 기반을 둠
- 특수화란 일반화의 개념과 같으나, 클래스를 보는 시점에 있어 상위의 클래스에서 하위의 클래스를 보는 관점으로써 하위 개념으로 내려 갈수록 인스턴스(Instance)는 특수화 됨
- 특수화는 슈퍼 클래스를 겹치지 않는 서브 클래스들로 나누거나 상이한 현실 세계 상황으로 나누기 위해 사용
-
일반화
- 몇 개의 개체 타입을 합해서 상위 레벨의 한 개체 타입으로 만드는 것으로, 특수화의 역 방향 설계
- E가 {E1, E2, … , En}의 일반화라면, {E1, E2, … , En}는 E의 특수화
- 상향식(Buttom-up) 설계 방식으로, IS-A 관계에 기반을 둠
- 객체들에 있어 공통적인 성질을 상위 객체 타입으로 정의하고 특수화된 객체들을 하위의 서브 타입 객체로 정의하는 추상화 방법
- 상위 클래스는 하위 객체의 공통된 특징을 가지고 있으며, 하위 객체는 상위 클래스로부터 속성을 상속받음
-
특수화 및 일반화 예
-
상속(Inheritance)
-
집단화(Aggregation)
- 각각의 구성 요소를 표현하는 개체들의 집합으로부터 새로운 개체를 정의하는 것
- 서로 관련이 있는 여러 개의 개체 타입을 묶어 한 개의 상위 개체 타입으로 만드는 것
- 중복되는 관계를 단순한 관계로 표현하는 것이 가능하고, IS-PART-OF 관계로 나타남
- CAD/CAM, 공학 데이터베이스 설계에 유용
-
일반화/특수화와는 달리 상속이적용 안됨
-
분류화(Classification)