정보 처리/데이터 모델링

엔티티타입의 개념과 설계 방법

본클라쓰 2012. 6. 12. 17:14

 

엔티티타입의 개념

 

엔티티타입은 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위"입니다. 또한, 엔티티타입은 엔티티의 집합이라 할 수 있고, 반대로 엔티티라는 것은 엔티티타입에 속한 인스턴스 하나에 해당됩니다.

 

엔티티타입은 개체 또는 데이터베이스의 테이블입니다. 사람, 장소, 물건, 사건 그리고 개념을 정의할 수 있는 것으로, 정보 시스템을 구현할 때 데이터베이스 테이블에 해당됩니다.

 

엔티티타입은 다음과 같은 특징이 있으면 만약 다음의 성질을 만족하지 못하면 부적절한 엔티티타입일 확률의 높습니다.

 

  1) 반드시 시스템을 구축하고자 하는 업무에서 필요하고 관리하고자 하는 정보여야 한다.

  2) 유일한 식별자에 의해 식별이 가능해야 한다.

  3) 영속적으로 존재하는 엔티티의 집합이 되어야 한다.

  4) 업무 프로세스는 그 엔티티타입을 반드시 이용해야 한다.

  5) 엔티티타입에는 반드시 속성이 포함되어야 한다.

  6) 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야 한다.

 

 

 

엔티티타입의 분류

 

엔티티타입은 그 자체의 성격에 따라 분류하거나 업무를 구성하는 모습에 따라 구분합니다. 이 때 전자를 유무형에 따른 분류라 하고, 후자를 발생 시점에 따른 분류라 합니다.

 

 

유무형에 따른 분류

 

 · 유형 엔티티 - 물리적 형태가 있고, 안정적이며 지속적으로 활용되는 엔티티( ex) 고객, 사원 등)

 · 개념 엔티티 - 물리적 형태가 없고, 관리해야 할 개념적 정보로 구분되는 엔티티 ( ex) 조직, 상품, 장소 등)

 · 시간 엔티티 - 업무를 수행함에 따라 발생되는 엔티티타입으로 각종 통계자료에 이용되는 엔티티( ex) 주문, 청구 등)

 

 

발생시점에 따른 분류

 

 · 기본 엔티티 - 업무에 원래 존재하는 정보로서 독립적으로 생성되며 자신은 타 엔티티의 부모 역할을 수행( ex) 사원, 부서 등)

 · 중심 엔티티 - 기본 엔티티타입에서 발생되고 그 업무에서 중심적을 역할을 수행( ex) 접수, 계약 등)

 · 행위 엔티티 - 두 개 이상의 부모 엔티티타입에서 발생되고 내용이 자주 바뀌거나 데이터양이 증가한다. ( ex) 주문내역, 계약진행)

 

 

 

엔티티타입의 명명

 

엔티티타입을 명명하는 일반적인 기준은 다음과 같습니다.

 

 · 가능하면 현업에서 사용하는 용어를 사용한다.

 · 가능하면 약어를 사용하지 않느다.

 · 단수 명사를 사용한다.

 · 엔티티타입에 부여되는 이름은 유일해야 한다.

 · 가급적 엔티티타입이 생상되는 의미에 따라 이름을 부여한다.

 

 

 

 

엔티티타입 설계하기

 

데이터 모델링은 엔티티타입을 정의하는 것으로 시작합니다. 분석 초기에 엔티티타입을 선정하기 위해 다음과 같은 자료나 방법을 활용하는 것이 좋습니다.

 

  1) 업무와 관련해서 설명한 업무 기술서를 이용한다.

  2) 현업 담당자와 인터뷰를 활용한다.

  3) 현업의 장표를 활용한다.

  4) 기존 시스템이 이미 구축되어 있다면 기존 시스템의 산출물을 검토한다.

  5) DFD를 통해 업무 분석을 진행하였다면 DFD를 활용한다.

  6) 현업의 업무를 직접 견학하고 인터뷰와 업무 기술에서 누락된 정보가 있는지 검토한다. 

  7) 현재 업무에 나타나지 않았지만 BPR에 의해 업무를 재정의한 경우 관련 엔티티타입을 찾아야 한다.

 

이와 같은 방법과 함께 프로세스 모델링을 함께 진행하여 기능에 맞는 엔티티타입을 설계해야 합니다.

 

 

엔티티타입을 선정하는 작업은 개념적이고 구체적으로 드러나지 않는 작업이기 때문에 자신이 도출한 엔티티타입에 대해 확신하지 못하는 경우가 많습니다. 물론 업무 분석에 익숙하고 데이터 모델링을 많이 진행하여 어느 정도의 전문성을 가진 모델러는 해당되지 않지만 아직 모델링 작업이 미숙한 사람이 어느 정도 합리적으로 데이터 모델링을 진행하고자 한다면 다음과 같은 과정을 따르는 것이 엔티티타입을 도출하는 데 도움이 됩니다.

 

  1) 업무 기술서, 장표, 인터뷰 정리 문서 등에서 명사를 구분한다.

  2) 개념이 불분명한 것, 광범위한 것은 제거한다.

  3) 엔티티타입의 특성이거나 속성값은 제거한다.

  4) 포괄적인 업무 프로세스에 해당되는 명사는 제거한다.

  5) 중복되는 명사는 제거한다.

  6) 누락된 엔티티타입이 존재하는지 유추해 본다.

 

위 방식으로 정의된 엔티티 정의서를 작성합니다.

 

엔티티타입명 엔티티타입 설명 동의어/유의어 엔티티 구분 관련 속성 비고
고객 회사와 한번 이상 거래한 고객의 정보로서 기본 정보, 배송정보뿐만 아니라 고객의 성향을 알 수 있는 정보 기본 이름,주소, 전화번호
상품 회사 내에서 생산되는 제품의 정보 제품목록 기본 재고량, 품명, 제조년월, 가격
주문 고객이 신청한 신청서의 내용에 관련된 정보로서 주문일자, 주문목록, 주문자, 배송지 주소 등이 포함됨 중심 주문목록, 주문자, 배송지 주소

 

 

자료출처) 데이터베이스 설계와 구축, 한빛미디어, 이춘시 저

 

'정보 처리 > 데이터 모델링' 카테고리의 다른 글

관계의 개념과 관계 정의하기  (0) 2012.06.12
속성 정의 하기  (0) 2012.06.12
업무 분석하기 (프로세스 모델링)  (0) 2012.06.12
데이터 모델링 개요  (0) 2012.06.12
데이터베이스의 설계  (0) 2012.06.11