실제 프로젝트를 진행하면서 나타나는 데이터 모델링의 주요 이슈사항과 그 해결 법
1. M:N 관계 해소 방법
정보 공학에서 M:N 관계는 반드시 정보를 추적할 수 있도록 1:M 형식으로 해소해줘야 한다.
1.1 관계 엔티티 타입 분리
두 개의 엔티티 타입 사이에 관계 엔티티타입을 도출하여 해소하는 방법
※ 관계 엔티티타입에 적절한 이름이 없으면 먼저 발생한 엔티티의 이름을 앞에, 나중에 발생한 엔티티의 이름을 뒤로 해서 명명한다.
1.2 주식별자 통합
PK 설계를 통해 하나의 엔티티로 통합하는 방법
통합되는 엔티티타입의 속성이 많지 않고, 데이터 수정이 많지 않으며 읽는 작업이 많이 발생하는 엔티티타입의 경우에 적합.
- 장점 : 데이터 모델의 복잡도 감소, 물리적인 테이블에서 데이터 조회 시 여러 개의 테이블을 조회하지 않음
- 단점 : 속성(attribute)이 많을 경우 불필요한 데이터의 중복 때문에 좋지 않음
1.3 부모 엔티티타입에 속성 추가
해당 업무 규칙의 최대값이 지정되어 있고, 최대값 변경 가능성이 적다면 별도 엔티티 타입의 분리 없이 속성을 추가하는 방법
데이터 모델의 복잡도 감소, 물리 테이블 조인을 줄여줌
반드시 엔티티타입간의 관계를 검증하여 관계 엔티티타입을 도출해야 한다.
2. 1:1 관계 해소 방법
엔티티타입간 관계가 1:1로 대응되었다는 사실은 해당 엔티티타입들의 PK가 동일한 경우를 의미
2.1 별개의 엔티티타입으로 따로 표현하는 방법
엔티티타입의 업무적 구분에 따라 개별 엔티티타입을 그대로 유지하는 방법
업무 이해가 쉬워짐, 유연하고 확장성이 좋음
복잡성 증가, 성능이 나빠질 수 있음
2.2 하나의 엔티티타입으로 완전히 통합하는 방법
두 엔티티타입의 타 엔티티타입과의 관계가 비슷하고, 정보 활용이 같이 된다면 하나의 엔티티타입으로 통합하는 방법
2.2.1 통합 기준
- PK가 동일하게 사용될 수 있어야 함
- 한 시점에서 두 엔티티 타입이 동시에 발생되면 안됨.
2.3 부분 통합을 하는 방법
PK 구조는 동일하지만 내용이 다른 경우 PK를 변경하여 통합
편의상의 통합. 업무에 의한 통합이 아니라 데이터 모델 기능에 의한 통합임을 기억해야함.
2.4 슈퍼 엔티티타입 생성
PK와 그 의미가 동일하고 속성의 일부만 다르면 수퍼타입으로 통합하는 방법
3. 엔티티타입의 통합
3.1 목적
- 정보 조회 작업이 용이해짐
- 엔티티타입간 중복성이 제거됨
- 동일한 규칙에 따라 하나의 엔티티타입으로만 표현이 가능
- ERD 표현이 간편해짐
3.2 문제점
- 업무의 확장성이 감소할 수 있음
- 데이터 모델만으로 업무 흐름을 이해하기는 쉽지 않음
- 시스템 성능이 저하될 수도 있음
- 속성에 제약을 걸지 못하는 경우가 발생함
- 체크해야 할 조건이 늘어남
- SQL 문장을 작성하기 힘듬
3.3 순서
- 엔티티타입, PK, PK 업무 규칙을 통합
- 관계, FK, FK 업무 규칙 통합
- 속성, 성성 업무 규칙 통합
4. 코드 엔티티타입 설계 방법
- 코드화: 정보화 시스템을 구축할 때 어떤 업무의 데이터 단위를 일정한 체계로 구분하는 단위
- 코드값 하나가 반복적으로 나타나는 경우
-한 가지 코드에 대해 여러 개의 속성이 반복되어 나타나는 경우
5. 도미노 속성에 대한 데이터 모델링 방법
- 도미노 속성: 앞의 값에 규칙적인 제약이 연쇄적으로 발생하는 경우
5.1 도미노가 발생할 수 있는 최대값을 정의하여 모델링하는 방법
5.2 BOM(Bill Of Material)을 이용하여 모델링하는 방법
5.3 도미노 속성의 활용
- 도미노 속성 전체를 하나의 속성처럼 활용
- 사용자 인터페이스 앞 값에 의해 뒤의 값이 한정되어 보여주는 경우
6. 메시지 엔티티타입 설계 방법
메시지: 사용자가 시스템을 조작하면서 받는 정보 시스템의 반응
6.1 종류: 정보, 경고, 에러
6.2 메시지 모델링 과정
- 업무와 관련하여 개발하고자 하는 시스템과 연관된 모든 메시지 조사
- 메시지 성격에 맞게 데이터 모델링 진행
7. 이력 엔티티타입
이력관리: 하나의업무 단위가 시간이 흐름에 따라 발생하는 과거와 현재 데이터를 지속적으로 유지하는 관리 방법
이력 엔티티타입: 이력 관리를 위해 데이터 모델에 반영하여 표현한 엔티티타입
이력의 종류
- 변경 이력
- 발생이력
- 진행 이력
'이전 게시물들' 카테고리의 다른 글
[DB] 데이터베이스 논리 설계 - 모델 검토 (0) | 2020.12.24 |
---|---|
[DB] 데이터베이스 논리 설계 - 상관 모델링 (0) | 2020.12.24 |
[DB] 데이터베이스 논리 설계 - 프로세스 모델링 (0) | 2020.12.24 |
[DB] 데이터베이스 논리 설계 - 데이터 분석 및 모델링 (0) | 2020.12.24 |
[DB] 데이터베이스 논리 설계 - 데이터 모델링 주요 개념 (0) | 2020.12.18 |