상세 컨텐츠

본문 제목

데이터베이스 모델링(3)

Database

by somiyuralove 2020. 3. 1. 16:59

본문

* 엔티티타입 정의

 

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

- 현업 담당자와의 인터뷰를 활용.

- 현업의 장표를 활용.

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

- DFD를 통해 업무 분석을 진행하였다면 DFD의 DATA STORE를 활용.

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

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

 

* 엔티티 타입 선정 방법

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

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

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

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

- 중복되는 명사는 제거한다.

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

 

* 관계정의

- 엔티티타입간의 관계정의, 관계를 정의하고자 하면 해당 엔티티 타입으로부터 타 엔티티타입간의 관계가 존재하는지 확인하는 작업을 먼저 해야 함, 다시 말해 두 개의 엔티티간에 존재의 형태나 행위로 영향을 주는 것을 관계라고 정의했던 것처럼 엔티티타입간의 관계를 기술하는 작업부터 한다는 것이다.

- 업무 기술서, 장표, 인터뷰 정리 문서 등에서 동서를 구분함.

- 도출된 엔티타 타입과 관계를 이용하여 관계 정의서를 작성

- 고객에게 질문하여 관계를 좀더 세분화하고 정확하게 도출하는 작업을 함

- 데이터 모델링 툴이나 칠판, 포스트잇을 이용하여 모델을 직접 그려봄

- 고객과 질문하고 협의하여 모델을 검토

 

**식별자 정의

- 식별자는 엔티티타입 도툴 시 개략적으로 도출된 속성 중에서 유일성과 대표성을 고려하여 결정자 속성을 선정하는 것과 관계를 이용하여 식별자를 구성하는 방법을 모두 사용할 수 있음.

- 주식별자, 외부 식별자, 보조 식별자, 대체 식별자를 많이 사용하는데, 이 중에서 주 식별자 결정이 데이터 모델에서 가장 중요함.

- 엔티티 구분방법 중 기본, 중심, 행위 엔티티타입으로 구분할 수 있는데, 데이터 모델의 핵심이 되는 중심 엔티티타입 중에서도 해당 업무에서 가장 중요한 핵심 엔티티타입의 주식별자 결정에 따라 전체 데이터 모델의 복잡성을 결정하는 요소가 됨.

- 핵심 엔티티타입은 해당 업무에서 가장 중요하며, 그에 따라 다른 엔티티타입에 많으 영향력을 미치기 때문에 관계를 많이 가지고 있고, 관계에 따라 핵심 엔티티타입의 주식별자가 자연스럽게 상속되는 경우가 많음.

- 그러므로 구축하고자 하는 업무의 중심 엔티티타입 중에서 가장 중요한 핵심 엔티티타입에 대한 식별자를 신청하는 작업은 시스템 구축 작업에서 제일 중요한 작업 중의 하나임을 꼭 기억해야함.

 

* 주식별자의 정의

- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정함.

- 속성값의 길이가 가변적인 속성은 주식별자로 적당하지 않음

- 속성값이 자주변하는 속성은 주식별자로 적당하지 않음.

- 주식별자를 선정하기 위한 속성의 수를 적게 해야함.

- 주식별자 속성은 반드시 값이 들어와야 함.

 

* 보조 식별자 정의

- 주식별자가 존재하지만 일반 속성 중에서도 다른 속성에 결정자 역할을 할 수 있고, 유일성을 가지고 있는 속성을 보조 식별자로 정의함. 보조 식별자는 데이터베이스 테이블에서는 유니크 인덱스(Unique Index)로 지정되어 활용됨.

 

* 외부 식별자 정의

- 외부 식별자(Foreign Identifier)는 자기 자신의 엔티티타입에서 필요한 속성이 아니라 다른 엔티티타입과의 관계를 통해 자식 쪽 엔티티타입에 생성되는 속성을 외부 식별자라 하며, 데이터베이스 생성 시에 FK 역활을 함. 관계와 속성을 정의하고 주식별자를 정의하면 논리적인 관계에 의해 자연스럽게 외부 식별자가 도출되지만, 중요하게 고려해야 할 사항이 있음.

- 엔티티타입에 주식별자가 지정되고 엔티티타입간 관계를 연결하면 부모쪽의 주식별자를 자식 엔티티타입의 속성으로 내보냄. 이제 자식 엔티티타입에서 부모 엔티티타입으로부터 받은 외부 식별자를 자신의 주식별자로 이용할 것인지 또는 부모와 연결되는 속성으로만 이용할 것인지를 결정해야 함

 

** 속성 정의

- 정보를 나타내는 최소의 단위.

- 업무는 엔티티타입에 속한 각각의 엔티티들에 대해 자세한 내역을 가지고 있으며, 각각의 내역에 대해 값을 가지도록 모델링으로 구성한 모습이 바로 속성임.

- 반드시 해당 업무에서 업무상 필요로 하는 데이터인지 아닌지를 반드시 구분하여 분석해야됨.

- 각각의 속성은 반드시 하나의 엔티티타입에 속해 있어야 하고, 전체 데이터 모델에서 하나의 의미만을 가지고 있어야 함.

관련글 더보기

댓글 영역