1. 데이터 통합 대상

1.1 데이터의 성격이 유사한 통합 대상 엔터티

슈퍼/서브타입 엔터티로 통합
  • 1. 주식계좌 엔터티, 선물옵션계좌 엔터티,수익증권계좌 엔터티를 계좌 슈퍼타입 엔터티,주식,선물옵션,수익증권 서브타입 엔터티로 통합한다.
  • 2. 계좌 슈퍼타입 엔터티에는 공통속성을 정의한다.
  • 3. 서브타입을 구분하는 계좌구분 속성을 정의한다.
  • 4. 각 엔터티에만 존재하는 개별속성은 서브타입 엔터티에 속성으로 정의한다.


슈퍼/서브타입 엔터티로 통합
  • 1. 개인고객 엔터티, 법인고객 엔터티,가망고객 엔터티를 고객 슈퍼타입 엔터티,개인,법인,가망 서브타입 엔터티로 통합한다.
  • 2. 고객 슈퍼타입 엔터티에는 공통속성을 정의한다.
  • 3. 서브타입을 구분하는 고객구분 속성을 정의한다.
  • 4. 각 엔터티에만 존재하는 개별속성은 서브타입 엔터티에 속성으로 정의한다.


1.2 역할을 관리하는 통합 대상 엔터티

1.2.1 병렬식

  • 1. 테이블이 될 때 여러 개의 칼럼으로 나열된다.
  • 2. 하나의 로우(row)에서 관리되므로 새로운 테이블을 추가할 필요가 없다.
  • 3. 인덱스 수가 증가되고 SQL이 복잡해진다.
  • 4. 새로운 관계의 추가, 관계 형태의 변경 등에 매우 취약한 형태이다.
  • 5. 관계 내용별로 상세 정보를 관리할 수 없다.


1.2.2 직렬식

  • 1. 관계들을 관리하는 새로운 엔터티가 추가되어야 한다.
  • 2. 관계들이 로우(Rows) 형태로 나타난다.
  • 3. 인덱스 수가 감소하고 SQL이 단순해진다.
  • 4. 새로운 관계의 추가, 관계 형태의 변경 등에 매우 유연한 형태이다.
  • 5. 관계 내용별로 상세 정보를 관리할 수 있다(자식 엔터티를 거느릴 수 있다).


1.2.3 직렬식 관계 통합

  • 1. 계좌 엔터티와 사원 엔터티 사이에 존재하는 권유사원,관리사원,상담사원,실적사원의 관계를 계좌관계사원 관계명으로 통합한다.
  • 2. 계좌 엔터티와 사원엔터티간에 계좌관계사원 관계명으로 M:M 관계가 발생한다.
  • 3. 계좌관계사원 엔터티를 추가하여 M:M 관계를 해소한다.
  • 4. 계좌관계사원 엔터티를 슈퍼/서브타입으로 통합할지를 고려한다.

업무정의)
  • 1. 임의의 계좌는 계좌관계사원코드별(권유사원,관리사원,상담사원,실적사원)로 오직 한명만 관리한다.
  • 2. 계좌관계사원의 식별자는 계좌번호, 관계사원구분코드로 정의


1.3 주 식별자가 다른 통합 대상 엔터티

주식별자를 통합한 엔터티
  • 1. 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 고객계좌통합번호로 식별자를 통합한다.
  • 2. 고객알림서비스와 계좌알림서비스를 구별하기 위한 고객계좌구분 속성을 추가한다.
인조식별자를 사용한 엔터티 통합
  • 1. 알림서비스번호라는 인조식별자를 생성한다.
  • 2. 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 후보식별자 속성 고객계좌통합번호를 생성한다.
  • 3. 고객알림서비스와 계좌알림서비스를 구별하기 위한 고객계좌구분 속성을 추가한다.

슈퍼/서브타입 엔터티를 사용한 엔터티 통합
  • 1. 알림서비스번호라는 인조식별자를 생성한다.
  • 2. 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 후보식별자 속성 알림서비스통합번호를 생성한다.
  • 3. 고객알림서비스와 계좌알림서비스를 구별하기 위한 알림서비스구분 속성을 추가한다.


1.4 일반화해 통합할 수 있는 대상 엔터티

대표속성을 이용한 고객 연락처 엔터티 통합
  • 1. 고객 연락처 엔터티로 공통속성을 정의한다.
  • 2. 연락처유형코드 속성을 정의한다.(집주소,회사주소,개인이메일,회사이메일,홈페이지,메신저...)
  • 3. 개별속성중 통합이 어려운 속성(우편번호 속성)을 정의한다.
  • 4. 우편주소,전자주소,전화번호를 대표속성인 연락처내용 속성을 정의한다.
  • 5. 연락처내용 속성은 항상 데이터 값이 존재하므로 NOT NULL 제약조건을 정의한다.
고객 연락처 엔터티 통합
  • 1. 연락처유형코드 속성을 정의한다.(집주소,회사주소,개인이메일,회사이메일,홈페이지,메신저...)
  • 2. 각 엔터티에 존재하는 속성을 고객 연락처 엔터티의 개별 속성으로 정의한다.
  • 3. 개별 속성들은 데이터가 존재하지 않을 수 있으므로 NULL 허용한다.

슈퍼/서브타입을 이용한 엔터티 통합

1. 저자는 서브타입의 개별속성이 매우 적고, 서브타입별로 개별 관계를 가질 가능성이 낮다고 판단하여 슈퍼/서브타입의 통합은 고려하지 않은것 같음.


1.5 대칭적인 업무로 인해 통합 대상인 엔터티

업무정의)
  • 1. 매출 전표번화와 매입전표번호가 중복되지 않는다.
  • 2. 중복될 수 있다면 통합된 전표 엔티티의 주 식별자에 전표구분 속성을 추가한다.


1.6 공통속성과 주 식별자가 같은 통합 대상 엔터티

  • 인조 식별자가 주식별자면 유사한 데이터가 아닐 수 있으므로 주의해야 한다.


1.7 기초 속성이 유사한 통합 대상 엔터티

  • 업무정의) 두 엔터티의 주 식별자인 고객번호는 서로 중복되지 않는다.


1.8 식별자와 기초 속성이 유사한 통합 대상 엔터티


1.9 속성이 유사한 통합 대상 엔터티

  • 업무정의) 서비스 전체를 조회하는 요건이 빈번하다.


1.10 계층 관계로 인한 통합 대상 엔터티


1.11 공통 속성만을 별도로 통합한 모델

  • 통합대상이 속성이 예제


1.12 내용 속성만을 통합한 엔터티

  • 통합대상이 아닌것 같음


1.13 배타 관계로 인한 통합 대상 엔터티

  • 배타관계가 발생하면 조인하기 불편하고, 요건에 따라서 성능에 치명적인 영향을 미친다.
  • 배타관계를 없애기 위해서는 배타 관계를 발생시킨 엔터티를 통합하면 된다.



1.14 집계 기간이 다른 통합 대상 엔터티


1.15 집계 속성이 다른 엔터티와 통합 엔터티


1.16 디멘전이 다른 유사한 집계 엔터티와 통합 엔터티


1.17 일대일 관계 통합 대상 엔터티

  • 일대일 관계의 엔터티는 개념 모델링이나 논리 모델링 단계에서 정확히 도출
  • 관계의 정확한 도출 후 분해, 통합을 고려해야 한다.
순환관계를 이용한 엔터티 통합
  • 1. 입고 엔터티의 식별자 입고번호, 출고 엔터티의 식별자 출고번호를 입출고번호 식별자로 정의한다.
  • 2. 입고, 출고 엔터티의 개별속성 정의를 입고/출고를 표현하는 통합 명칭으로 정의한다. (예: 입출고일자...)
  • 3. 순환관계를 정의하여 입고,출고 관계를 정의한다.
  • 업무정의) 비즈니스 규칙은 입고 엔터티와 출고 엔터티간 1:1 관계인데 순환관계 표현시 1:M 관계로 표현됨
    • 순환관계를 1:1로 표현해도 문제가 없는지??
개별 속성을 이용한 엔터티 통합
  • 1. 입출고 엔터티의 식별자 입고번호를 정의한다.
  • 2. 입고 엔터티의 개별 속성을 정의한다.
  • 3. 출고 엔터티의 개별 속성을 정의한다.
  • 업무정의) 입고에 대한 출고 여부를 출고 속성들의 값 존재로 판단