h2.엔티티타입 선정 작업 7가지(자료나 방법을활용 활수있다)
- 업무 기술서, 장표, 인터뷰 정리 문서 등에서 명사를 구분한다.
- 포괄적이고 다른 명사에 종속되지 않은 것을 찾아서 분리한다.
- 개념이 불분명한 것, 광범위한 것은 제거한다.
- 개념이 명확하지 않고 불분명한 명사는 제거한다.
- 가령 "이것,취소, 회사등" 시스템 전체를 포괄하는 단어는 너무광범위해서 제거하는게 좋다.
- 엔티티타입의 특성이나 속성값은 제거한다.
- 특성의로 보이는것은 제거한다.(크기, 길이,이름등)
- 포괄적인 업무 프로세스에 해당되는 명사는 제거한다.
- 온라인, 취소 등 특정업무에 진행되는과정은제거한다.
- 중복되는 명사는 제거한다.
- 누락된 엔티티타입이 존재하는지 유추해 본다.
h3.관계 정의서 작성
(1) 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다.
① 시나리오에서 명사를 구분한다.
② 개념이 불분명한 것, 광범위한 것은 제거한다.
③ 엔티티타입의 특성이나 속성값은 제거한다.
④ 포괄적인 업무 프로세스에 해당되는 명사는 제거한다.
⑤ 중복되는 명사는 제거한다.
⑥ 누락된 엔티티타입 정보를 유추한다.
(2) 선정된 엔티티타입에 대한 초기 엔티티 정의서를 작성한다.
<이미지 참고 p80>
(3) 고객과 검즘 회의를 한다.
(4) ERD에 엔티티타입을 표현한다.
(1) 엔티티타입 도출 방법에 의해 엔티티타입을 선정한다.
① 장표에서 명사를 구분한다.
② 개념이 불분명한 것, 광범위한 것은 제거한다.
③ 엔티티타입의 특성인 것은 제거한다.
④ 업무 프로세스에 해당되는 명사는 제거한다.
⑤ 중복되는 명사는 제거한다.
⑥ 누락된 엔티티타입 정보를 유추한다.
(2) 선정된 엔티티타입에 대한 엔티티 정의서를 작성한다.
(3) 고객과 검증 회의를 한다.
(4) ERD에 엔티티타입을 표현한다.
- 엔티티타입 선정 3가지가질문에 부합한다면 선정해도된다.
1. 업무에서 관리할 필요가 있는 정보인가?
2. 자신만의 속성을 가지고 있는가?
3. 스스로 또는 다른 엔티티타입에 의해 반복적으로 발생되는 하위존재를가지고있는가?
예) 사원이란 실체(Entity)가 있다면 사원의 사례가 발생되는지 확인합니다.
즉, 김OO, 이OO, 박OO, 홍OO 하는 개별 사원이 이에 해당합니다.
(1) 업무 기술서, 장표, 인터뷰 정리 문서 등에서 동사를 구분한다.
(2) 도출된 엔티티타입과 관계를 이용하여 관계 정의서를 작성한다.
(3) 고객에게 질문하여 관계를 조더 세분화하고 정확하게 도출하는 작업을 한다.
(4) 데이터 모델링 툴이나 칠판, 포스트잇을 이용하여 모델을 직접 그려본다.
(5) 고객과 질문하고 협의하여 모델을 검토한다.
(1) 해당 업무에서 자주 이용되는 속성을 주식별자로 지정한다.
- 직원 테이블에서 "사원번호"를 주식별자로 해야한다. 주민등록번호를 하면 부적합한다
같은번호가 있을수있어 적확성이 떨어진다.
(2) 속성값의 길이가 가변적인 속성은 주식별자로서 적당하지 않다.
- 명칭, 내역 등과 같이 이름으로 기술되는것들은 가능하면 주식별자로 지정하지 않도록한다.
(3) 속성값이 자주변하는 속성은 주식별자로서 적당하지 않다.
- 예)학생 table 주식별자가 전자메일, 학번중 속성값이 변하지 안는 학번을 사용해야한다.
(4) 주식별자를 선정하기 위한 속성의 수를 적게 한다.
- 예) 접수 table에 주식별자를 접수번호만하면된다.
- 접수테이블에 주식별자가 "접수번호"이면 결재테이블에 주식별자가 "결제코드,접수번호" 가된다.
(5) 주식별자 속성은 반드시 값이 들어와야한다.
- 자기 자신의 엔티티타입에 필요한 속성이 아니라 다른 엔티티타입과의 관계를 통해
자식 엔터티타입에 생성되어 있는 속성이다.
- Foreign Key 역할을 하며 외부식별자는 식별자 관계 또는 비식별자 관계에 따라서
자식 엔터티타입에서의 역할이 달라질수있다.
외부 식별자간 데이터 무결성을 유지한다.