1 데이터 모델링의 이해-  4절 관계


1. 관계의 개념.

가. 관계의 정의

- 엔터티의 인스턴사 사이의 논리적인 연관성으로 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태.


나. 관계의 패어링

- 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것

- 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링 이라고 한다.

- 엔터티는 인스턴스의 집합을 논리적으로 표현했다고 한다면, 관계는 관계 패어링의 집합을 논리적으로 표현한 것.

- 관계의 표현에는 이항관계, 삼항관계, n항 관계가 존재할 수 있는데 실제에 있어서 삼항 관계 이상은 잘 나타나지 않는다.


[IE 표기법]


 

[Barker 표기법]


 


2. 관계의 분류

- 존재에 의한 관계

* 사원은 부서에 항상 속해있다.





- 행위에 의한 관계

* 주문은 고객이 주문할 때 발생된다.



@@

 UML에는 클래스 다이어그램의 관계 중 연관관계와 의존관계가 있다.

- 연관관계: 항상 이용하는 관계로 존재적 관계에 해당함. (실선으로 표현됨)

- 의존관계: 상대방 클래스의 행위에 의해 관계가 형성될 때 해당됨.(점선으로 표현됨)


3. 관계의 표기법

- 관계명 : 관계의 이름

- 관계차수 1:1, 1:M, M:N

- 관계선택사양 : 필수관계, 선택관계


가. 관계명 : 엔터티가 관계에 참여하는 형태를 지칭한다.

- 관계가 시작되는 편을 관계시작점 이라고 부르고, 받는 편을 관계끝점 이라고 부른다.

- 관계시작점과 끝점 모두 관계이름을 가져야 하며, 참여자의 관점에 따라 관계이름이 능동적이거나 수동적으로 명명된다.


IE 표기법


 


Barker 표기법



* 관계명명 규칙

- 애매한 동사를 피한다. 

- 현재형으로 표현한다.


나. 관계차수

- 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것을 관계차수 라고한다.

- 가장 중요하게 고려할 사항은 한 개의 관계가 존재하느냐 아니면 두 개 이상의 멤버십이 존재하는지를 파악하는 것이 중요하다,


1) 1:1 관계

- 관계에 참여하는 각각 엔터티는 관계를 맺는 다른 엔터티의 엔터티에 대해 단지 하나의 관계만 가지고 있다.


 


2) 1:M 관계를 표시하는 방법

- 관계에 참여하는 각각의 엔터티는 관계를 맺는 다른엔터티의 엔터티에 대해 하나나 그 이상 수와 관계를 가지고 있다.

* 한명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.




 

3) M : M 관계를 표시하는 방법.







 

다. 관계선택사양

- 필수참여관계: 물리속성에서 Foreign Key로 연결될 경우 Null을 허용할 수 있는 항목.

- 선택참여관계: 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계이다.

* 선택참여로 지정해야 할 관계를 필수참여로 잘못 지정하면 어플리케이션에서 데이터가 발생할 때 반드시 한 개의 트랜잭션으로 제어해야하는 제약사항이 발생하므로, 설계단계에서 필수참여와 선택참여는 개발시점에 업무로직과 직접적으로 관련된 부분이므로 바드시 고려되어야한다.

* 선택참여하는 엔터티쪽에 원으로 표시한다.


 


4. 관계의 정의 및 읽는 방법

가. 관계체크 사항

- 두 개의 엔터티 사이에 관심있는 연관규칙이이 존재하는가?

- 두 개의 엔터티 사이에 정보의 조합이 발생되는가?

- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?

- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?


나. 관계읽기

먼저 관계에 첨야하는 엔터티 기준으로 하나 또는 각으로 읽고 대상 엔터티의 개수를 읽고 관계 선택사항과 관계명을 읽도록한다.


 

- 각각의 사원은 한 부서에 항상 속한다.

- 각 부서에는 여러 사원이 때때로 소속된다.