다잇소


[IT/트랜드] [Data Architecture] 개념 데이터 모델링 #3 관계

2018.06.03

개념 데이터 모델링 #3


 

 

 

 

오늘은 개념 데이터 모델링 마지막 시간입니다.

지난 시간에 이어 관계의 형태를 알아봅니다.

 

 

연결2

 

 

 

지난 시간에는 관계의 형태 중에서 가장 기본적인 1:1, 1:M, M:M 형태의 특성을 설명했습니다.

대부분 이 3가지 형태로 표현이 되지만, 현실 업무에서는 특이한 케이스도 분명 발생합니다.

오늘 설명하는 몇가지 형태를 적절히 사용해야 훨씬 더 정확하고 효과적인 모델링을 완성할 수 있습니다.

 

 

 


 


다중 관계 처리


 

 

다중 관계란 어떤 두 엔터티의 사이에 하나 이상의 관계를 가지고 있는 상태를 말한다.

서로 다른 엔터티 사이에도 경우에 따라 얼마든지 하나 이상의 다양한 관계가 존재할 수 있다.

관계도 집합이기 때문에 내용을 엄격하게 구분하여 여러 개의 관계로 정의할 수도 있고 크게 묶어서 한두개로 정의할 수도 있다.

 

 

 

 

병렬식 관계

 

병렬식이란 말 그대로 두엔터티 사이에 존재하는 관계들을 별도의 관계로 간주함으로써 여러개의 관계 선분이 나란히 병렬로 관계가 맺어지게 되는 경우이다.

 

 

그림 4-2-35

 

 

 

 

병렬식 관계 특징

 

– 테이블이 될 때 여러 개의 컬럼으로 나열된다.

– 하나의 로우에서 관리되므로 새로운 테이블을 추가할 필요가 없다.

– 인덱스 수가 증가되고 SQL이 복잡해진다.

– 새로운 관계의 추가, 관계 형태의 변경 등에 매우 취약한 형태이다.

– 관계 내용별로 상세 정보를 관리할 수 없다.

 

 

 

 

 
직렬식 관계

 

두 엔터티 사이에 존재하는 몇 개의 관계를 모아 상위 개념으로 통합함으로써 하나의 관계로 관리하는 방법이다.

이 방법은 여러가지의 관계를 하나로 통합했기 대문에 관계의 명칭 또한 당연히 상향으로 조정되어야 한다.

 

 

 

그림 4-2-37

 

 

 

 

직렬식 관계의 특징

 

– 관계들을 관리하는 새로운 엔터티가 추가되어야 한다.

– 관계들을 로우 형태로 나타난다.

– 인덱스 수가 감소하고 SQL이 단순해진다.

– 새로운 관계의 추가, 관계 형태의 변경 등에 매우 유연한 형태이다.

– 관계 내용별로 상세정보를 관리할 수 있다. (자식 엔터티를 거느릴 수 있다)

 

 

 

 

 

병렬식 vs 직렬식   ************ 중요


 















병렬식  직렬식 
– 테이블이 될 때 여러 개의 컬럼으로 나열된다.

– 하나의 로우에서 관리되므로 새로운 테이블을 추가할 필요가 없다.

– 인덱스 수가 증가되고 SQL이 복잡해진다.

– 새로운 관계의 추가, 관계 형태의 변경 등에 매우 취약한 형태이다.

– 관계 내용별로 상세 정보를 관리할 수 없다.
– 관계들을 관리하는 새로운 엔터티가 추가되어야 한다.

– 관계들을 로우 형태로 나타난다.

– 인덱스 수가 감소하고 SQL이 단순해진다.

– 새로운 관계의 추가, 관계 형태의 변경 등에 매우 유연한 형태이다.

– 관계 내용별로 상세정보를 관리할 수 있다. (자식 엔터티를 거느릴 수 있다)

 

 

 

 

 

 

 

특수한 형태의 관계들


 

 

 

 

1) 순환 관계 (Recursive Relationship)

 

 

조직

 

 

 

하나의 엔터티가 다른 엔터티가 아닌 자기 자신과 관계를 맺는 관계를 순환 관계라고 한다.

 

 

그림 4-2-38

 

 

 

– 하나의 순환 엔터티는 각 엔터티의 모든 속성을 포함해야 한다.

– 각 계층에 있는 속성은 동일하게 하는 것이 가장 좋다.

– 순환 모델은 필수(직선)관계로 취급될 수 없고 반드시 선택 사양 관계이다.

– 순환 모델의 특징은 조직의 변경(추가/삭제)에 쉽게 대응할 수 있다는 것이다.

 

 

 

 

 
2) BOM(Bill of Materals) 관계

 

 

부품

 

 

 

BOM관계의 모델을 네트워크 구조라 한다.

BOM 모델은 M:M순환 관계라 하며, 상세 모델링 과정에서 새로운 관계 엔터티를 추가하여 두개의 일대다(1:M) 관계로 구성된 모델로 구체화된다.

 

 

 

그림 4-2-39

 

 

 

 

 
3) Arc (Mutually Exclusive) 관계

 

어떤 엔터티가 두개 이상의 다른 엔터티의 합집합과 관게를 가지는 것을 배타적 관계 혹은 아크 관계라 한다.

이러한 아크 관계는 동일한 의미의 관계가 서로 다른 하나 이상의 엔터티와 배타적으로 관계를 갖고 있을 때 이를 하나로 통합함으로써 발생하게 된다.

 

 

– 아크 내에 있는 관계는 보통 동일하다.

– 아크 내에 있는 관계는 항상 필수이거나 선택 사양이어야 한다.

– 아크는 반드시 하나의 엔터티에만 속해야 한다. (하나의 아크가 여러 엔터티를 가질 수 없다)

– 어떤 엔터티는 다수의 아크를 가질 수 있다. 그러나 지정된 관계는 단 하나의 아크에만 사용되어야 한다.

 

 

 

그림 4-2-40

 

 

 

 

 

 

 

 

 

마무리

 

0 질문1

 

 
Q. 다음 중 직렬 관계의 특성으로 틀린 것을 고르시오.

 

1. 새로운 테이블이 추가됨

2. 인덱스 수가 감소될 가능성이 높음

3. 여러 개의 속성으로 나누어짐

4. 변화에 유리함(로우만 추가됨)

 

 

 

 



 

 

 

 



 

 

 

 

정답은 아래

 

 

 

 



 

 

 

 



 

 

 

 



 

 

 

 

 

정답) 3

직렬 관계는 여러 개의 로우로 나누어진다

 

 

[출처]
– 데이터아키텍처 전문가 가이드 2013
– 데이터아키텍처 자격검정 실전문제 2013
설정된 프로필 사진이 없습니다.
| Wise리더
관심분야

카테고리 레이어 닫기