2019. 4. 11. 10:59ㆍDataBase
데이터 모델링 순서
엔티티타입 정의 | 엔티티타입 정의 |
관계 정의 | 엔티티타입 관계 정의 |
식별자 정의 | 주식별자 정의, 보조 식별자 정의, 식별자 업무 규칙 정의 |
세부 사항 정의 | 속성 상세 정의, 정규화, 도메인 정의, 속성 규칙 정의 |
통합화 | 엔티티타입통합 |
데이터 모델 검증 | 엔티티타입 검증, 관계 검증, 속성 검증, 도메인 검증 |
엔티티타입 정의
- 업무 기술서, 장표, 인터뷰 정리문서 등에서 명사 구분
- 개념이 불문명한 것, 광범위한 것 제거
- 엔티티타입의 특성이나 속성값 제거
- 포괄적인 업무 프로세스에 해당되는 명사 제거
- 중복되는 명사 제거
- 누락된 엔티티타입이 존재하는지 확인
관계 정의
- 업무 기술서, 장표, 인터뷰 정리 문서 등에서 동사를 구분
ex) 강사는 여러 개의 강좌를 개설할 수 있다. 기술 대학원에서는 여러 명의 강사를 기록하고, 관리한다.
기술 대학원에서 과목당 개설한 강좌는 강사 한 명이 강의를 진행한다.
**여기서 '강의한다', '기록하고 관리한다', '개설한다'를 동사로 구분할 수 있다.
- 도출된 엔티티타입과 관계를 이용하여 관계 정의서를 작성
- 고객에게 질문하여 관계를 좀 더 세분화하고 정확하게 도출하는 작업을 한다
관계 정의 예)
여러 부서에 소속된 각각의 사원은 고객으로부터 필요한 제품을 주문받아 처리한다. 각각의 관계를 질문한 결과 다음 관계 정의표와 같은 결론을 얻었다.
기준 엔티티타입 |
관계 형태 (방향, 참여도, 참여 방법) |
참여 방법 |
관련 엔티티타입 |
고객 |
각각의 고객은 여러 번 주문할 수 있다. 각 주문은 반드시 한 고객에 의해 주문된다. |
선택 필수 |
주문 |
제품 |
각각의 제품은 여러 개의 주문을 접수받을 수 있다. 각 주문은 반드시 한 제품을 주문한다. |
선택 필수 |
주문 |
사원 |
사원 한 명은 여러 개의 주문을 접수받을 수 있다. 각각의 주문은 한 사원에 의해서만 접수받는다. |
선택 필수 |
주문 |
부서 |
각각의 부서에는 여러 명의 사원을 포함한다. 각 사원은 한 부서에 포함된다. |
선택 필수 |
사원 |
식별자 정의
주식별자 정의
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정
예를들어, 사원이라는 엔티티안에 사번, 주민번호라는 속성이 존재한다. 사번과 주민번호는 모두 주식별자로써 사용될 수 있지만 사원이라는 엔티티에서는 사번이라는 속성이 더 자주 사용된다. 따라서 사번을 주식별자로 사용하고 주민번호를 보조식별자로 사용하는 것이 바람직하다.
- 속성값의 길이가 변하지않고 값이 변하지 않는 것을 주식별자로 정의한다.
- 주식별자를 선정하기 위한 속성의 수를 적게 한다.
엔티티 내에 주식별자에 적당한 속성이 존재하지 않아 많은 양의 속성을 주식별자로 사용하게 되면 개발할 때 복잡성이 증가하게 된다. 이러한 경우에는 각 속성에 맞는 주식별자를 하나 새로 생성함으로써 복잡성을 줄일 수 있다.
- 주식별자는 NULL값을 가질 수 없다.
속성 정의
- 엔티티가 관리할 특성
- 의미적으로 독립적인 최소 단위
- 하나의 값만을 가짐 = 원자값
도메인 정의
- NUMBER, VARCHAR2, INTEGER ...
도메인이란 엔티티 내의 속성에 대한 데이터 타입과 크기, 제약 사항을 지정하는 것을 말한다. 속성이 일관된 규칙에 따라 데이터 타입과 크기가 부여 됨으로 모델의 관리가 용이하다.
도메인을 사용하게 되면 SQL이 Attribute의 Type, 크기, Constraint에 의헤 Data를 추출하지 못하는 경우가 발생하지 않는다.
- 도메인 생성 목적
1. 업무적으로 동일한 정보 속성을 가지는 속성이 다른 속성으로 정의되는 것을 방지
2. 업무적으로 동일한 정보 속성을 가지는 속성이 변경될 때 도메인을 통해 변경됨으로써 동일한 정보 속성을 가지는 속성들이 다른 속성으로 정의되는 것을 방지
도메인은 속성이 의미하는 분류대로 도메인 분류를 구성하는 것이 좋다.
[출처 : 데이터베이스 설계와 구축 - 성능까지 고려한 데이터 모델링, 한빛미디어, 저자 이춘식]
'DataBase' 카테고리의 다른 글
모델링 검토 - 1 (0) | 2019.04.16 |
---|---|
프로세스 모델링 (0) | 2019.04.15 |
데이터 모델링 관계 (0) | 2019.04.12 |
데이터 모델링 주요 개념 (0) | 2019.04.10 |
Oracle DataBase (0) | 2019.03.28 |