티스토리 뷰

관계 정의

 

1.   관계(Relationship)란?

관계(Relationship)란 엔티티와 엔티티 사이의 관계를 말한다. 즉, 관리하고자 하는 업무 영역 내의 특정한 두 개의 엔티티 사이에 존재하는 많은 관계 중 특별히 관리하고자 하는 직접적인 관계(업무적 연관성)를 의미한다.



 

2.   관계 이해

가.  관계도 집합이다

관계는 두 엔티티 사이에 그 목적과 내용이 다른 여러 개의관계가 동시에 존재할 수 있다.



 

나.  직접 관계를 관계라고 한다

데이터 모델링에서의 데이터 집합(엔티티) 간에는 무수한 관계가 존재한다. 하지만 모든 관계를 표현(설계)하는 것은 아니다. 많은 관계 중에서 직접 종속인 것만을 관계로 보고 모델링 하는 것이다.

 

다.  두 엔티티 간에는 하나 이상의 관계가 존재할 수 있다



 

라.  외래키로 정의

관계는 외래키(FK, Foreign Key)로 구현되어 참조 무결성(RI, Referential Integrity)으로 데이터 정합성 유지의 역할을 하게 된다.

 

마.  관계의 관점

n  항상 두 엔티티 간에 존재한다.

n  항상 두 개의 관점을 가지고 있다.

n  데이터의 양방향 업무 규칙(Business Rule)을 표현

n  관계를 통하여 정보로서의 활용 가치 상승

n  외래키로 구현되어 참조 무결성으로 데이터의 정합성 유지

n  참조 무결성

 

3.   관계 표현

가.  관계 형태(Degree/Cardinality)

1)     하나 이상(Many)



까마귀 발가락처럼 표시된 모양은 하나 이상(Many)을 나타낸다. 하나 이상이란 반드시 하나 이상이 되어야 한다는 것이 아니라 하나 이상인 것이 적어도 한 가지는 존재하고 있다는 것을 의미한다.

2)     단 하나(Only One)

수평선은 단 하나임을 의미한다. 여기서 수평선이란 직선이 될 수도 있고 점선으로 표현될 수도 있으며, 이것은 선택 사양에 따라 결정된다.

 

나.  선택 사양(Optionality)

1)     일반적인 형태

주로 참조하는 엔티티(M쪽)는 참조되는 엔티티(1쪽)가 반드시 존재해야 하는 경우가 많이 나타난다. 반대로 1쪽 엔티티는 M쪽 엔티티와 반드시 관계를 맺지 않아도 되는 경우가가장 일반적인 형태라고 할 수 있다.

2)     바람직한 형태

모델링에서 가능한 한 직선 관계를 가지도록 – 특히 자식 쪽에서 – 노력해야 한다. 즉, M쪽 관계의 선택 사양을 직선 관계로 만들려고 노력해야 한다.

 

다.  관계명

1)    두 개의 관계 멤버십에 각각 부여

각자 상대방 입장에서의 관계명을 기술한다.

2)    현업에서 사용하는 간결한 동사형으로 표현

n  두 엔티티 타입 간의 업무적 연관성을 나타내는 이름 부여

n  현재 시제를 사용

n  다른 관계명과의 유일성은 확보되지 못함

n  능동/수동형의 사용은 가급적 배제



3)    업무적 의미가 없거나 애매모호한 용어는 배제

n  예: ~(관계가)있다, ~(관련이)있다, ~이다, ~한다 등

 

4.   관계 정의 방법

가.  관계 구문 이해



n  엔티티1
관계를 규명할 두 엔티티 중에서 어느 한쪽이 주어가 되어 상대방과의 관계를 규명하고자 할 때 주어가 되는 엔티티

n  임의의
집합 내의 개체 중에서 아무것이나 하나(임의의 개체)를 선택하여 만족하는지 증명하는 것이다.

n  하나는
주어 집합에 있는 ‘임의의’나 ‘하나’의 개체를 말한다. 이 하나가 어떤 형태로 상대방과의 관계를 가지는지를 검증한다.

n  관계형태
하나가 몇 개의 상대방을 가질 수 있는지를 집중적으로 밝히는 것이다.

n  엔티티2
주어가 되는 엔티티가 바라본 상대방 엔티티이다.

n  관계명
관계 규명을 통해서 정의된 관계 명칭이다.

n  선택 사양
필수(실선), 선택(점선)의 모습을 결정하는 과정이다.

 

나.  관계 정의 절차



두 집합 간의 관계는 두 집합 각각의 관점에서 바라 본 관계가 궁극적으로는 합성된 형태가 완성된 관계가 된다.

 

1)    사원을 주어로 부서를 보는 관계에서 판단해야 할 사항 예제

n   사원 엔티티의 임의의 한 개체(사원 한 사람)가 상대인 부서 엔티티에 단 하나의 개체(부서 하나)에만 소속되는지, 아니면 하나 이상에 소속될 수 있는지 판단한다.

n  지금까지 소속되었던 모든 부서를 찾고자 하는 것인지, 아니면 현재 소속되어 있는 부서만 찾고자 하는지를 판단한다.

n  겸임을 하는 사원(주로 관리자)에 대한 처리 방안을 판단한다.

n  현재 소속을 가지지 않는 사원이 단 한 명이라도 있는지를 판단한다.

n  사원 엔티티가 우리 회사에 적을 두고 있는 사람만이 아니라 관계사나 협력사에서 파견되어 근무하는 사람들까지 포함된 집합인지를 판단한다.



2)    부서를 주어로 사원을 보는 관계에서 판단해야 할 사항 예제

n  하나 이상의 사원을 가지는 부서가 있을 수 있는지를 판단한다.

n  부서가 사원을 반드시 가져야 하는지, 그렇게 하지 않을 수도 있는지에 대해 판단한다.

n  최종적인 관계는 ‘임의의 부서는 하나 이상의 사원을 현 주소속 부서로서 배치 받을 수도 있다’로 결정한다.



 

5.   관계 형태

가.  1:1 관계(Relationship)

1)    특징

n  현실에서 매우 드물게 나타나는 형태

n  업무의 흐름에 따라 데이터가 설계된 형태에서 많이 나타남

n  엔티티 수직 분할시에 많이 나타남

2)    필수-선택 형태

n  한쪽은 실선이고 다른 쪽은 점선이 되는 모습이다. 좌측에 있는 엔티티의 개체는 대응되는 우측 엔티티의 개체가 반드시 존재해야 하지만 우측 엔티티의 개체와 대응되는 좌측 엔티티의 개체는 없을 수도 있다는 것이다.



n  좌측의 Personal Computer가 조립되기 위해서는 단 하나씩의 Mother Board를 가져야 한다. 그러나 Mother Board는 아직 조립에 사용되지 않은 것이 존재할 수 있으므로 위와 같은 관계가 나타난다.

3)    필수-필수 형태

n  양쪽 모두 실선인 모습이다. 이 관계를 수학적으로 풀어보면 두 엔티티는 같은 엔티티라는 것이 증명된다.

n  대부분의 경우가 데이터 양을 감안하여 수직 분할을 한 경우가 대부분이다. 하지만 이러한 데이터들은 논리적 관점에서 보면 하나의 데이터 집합이라고 볼 수 있다.

4)    선택-선택 형태

n  바커 표기법에서는 양쪽 모두가 점선인 모습으로, IE표기법에서는 양쪽 끝에 모두 타원(oval)이 나타나는 모습의 관계로서 자주 발생되지 않는 형태이다.

n  좌측 3개의 엔티티는 서로 1:1 관계를 가지고 있지만 서로 존재할 수도, 존재하지 않을 수도 있는 형태이다. 이것을 만약 나중에 그대로 테이블로 설계한다면 전체 집합(1,2,3,4)을 찾기 위해서는 항상 합집합을 만들어야 한다.



 

나.  M:1 관계(Relationship)

1)    특징

n  가장 흔하게 나타나는 관계의 형태이다

n  내가 참조할(부모쪽) 정보는 나에 대해서 반드시 하나만 존재해야만 참조(join)할 때 내 집합에 변화가 생기지 않으므로 내가 참조하는 엔티티는 반드시 1쪽이 될 수 밖에 없다.

n  M:1 관계는 한쪽은 M(many)이고 다른 한쪽은 1(one)인 것을 말한다. 이 관계의 가장 일반적인 선택 사양의 모습은 참조하는 쪽(M)은 실선(바커표기법)이거나 타원(oval)을 갖는 형태(IE표기법)이고 참조되는 쪽(1)은 점선(바커표기법) 이거나 타원(oval)이 없는 형태로 나타난다.

n  참조하는 쪽(M)은 실선이 되도록(바커표기법) 하거나 타원이 포함되도록 (IE표기법) 하는 것이 바람직하며, 반대로 참조되는 쪽(1)은 점선이 되도록(바커표기법) 하거나 타원이 없는 형태가 되도록(IE표기법)하는 것이 좋은 모양이다.

2)    One to many relationship(Both Side Mandatory)

n  현실세계에서 그리 많은 경우는 아니지만 가끔 발생하는 형태이다.

n  주문과 주문 아이템의 관계에서 하나의 주문이 여러 개의 아이템을 포함하고 있는 경우, 주문 아이템이 없는 주문은 업무적으로 의미가 없고, 마찬가지로 주문이 없는 주문 아이템도 의미가 없다.

3)    One to many relationship(One Optional)

n  현실세계에서 가장 흔한 형태이다




n  부서와 사원 간의 관계에서 모든 사원은 반드시 하나의 부서에 소속되어야 한다. 하지만 사원이 하나도 없는(신생) 부서도 존재할 수 있다.

4)    One to many relationship(Many Optional)

n  one to many 관계에서 현실적으로 드문 형태

n  선 납품 후 대금 청구하는 계약 조건에서 아직 대금이 청구되지 않은 납품 건은 청구번호가 정해지지 않은 경우이다.



5)    One to many relationship(Both Side Optional)

n  이 또한 현실 세계에서 흔한 형태 중의 하나

n  관계의 선택성(Optional)이 증가할수록 모델의 모호성도 증가하므로 될 수 있으면 선택성을 해소해야 한다.

 

다.  M:M 관계(Relationship)

1)    특징

n  M:M관계는 관계를 가진 양쪽 당사자 모두에서 1:M 관곅 존재할 때 나타나는 모습이다.

n  M:M관계의 선택 사양은 양쪽 모두가 선택적(바커표기법에서는 점선으로, IE표기법에서는 실선의 M:M형태)인 것이 기본형이다.



n  M:M관계는 의외로 아주 빈번하게 발생되는 관계이다. 그러나 데이터 모델링이 완료된 후에 M:M은 존재하지 않는다. 이 말은 M:M관계가 아직 덜 풀려진 형태라는 것을 의미한다.

n  M:M관계는 관계가 해소되면서 새로운 엔티티(Relation Entity/Intersection Entity)를 생성시킨다.








 

라.  다중 관계 처리

1)    특징

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

통합, 분할과 비슷하게 보일 수도 있지만 엄연히 다른 개념이다.



2)    병렬식 관계

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

                     



3)    병렬식 관계 특징

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

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

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

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

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



4)    직렬식 관계

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





5)    직렬식 관계의 특징

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

나.   관계들이 로우(Rows)형태로 나타난다.

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

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

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

 

마.  특수한 형태 관계

1)     순환 관계(Recursive Relationship)

하나의 엔티티가 다른 엔티티가 아닌 자기 자신과 관계를 맺는 관계를 순환 관계(Recursive Relationship)라고 한다. 이와 같은 순환 관계를 표현한 모델을 순환 구조 모델 또는 순환 모델이라고 한다.



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

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

n  순환 모델은 필수(직선)관계로 취급될 수 없고(무한 LOOP 발생), 반드시 선택 사양 관계이다.

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

2)     BOM(Bill of Materials) 관계

BOM 관계의 모델을 네트워크 구조(전철 노선이나 하이퍼링크를 갖는 웹 도큐먼트 같은)라 한다. 이러한 네트워크 구조를 제조업에서 부품의 소요량 파악 등의 모델에 유용하게 이용하게 되면서 M:M 순환 구조는 BOM(Bill of Material) 모델이라 알려지게 되었다.



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

3)     Arc(Mutually Exclusive) 관계

어떤 엔티티 두 개 이상의 다른 엔티티의 합집합과 관계를 가지는 것을 배타적(Exclusive) 관계 혹은 아크(Arc) 관계라 한다. 이러한 아크 관계는 동일한 의미의 관계가 서로 다른 하나 이상의 엔티티와 배타적으로 관계를 갖고 있을 때 이를 하나로 통합함으로써 발생하게 된다.

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

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

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

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




반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함