EER Diagram에서의 Disjoint와 Overlap
포스트 난이도: HOO_Junior
# Database Diagram
Database diagram을 그릴 때 data를 구분하는 과정에서 disjoint와 overlap을 EER diagram에서 사용한다.
Class 안에 수많은 Enitity sets들과 attributes들을 구분하는 과정에서 추상적 표현 방법인 d와 o를 사용한다.
# Superclass와 Subclass
disjoint와 overlap에 대해서 이해하기 위해서는 Superclass와 Subclass에 대한 이해가 필수적이다.
잠깐의 짧은 Superclass와 Subclass에 대한 Review 시간을 가져보자면, Superclass 안에 Subclass가 존재한다.
따라서 x라는 subclass가 y라는 superclass을 상속받게 되면 y라는 속성을 x가 가지고 있게 된다.
# Disjoint와 Overlap
Disjoint와 Overlap은 상속되는 entity들의 속성을 구분하는 사용된다.
단어의 뜻 자체에서도 유추가 되듯이 Disjoint는 각각의 다른 subclass가 존재하는 반면에 overlap은 다수의 subclass를 가지고 있다는 의미를 나타낸다.
한마디로 disjoint가 된 경우 여러 개의 subclass를 가질 수 없지만 overlap은 여러 개의 subclass를 가질 수 있다.
아래는 disjoint와 overlap에 대한 예시 diagram이다.
# Fig01.
위의 fig01 그림을 보면, disjoint의 예시를 살펴볼 수 있다.
online site를 이용하는 사람에 대한 entity를 구성할 때 buyer와 seller만 있다고 가정한다면 total participation이기 때문에 2줄로 그려준다.
이 그림에서의 buyer와 seller의 조건은 overlap이 아닌 disjoint를 사용하고 있기 때문에 buyer가 seller를 대체할 수 없다는 것이다.
만약에 disjoint가 아니라 굳이 overlap을 사용했을 경우에는 buyer가 seller 또는 seller가 buyer를 대체할 수 있다는 의미를 가지게 된다.
# Fig02.
위의 fig02 예시 그림은 Item list에 graphics card와 Ram에 대한 EER diagram이다.
여기도 아이템 종류가 그래픽카드와 램 두 가지만 존재한다고 가정했기에 total participation이 되어서 2줄로 표시를 해준다.
이 그림에서는 disjoint가 아니라 overlap을 사용했기 때문에 graphics card가 ram과 중복된다는 점을 얘기하고 있다.
솔직히 disjoint가 더 어울리지만, 굳이 overlap을 예시를 들기 위해서 overlap을 사용하였다.
결과적으로 overlap은 여러 개의 subclass를 가질 수 있다는 의미이며, graphics card가 ram을 대체할 수 있다는 걸 의미한다.
댓글