자격증/DASP

[DAsP] 4-2-5절 관계 정의

동호다찌 2022. 5. 30. 18:13
반응형

과목 4. 데이터 모델링

제2장 개념 데이터 모델링


1. 관계(Relationship)란 ?

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


2. 관계 이해

가. 관계도 집합이다

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

마치 교통량이 너무 많거나 좀더 나은 이동을 위해 특수 목적을 가진 더 세분화된 교량을 추가할 수도 있고, 작은 교량을 없애고 커다란 교량으로 통합할 수도 있듯이 관계 또한 크게 묶을 수도 있고, 구체적으로 분할시킬 수도 있다.


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

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


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

보험계약과 고객과의 관계는 1:M이지만 피보험자 관계는 M:M이 될 수 있다. 물론 명의 변경을 할 수도 있고 그 이력까지 관리하겠다고 한다면, 계약자 관계도 다시 M:M이 된다.

보험 종류에 따라 하나의 보험계약에 여러 명의 고객이 피보험자가 될 수 있으며, 고객 또한 하나 이상의 보험계약에 피보험자가 될 수 있으므로 이 관계는 당연히 M:M 관계를 가진다.


라. 외래키로 정의

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


마. 관계의 관점

  • 항상 두 엔터티 간에 존재한다.
  • 항상 두개의 관점을 가지고 있다.
  • 데이터의 양방향 업무 규칙(Business Rule)을 표현
  • 관계를 통하여 정보로서의 활용가치 상승
  • 외래키로 구현되어 참조무결성으로 데이터의 정합성 유지
  • 참조무결성

3. 관계표현

가. 관계 형태(Degree/Cardinality)

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

  • 단 하나(ONLY ONE) : 평선은 단 하나임을 의미한다. 여기서 수평선이란 직선이 될 수도 있고 점선으로 표현될 수도 있으며 이것은 다음에 설명할 선택 사양에 따라 결정된다.

나. 선택 사양(Optionality)

직선은 반드시 존재해야 함을 의미하고, 점선은 존재하지 않을 수도 있음을 의미한다.

  • 일반적인 형태 : 주로 참조하는 엔터티(M쪽)는 참조되는 엔터티(1쪽)가 반드시 존재해야 하는 경우가 많이 나타난다.
  • 바람직한 형태 : M쪽 관계의 선택사양을 직선관계로 만들려고 노력해야 한다.

다. 관계명

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

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

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

  • 두 엔티티 타입 간의 업무적 연관성을 나타내는 이름 부여
  • 현재 시제를 사용
  • 다른 관계명과의 유일성은 확보되지 못함
  • 능동/수동형의 사용은 가급적 배제


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

  • 예: ∼(관계가)있다, ∼(관련이)있다, ∼이다, ∼한다 등

4. 관계 정의 방법

먼저 한쪽 엔터티를 기준으로 상대 엔터티와의 관계를 규명하고 다시 반대 방향으로 관계를 규명 한다. 관계를 규명할 때 가장 먼저 해야 할 일은다.

가. 관계 구문 이해

관계를 규명할 때 사용하는 관계 구문(Relationship Syntax)은 다음과 같은 전형적인 형태를 가진다.

  • 엔터티1 : 관계를 규명할 두 엔터티 중에서 주어가 되는 엔터티

  • 임의의 : 영어적 표현이라면‘ANY’와 같다고 보며 즉, 집합 내의 개체 중에서 아무것이나 하나(임의의 개체)를 선택하여 만족하는지 증명하는 것이다.

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

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

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

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

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


나. 관계 정의 절차

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

  • 사원 엔터티의 임의의 한 개체(사원 한 사람)가 상대인 부서 엔터티에 단 하나의 개체(부서 하나)에만 소속되는지, 아니면 하나 이상에 소속될 수 있는지 판단한다.
  • 지금까지 소속되었던 모든 부서를 찾고자 하는 것인지, 아니면 현재 소속되어 있는 부서만 찾고자 하는지를 판단한다.
  • 겸임(兼任)을 하는 사원(주로 관리자)에 대한 처리 방안을 판단한다.
  • 현재 소속을 가지지 않는 사원이 단 한 명이라도 있는지를 판단한다.
  • 사원 엔터티가 우리 회사에 적을 두고 있는 사람만이 아니라 관계사나 협력사에서 파견되어 근무하는 사람들까지 포함된 집합인지를 판단한다.


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

  • 하나 이상의 사원을 가지는 부서가 있을 수 있는지를 판단한다.
  • 부서가 사원을 반드시 가져야 하는지, 그렇게 하지 않을 수도 있는지에 대해 판단한다.
  • 최종적인 관계는 임의의 부서는 하나 이상의 사원을 현 주소속 부서로서 배치 받을 수도 있다로 결정한다.


5. 관계 형태

관계의 형태는 크게 1:1, M:1, M:M의 세 가지로 나눌 수 있다.

가. 1:1 관계(Relationship)

1:1 관계란 어느 쪽 당사자의 입장에서 상대를 보더라도 반드시 단 하나씩과 관계를 가지는 것을 말한다.

나. M:1 관계(Relationship)

M:1 관계는 가장 흔하게 나타나는 매우 일반적인 형태라 할 수 있다. 이는 마치 부모와 자식과의 관계처럼 계층적인 구조로 이해해도 좋다.

다. M:M 관계(Relationship)

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

라. 다중 관계 처리

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

마. 특수한 형태 관계

1) 순환 관계 ( RECURSIVE RELATIONSHIP )

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

2) BOM(BILL OF MATERIALS) 관계

BOM 관계의 모델을 네트워크 구조(전철 노선이나 하이퍼링크를 갖는 웹 도큐먼트 같은)라 한다.

3) ARC (MUTUALLY EXCLUSIVE) 관계

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

반응형