본문 바로가기
Learning/DB SQL 가이드

DB 모델링 - 4 데이터 통합 : 4,3 엔터티 통합 대상

by Pronician 2015. 11. 20.
반응형

4.3 엔터티 통합 대상

 

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

 

 

   ▶ 슈퍼/서브타입 엔터티로 통합

      ■ 주식계좌 엔터티, 선물옵션계좌 엔터티, 수익증권계좌 엔터티를 계좌 슈퍼타입 엔터티, 주식/선물옵션/수익증권 서브타입 엔터티로 통합한다.

      ■ 계좌 슈퍼타입 엔터티에는 공통속성을 정의한다.

      ■ 서브타입을 구분하는 계좌구분 속성을 정의한다.

      ■ 각 엔터티에만 존재하는 개별속성은 서브타입 엔터티에 속성으로 정의한다.

 

 

 

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

 

 

   1) 병렬식

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

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

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

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

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

 

 

 

  2) 직렬식

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

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

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

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

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

 

   3) 직렬식 관계 통합

   ▶ 계좌 엔터티와 사원 엔터티 사이에 존재하는 권유사원, 관리사원, 상담사원, 실적사원의 관계를 계좌관계사원 관계명으로 통합한다.

   ▶ 계좌 엔터티와 사원엔터티간에 계좌관계사원 관계명으로 M:M 관계가 발생한다.

   ▶ 계좌관계사원 엔터티를 추가하여 M;M 관계를 해소한다.

   ▶ 계좌관계사원 엔터티를 슈퍼/서브타입으로 통합할지를 고려한다.

 

 

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

 

 

 

   ▶ 주식별자를 통합한 엔터티

      ■ 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 고객계좌통합번호로 식별자를 통합한다.

      ■ 고객알림서비스와 계좌알림서비스를 구별하기 위한 고격계좌구분 속성을 추가한다.

   ▶ 인조식별자를 사용한 엔터티 통합

      ■ 알림서비스번호라는 인조식별자를 생성한다.

      ■ 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 통합하여 고객계좌통합번호를 생성한다.

      ■ 고객알림서비스와 계좌알림서비스를 구별하기 위한 고객계좌구분 속성을 추가한다.

   ▶ 수퍼/서브타입 엔터티를 사용한 엔터티 통합

      ■ 알림서비스번호라는 인조식별자를 생성한다.

      ■ 고객알림서비스 엔터티의 고객번호 식별자와 계좌알림서비스 엔터티의 계좌번호 식별자를 통합한 알림서비스통합번호를 생성한다.

      ■ 고객알림서비스와 계좌알림서비스를 구별하기 위한 알림서비스 구분 속성을 추가한다.

 

 

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

 

 

   ▶ 대표속성을 이용한 고객 연락처 엔터티 통합

      ■ 고객 연락처 엔터티로 공통속성을 정의한다.

      ■ 연락처유형코드 속성을 정의한다.(집주소, 회사주소, 이메일, 홈페이지, 메신저 등)

      ■ 개별속성 중 통합이 어려운 속성(우편번호 속성)을 정의한다.

      ■ 우편주소, 전자주소, 전화번호를 대표속성인 연락처내용 속성으로 정의한다.

      ■ 연락처내용 속성은 항상 데이터 값이 존재하므로 NOT NULL 제약조건을 정의한다.

   ▶ 고객 연락처 엔터티 통합

      ■ 연락처유형코드 속성을 정의한다.

      ■ 각 엔터티에 존재하는 속성을 고객 연락처 엔터티의 개별 속성으로 정의한다.

      ■ 개별 속성들은 데이터가 존재하지 않을 수 있으므로 NULL 허용한다.

 

 

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

   ▶ 매출전표번호와 매입전표번호가 중복되지 않는다.

   ▶ 중복될 수 있다면 통합된 전표 엔터티의 주 식별자에 전표구분 속성을 추가한다.

 

 

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

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

 

 

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

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

 

 

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

 

 

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

   ▶ 배타관계가 발생하면 조인하기 불편하고, 요건에 따라서 성능에 치명적인 영향을 미친다.

   ▶ 배타관계를 없애기 위해서는 배타 관계를 발생시킨 엔터티를 통합하면 된다.

 

 

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

   ▶ 일대일 관계의 엔터티는 개념 모델링이나 논리 모델링 단계에서 정확히 도출

   ▶ 관계의 정확한 도출 후 분해, 통합을 고려해야 한다.

 

 

   ▶ 순환관계를 이용한 엔터티 통합

      ■ 입고 엔터티의 식별자 입고번호, 출고 엔터티의 식별자 출고번호를 입출고번호 식별자로 정의한다.

      ■ 입고, 출고 엔터티의 개별속성 정의를 입고/출고를 표현하는 통합 명칭으로 정의한다.

      ■ 순환관계를 정의하여 입고, 출고 관계를 정의한다.

      ■ 업무정의) 비즈니스 규칙은 입고 엔터티와 출고 엔터티간 1:1 관계인데 순환관계 표현 시 1:M 관계로 표현됨

   ▶ 개별 속성을 이용한 엔터티 통합

      ■ 입출고 엔터티의 식별자 입고번호를 정의한다.

      ■ 입고 엔터티의 개별 속성을 정의한다.

      ■ 출고 엔터티의 개별 속성을 정의한다.

      ■ 업무정의) 입고에 대한 출고 여부를 출고 속성들의 값 존재로 판단

 

 

 [관련 keyword]

   ▶ 데이터 통합의 장단점에 대해 이해하고 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글