본문 바로가기

데이터베이스

IS-A Relationship

개체 간에 계층관계를 가지는 경우가 있다. 상위 계층과 하위 계층으로 나누어 지는데 상위 계층은 하위 계층보다 일반화된 개체이다. 하위 계층에 속한 개체는 보다 정교한 혹은 상세하게 표현된 개체이다. 

 

이때 상위 개체를 Super class라고 하고 하위 개체를 Sub class라고 한다. 

 

이 때 일반화(Generalization)란 bottom-up방식의 접근을 말한다. 이 말은 달리 말해 하위 계층에 있는 개체들을 조합하여 상위계층의 개체를 도출해 낸다.고 하면 될지....

 

예를 들어 VIP고객 일반고객을 조합하고 고객이라는 추상화된 개체가 도출된다....

 

또 정교하고 혹은 상세(Specialization하게 라는 표현을 썼었다. 이 상세화는 일반화의 반대 의미이다. 

top-down방식의 접근을 말하는 것으로 상위계층의 개체를 상세하게 분류하고 조각조각 내어 하위 단계의 개체를 도출해 낸다. 고 하면 되겠다... 

 

예를 들어 학생을 졸업생과 재학생으로 나눌 수 있을 것이다. 

 

IS-A관계는 역삼각형으로 표현한다.

IS-A Relationship 기호

자동차도 종류가 다양하다. 스포츠카, 캠핑카, 냉동차, 덤프트럭 등 다양하다. 반대로 스포츠카, 캠핑카는 다 차(Car)다.

둘은 IS-A 관계로 표현된다. Super Class 즉 상위 계층의 차는 차가 가지는 공통 속성인 엔진, 바퀴, 핸들을 가지고 있고 캠핑카는 이 공통 속성에 플러스해서 침대 등 그 개체만의 고유의 속성을 지닌다. 그래서 캠핑카가 가지는 속성은 자신만의 고유 속성이 침대 외에 상위 계층에 있는 차로 부터 속성을 상속(inherit) 받아 4가지 속성을 가지게 된다. 

IS-A Relationship 예

이와 같은 관계가 나온 것은 데이터가 복잡해지면서 기존의 ER model로는 데이터 모델링을 하는데 어려움이 있어 보다 개선되고 강화되어 나온 것이다.