제6절 개념 데이터 모델 작성
1. 개념 데이터 모델의 구성 요소
개념 데이터 모델은 핵심 엔터티(키엔터티, 메인엔터티)와 핵심 엔터티 사이의 관계 도출을 통해 핵심 구조라 할 수 있는 데이터 모델의 골격을 정의한 것이다. 이것은 데이터 아키텍처 상에서 개괄 데이터 모델로부터 업무 요건을 충족하기 위해서 데이터 주제영역별로 상세화하여 핵심 엔터티들을 도출하고 관계를 정의함으로써 생성되기도 하고, 수집된 엔터티 후보들을 검토하고 분류하여 핵심 엔터티들을 도출하고 이들 간의 관계를 정의함으로써 생성되기도 한다. 주제영역별로 작성된 개념 데이터 모델을 전사 영역으로 확장하여 하나의 개념 데이터 모델로 작성한 것을 전사 개념 데이터 모델(Enterprise Conceptual Data Model) 또는 확장 개념 데이터 모델(Extended Conceptual Data Model)로 부르기도 한다. 전사 개념 데이터 모델에서는 전사 관점의 핵심 엔터티와 관계를 통해 전사적인 핵심 데이터 구조를 정의한다.

- [그림 4-2-41] 바커 표기법에 따른 개념 데이터 모델 작성 사례

- [그림 4-2-42] IE 표기법에 따른 개념 데이터 모델 작성 사례
개념 데이터 모델은 시스템에 대한 사용자의 요구사항을 정형화된 모델로 표현함으로써 사용자가 요구하는 데이터의 범위 및 구조를 용이하게 확인할 수 있고, 사용자의 요구 사항을 사용자와 함께 검토하여 신규 시스템에 해당 요구사항을 반영할지 여부를 결정하여 개발범위를 정하는데도 도움을 준다. 또한 개괄 데이터 모델 및 전사 개념 데이터 모델과의 불일치가 발생하지 않도록 데이터의 골격을 유지하고 향후의 논리 및 물리 데이터 모델과의 구조적 정렬(얼라인먼트)을 지원한다.
개념 데이터 모델은 주요 핵심 엔터티와 이들 간의 관계 정의 위주로 구성하여 데이터의 전체적인 골격을 파악하는 것이 목적이기 때문에, 작성된 개념 데이터 모델 상에서는 속성 표현이 불필요할 수있다. 그러나 개념 데이터 모델을 구성하는 핵심 엔터티들이 데이터의 발생 기원 측면에서 상위 수준에 해당하기 때문에, 전체 데이터 구성에 대한 이해를 돕기 위해 향후에 이들이 세분화되거나 자식으로 탄생될 수 있는 하위 엔터티나 부가적인 엔터티들을 속성이나 서브타입 형태로 표현하는 경우도 있다. 드물지만 때로는 엔터티를 이해하는데 도움을 주거나 해당 엔터티의 속성으로 명백한 일부 핵심 속성이 함께 도출되기도 한다. [그림 4-2-41]과 [그림 4-2-42]는 각각 바커 표기법과 IE 표기법에 따라 작성한 개념 데이터 모델의 사례이다.
가. 개념 데이터 모델 미작성시 영향
-
개괄 데이터 모델 및 전사 개념 데이터 모델과의 불일치 사항이 발생할 수 있다.
-
논리 및 물리 데이터 모델 작성 시 사용자 요구사항 반영이 누락되거나 잘 못 반영될 수 있다.
-
주제영역 간 혹은 업무 간 데이터 연관에 있어 범위가 불명확해져 오류가 발생할 수 있다.
나. 개념 데이터 모델의 작성이 불필요한 경우
개념 데이터 모델은 반드시 작성하는 것을 원칙으로 하는 것이 바람직하지만, 시스템의 특성이 대체적으로 연산처리 중심이거나 업무에 연관된 데이터를 저장하지 않는 경우는 생략할 수 있다.
2. 개념 데이터 모델의 작성 방법
가. 개괄 데이터 모델로부터 상세화하는 경우
-
개괄 데이터 모델 또는 전사 개념 데이터 모델로부터 개념 데이터 모델을 작성할 단위 주제영역을 결정한다.
-
도출된 핵심 엔터티를 주제영역과 매핑한다.
-
주제영역별로 해당 엔터티들 간의 관계를 정의하여 개념 데이터 모델을 작성한다.
-
개념 데이터 모델을 상위 수준의 어플리케이션 모델이나 프로세스 모델과 비교하여 검증한다.
나. 수집된 엔터티 후보로부터 작성하는 경우
-
수집된 엔터티 후보들을 검토하고 분류하여 핵심 엔터티를 도출한다.
-
수집된 엔터티 후보들과 핵심 엔터티들을 분류하여 데이터 주제영역을 정의한다.
-
데이터 주제영역별로 해당하는 핵심 엔티티들을 배치하고 이들 간의 관계를 정의하여 개념 데 이터 모델을 작성한다.
-
개념 데이터 모델을 상위 수준의 어플리케이션 모델이나 프로세스 모델과 비교하여 검증한다.
다. 현행 데이터 리버스를 통해 작성하는 경우
-
현행 물리 데이터 모델을 생성하고 상세화 및 논리화를 거쳐 현행 논리 데이터 모델을 작성한 다.
-
현행 논리 데이터 모델의 엔터티들을 분류하여 핵심 엔터티를 도출하고 현행 데이터 주제영역 에 매핑한다.
-
현행 논리 데이터 모델로부터 현행 핵심 엔터티 간의 관계를 정의하여 현행 개념 데이터 모델을 작성한다.
-
사용자 요구사항이나 현행 시스템 분석 결과 또는 선진 사례 등을 검토하여 개선 사항을 반영함 으로써 현행 개념 데이터 모델로부터 목표 개념 데이터 모델을 생성한다.
-
목표 개념 데이터 모델을 상위 수준의 어플리케이션 모델이나 프로세스 모델과 비교하여 검증 한다.
장 요약
- 제1절 개념 데이터 모델링 이해
- 개념 데이터 모델링은 대상을 주요 엔터티로 한정한다는 것일 뿐 논리 데이터 모델링의 일부분에 포함된다.
- 개념 데이터 모델링은 최종적인 논리 데이터 모델이 완성되는 과정에서 존재하는 데이터 모델링이다. O
- 제2절 주제 영역 정의
- 주제 영역은 기업이 사용하는 데이터의 최상위 집합이다. 이것은 데이터의 전체 구조를 단게적으로 파악하는 데 많은 도움을 준다.
- 주제 영역명은 가능하다면 업무 용어를 사용하고 데이터 그룹을 의미하는 용어를 사용하는 것이 좋다.
- 제3절 후보 엔터티 선정
- 데이터 모델링에서 엔터티를 직관적으로 정의하는 것은 거의 불가능하다.
- 업무에서 사용되는 많은 소스(Source)로부터 엔터티 후보를 도출하고 이들은 하나씩 확인해 나아가는 것이 중요하다.
- 후보를 선정하는 과정에서 엔터티를 정의하려고 하면 수평적 사고가 무너지기 쉽다. 후보를 선정할 때는 엔터티 후보가 집합인지 정도만 파악한다.
- 제4절 핵심 엔터티 정의
- 핵심 엔터티 정의는 엔터티 후보를 도출한 대상들이 엔터티 요건에 맞는지를 확인하고 정의해 나아가는 과정이다.
- 엔터티로 확정되면 식별자가 정의되어야 한다. 즉, 엔터티에 인스턴스(Instance)가 생기는 단위를 결정하는 것이 필요하다.
- 핵심 엔터티 정의 단계에서 식별자는 향후 식별자 확정 과정에서 결정될 실질 식별자와는 구별되어져야 한다.
- 제5절 관계 정의
- 관계(Relationship)는 엔터티와 엔터티 사이의 관계(업무적 연관성)를 말한다.
- 엔터티 사이에는 하나 이상의 관계가 존재할 수 있다.
- 관계는 서로 다른 두 엔터티 간에 존재하거나 자신과 자신 사이에 존재할 수도 있다.
- 관계는 두 개의 관점을 가지고 있는데, 개념 데이터 모델링 단계에서는 핵심 엔터티를 위주로 정의하기 때문에 M:M 관계가 많이 생성된다. 하지만 논리 데이터 모델이 완성되는 시점에서는 모든 M:M 관계는 해소된다.
- 제6절 개념 데이터 모델 작성
- 개념 데이터 모델은 개괄 데이터 모델을 상세화하거나, 수집된 엔터티 후보들을 검토·분류하여 핵심 엔터티들을 도출하고 이들 간의 관계를 정의함으로써 생성된다.
- 개념 데이터 모델은 데이터의 전체적인 골격을 파악하는 것이 목적이기 때문에 주요 핵심 엔터티와 이들 간의 관계 정의 위주로 구성하는 것이 일반적이나, 간혹 이들이 세분화되거나 자식으로 탄생될 수 있는 하위 엔터티나 부가적인 엔터티들을 속성이나 서브타입 형태로 표현하기도 한다. 요.
연습문제
문제 1. 다음 중 주제영역 후보 도출의 방법으로 부적절한 것을 모두 고르시오.
- ① 업무에서 사용하는 데이터의 명사형을 도출
- ② 업무기능의 이름으로부터 도출
- ③ 중요보고서 제목을 참조하여 도출
- ④ 시스템 관리자 의견을 참조하여 도출
중요 보고서 제목은 향후 정의될 엔터티의 후보가 될 수 있다. 또한 시스템 관리자 보다는 업무 관리자의 의견을 참조하여 주제영역을 생성한다.
문제 2. 모델러가 개념 데이터 모델링 단계에서 엔터티 후보를 도출하고 엔터티 후보들에 대한 자격검증을 위한 엔터티 식별 단계를 수행하고 있다. 다음 중 모델러가 이 단계에서 수행해야 하는 행동으로 가장 부적절한 것은?
- ① ‘고객’ 엔터티에서 관리해야 할 구체적인 ‘생년월일 속성에 대해서 업무 담당자들과 협의한다.
- ② 후보 엔터티가 정확히 어떤 개념인지를 파악하기 위해서 동종의 비즈니스 관련 서적에서 관련개념을 파악한다.
- ③ 인터넷을 통하여 해당 후보 엔터티의 용어적인 의미를 파악하기 위해서 자료를 검색한다.
- ④ 특정 업종에서만 사용하는 용어라서 모델러가 판단하기 힘들면 주변에 존재하는 비유를 들어서 업무 담당자와 개념에 대한 동질성을 파악한다.
엔터티 후보 식별 단계에서는 해당 엔터티의 개념을 파악하거나 엔터티를 명확히 구분 짓기 위한속성들에 대해서 업무담당자와 상의할 수 있다. 그러나 일반속성(여기에서는 ‘생년월일’)을 이 단계에서 언급하는 것은 부적절하다.
문제 3. 다음 중 개념 데이터 모델링 단계에서 코드성 엔터티의 처리에 대해 가장 적절한 것은?
- ① 코드성 엔터티는 키 엔터티로 볼 수 있다.
- ② 코드 속성을 코드성 엔터티로 도출해 놓으면 데이터 모델이 복잡성의 함정에 빠질 수 있으므로 엔터티로 도출하지 않는 것이 좋다.
- ③ 코드 속성이 의미상의 주어가 된다면 반드시 코드성 엔터티로 정의해 주어야 한다.
- ④ 코드성 엔터티의 도출은 부모-자식 관계 표현을 통해 개념 데이터 모델을 보다 상세하게 정의 할 수 있기 때문에 꼭 필요한 과정이다.
대부분의 코드성 엔터티는 개념 데이터 모데링 단계에서 굳이 엔터티로 도출하지 않아도 무관하다. 하지만 그렇지 않은 경우도 발생한다. 즉, 코드성 엔터티가 여러 하위 엔터티를 가지는 경우가대표적인 경우이다. 본질 식별자라고해서 무조건 엔터티로 도출하기 보다는 많은 다양한 관계를 가질 때 엔터티로 도출하는 것이 바람직하다. 코드성 엔터티의 도출은 개념 데이터 모델에서 꼭 필요한 과정이라고 볼 수 없다.
문제 4. 개념 데이터 모델에서는 핵심 데이터 집합을 도출하고 그 엔터티들간의 관계를 규명하는 작업을 수행하게 된다. 이러한 과정의 첫번째 단계로 엔터티 후보 설정 단계를 수행하게 된다. 다음 중 엔터티 후보 선정을 수행할 때 유의사항으로 가장 적절한 것은?
- ① 엔터티 가능성이 있다고 예상되면 예외사항 검토 등을 통해 상세분석을 한다.
- ② 동의어처럼 보이더라도 함부로 버리지 않는다.
- ③ 개념이 모호한 대상은 일단 넘어간다.
- ④ 예외처리는 중요하므로 잘 분석하고 정리해 놓는다.
개념 데이터 모델링에서는 엔터티의 상세 분석을 수행하는 것은 아니다. 또한 개념 데이터 모델단계에서, 개념에 대해서는 확실하게 정립하여야 한다.
문제 5. 다음 중 관계(Relationship)에 대한 설명으로 부적합한 것을 모두 고르시오.
- ① 관계도 집합이다.
- ② 집합 간에 존재하는 무수히 많은 관계 중에 직접종속인 것만을 관계로 모델링 한다.
- ③ 다대다(M:M) 관계는 복합성을 증가시키므로, 발견 즉시 두 개의 일대다(1:M) 관계를 갖는 관계 엔터티(Relation Entity)로 분해한다.
- ④ 두 엔터티 간에 하나 이상의 관계를 정의하는 것은 바람직하지 않다.
직접 종속, 간접 종속 등의 관계 속성들을 모델링 한다. 두 엔터티 간에는 하나 이상의 관계가 얼마든지 존재할 수 있다.
문제 6. 개념 데이터 모델의 중요성을 설명하는 말로 가장 부적절한 것은?
- ① 향후에 정의될 논리 및 물리 데이터 모델에 대한 골격을 제공한다.
- ② 사용자가 요구하는 데이터의 범위 및 구조 확인을 돕고, 개발 범위 결정을 지원한다.
- ③ 데이터 아키텍처 상에서 데이터에 대한 최상위 수준의 관점을 정의한다.
- ④ 선진 사례 적용을 용이하게 한다.
데이터 아키텍처 상에서 데이터에 대한 최상위 수준의 관점을 정의한 것은 개괄 데이터 모델이다.
문제 7. 다음 중 직렬식 관계의 특징으로 볼 수 없는 것은?
- ① 관계들을 관리하는 새로운 엔터티가 추가되어야 한다.
- ② 인덱스 수가 감소하고 SQL이 단순해진다.
- ③ 관계 내용별로 자식 엔터티를 가질 수 있다.
- ④ 테이블이 될 때 여러 개의 칼럼으로 나열된다.
④ 는 병렬식 관계의 특징이다.
문제 8. 다음 중 논리 데이터 모델링을 수행하는 과정에서 M:M 관계가 나타났을 때 발견 즉시 두 개의 일대다(1:M) 관계를 갖는 관계 엔터티로 분해하고 진행해야 하는 경우에 해당하는 것은?
- ① 관계가 자식을 가져야 할 때
- ② 관계가 명확해질 때
- ③ M:M 관계에 있는 두 엔터티가 각각 자식을 가질 때
- ④ 관계가 명확하지 않을 때
M:M 관계가 나타날 때 관계가 자식을 가져야 하거나, 관계가 추가적인 속성을 가져야 하는 경우는 M:M 관계를 관계 엔터티로 풀어주고 모델링을 계속 진행해야 한다.
문제 9. 다음 중 키 엔터티로 볼 수 없는 것은?
- ① 고객
- ② 계좌
- ③ 상품
- ④ 직종
계좌는 고객이 금융상품에 가입함으로써 생성되는 메인 엔터티이다.
문제 10. 다음 중 엔터티 정의 요건으로 가장 부적절한 것은?
- ① 관리하고자 하는 것인지 확인한다.
- ② 가로와 세로를 가진 면적(집합)인지 확인한다.
- ③ 대상 개체 간의 독립성이 있는지 확인한다.
- ④ 순수한 개체이거나 개체가 행위를 하는 행위 집한인지를 확인한다.
엔터티 정의 요건에서 대상 개체 간에는 동질성이 있는지 확인해야 하고, 다른 개체와의 구분에서 독립성이 있는지 확인한다.