728x90
< 목차 >
0. TL;DR
1. 1:1 관계
2. M:N 관계
3. 엔티티 타입 통합
4. 이력(log, 기록) 엔티티 타입 설계
0. TL;DR
- 1:1 관계
- 1개의 엔티티 타입으로 통합: PK가 동일하게 사용 or 한 시점에 2개의 엔티티 타입이 동시 발생 금지
- 부분 통합: PK 속성들의 구조가 모두 비슷한 경우, 편의상 하나로 통합하여 표현
- 슈퍼 엔티티 타입 생성: PK와 의미가 동일하고, 속성의 일부만 다를 경우 슈퍼 타입으로 통합
- M:N 관계
- 관계 엔티티 타입 분리
- 주 식별자 통합
- 부모 엔티티 타입에 속성 추가
- 이력 엔티티 타입 설계
- 이력 관리: 하나의 업무가 시간 흐름에 따라 발생하는 데이터
- 이력 데이터 발생 유형
- 발생 이력
- 변경 이력
- 진행 이력
1. 1:1 관계
: 엔티티 타입 간 관계가 1:1로 대응하는 것
즉, 해당 엔티티 타입의 PK가 동일한 경우를 나타낸다.
(1) 1개의 엔티티 타입으로 통합
- 동일한 PK 구조를 가지는 1:1 관계면 하나로 통합
- PK가 동일하게 사용 or 한 시점에 2개의 엔티티 타입이 동시 발생 금지: 순서대로 실행돼야 함을 의미. 청구가 실행되고 있는 시점에 지급이 실행되는 것처럼 동시에 실행되면 안 됨!
- 2개의 엔티티 타입의 속성들이 비슷할 땐 하나로 통합
(2) 부분 통합
- PK는 동일하더라도 내용이 다른 경우, 별도 엔티티 타입으로 유지하거나 1개의 엔티티 타입으로 통합할 때 PK를 변경하여 통합
- PK 속성들의 구조가 모두 비슷한 경우, 편의상 하나로 통합하여 표현
(3) 슈퍼 엔티티 타입 생성
- PK와 의미가 동일하고, 속성의 일부만 다를 경우 슈퍼 타입으로 통합
- 엔티티 타입의 PK가 같고, 동일한 속성을 가지고 있으며 일부 속성이 다르거나 각각의 관계가 다른 엔티티 타입과 상이할 때 적용
2. M:N 관계
: 2개의 테이블이 서로의 행에 대해서 여러 개로 연관돼 있는 상태
즉, 상호 간의 관계가 1:M, M:1로 구성된 상태다.
(1) 관계 엔티티 타입 분리
- M:N 관계는 기본적으로 관계 엔티티 타입을 도출해 해소함
- 관계 엔티티 타입은 업무에 의한 것보다 데이터 모델링 작성 중 관계에 의해 발생, 엔티티 타입명이 실제 업무에 없는 경우가 많음
- 이때는 적절하게 의미 있는 엔티티 타입명을 지정
- 엔티티 발생 순서에 따라 엔티티 타입명 순서를 정하는 게 일반적
(2) 주 식별자 통합
- 데이터 모델 복잡도 감소
- 물리 테이블에서 데이터를 가져올 때, 여러 개의 테이블을 조인하지 않는 장점
(3) 부모 엔티티 타입에 속성 추가
- 해당 업무 규칙의 최댓값이 지정되고, 변경 가능성이 적은 것 선정
- 모델 복잡도 감소
- 물리 테이블 조인 감소
3. 엔티티 타입 통합
(1) 통합하는 목적
- 복잡한 모델의 단순화
- 엔티티 타입 간 중복성 제거
- 동일한 규칙에 따라 1개의 엔티티 타입으로 표현 가능
- ERD의 표현 단순화
(2) 통합할 시, 문제점
- 업무의 확장성 감소
- 특정 엔티티 타입만 관여하는 관계나 프로세스, PK, FK 구조에 제약
- 업무 변경 시, 모델 변경이 쉽지 않음
- 데이터 모델만으로 업무 흐름 파악 어려움
- 병합 내용을 알고 있지 않는 사람은 모델만으로 이해 어려움
- 시스템 성능 저하
- 많은 양의 데이터가 한 곳으로 집약되므로 데이터 증가에 따른 성능 저하 가능성 발생
- 속성에 제약조건 설정하기 어려움
- Not Null, Check, Default Value를 지정할 때 제약사항 발생
- 체크해야 할 조건 증가
- 서로 다른 성격의 엔티티 타입이 한 군데에 모여 있어, 체크해야 할 조건이 증가
- 복잡한 SQL 구문 필요
- 각기 다른 PK를 가지면서 통합됐을 경우, 두 엔티티를 1개의 row로 표현하고 조회하기 위해 상대적으로 복잡한 SQL 구문 필요
4. 이력(log, 기록) 엔티티 타입 설계
(1) 이력 관리
: 하나의 업무가 시간 흐름에 따라 발생하는 데이터
- 과거와 현재의 데이터를 지속적으로 유지하는 관리법
- 이력 엔티티 타입: 이력 관리를 위한 엔티티 타입
- 과거 데이터 추적, 통계 데이터에 주로 적용
(2) 이력 데이터 발생 유형
- 발생 이력: 시간에 따라 발생하는 데이터를 모두 관리하는 것
- 5/1 판매 이력, 5/2 판매 이력
- 변경 이력: 업무상 필요에 의해 수정되면서 변경 전/후 데이터를 관리하는 것
- 주문 수량 변경, 상품 가격 변경
- 진행 이력: 프로세스가 진행되는 상태를 모두 관리하는 것
- 주문 확인, 배송 준비 중, 출고 완료, 배송 중, 배송 완료
728x90
'CS (Computer Science)' 카테고리의 다른 글
[개발 공부 114일차] 컴퓨터 구조 | 컴퓨터의 4가지 핵심 부품 (0) | 2024.10.09 |
---|---|
[개발 공부 112일차] DB 개론 | 성능을 고려한 데이터 모델링 (2) | 2024.10.03 |
[개발 공부 110일차] DB 개론 | 3차 정규화, 보이스-코드 정규화, 4차/5차 정규화 (19) | 2024.10.01 |
[개발 공부 109일차] DB 개론 | 데이터 모델링 1차 정규화, 2차 정규화 (19) | 2024.09.30 |
[개발 공부 108일차] DB 개론 | ERD, 논리적/물리적 데이터 모델링 (6) | 2024.09.29 |