물리 데이터 모델링
데이터 설계란
- 데이터 분석에서 작성한 논리 모델을 구축 시 사용하는 환경에 맞게 물리 모델로 전환하는 것
- 물리 ERD의 통합/검토/보완을 통해 코드를 식별하고 정의하는 것
물리 데이터 모델링
논리 데이터 모델을 테이블 생성이 가능한 물리 데이터 모델로 전환하는 것
목적
1. 논리 데이터 모델을 그대로 전환하면 성능 보장이 불가능하므로, 성능 향상을 고려한 물리 데이터 모델링이 필요
2. 반정규화, 이력테이블, 채번 테이블, 코드 테이블 등을 적용하여 실제 테이블 생성
절차
1. 관계형 테이블 전환
- 엔터티 테이블 전환
2. 통합/분리 결정
- 슈퍼타입-서브타입 모델 전환
3. 이력/코드/채번 테이블 도출
4. 반정규화
5. 물리명 전환
관계형 테이블 전환
Entity | Table |
Attribute | Column |
Occurrence | Row |
Identifier | Prmiary Key |
Relationship | Foreign Key |
주 식별자 전환
- 대체키(Surrogate Key)
1. 저장 공간을 줄여 검색 속도 향상
2. 보안
3. 변경에 영향을 덜 받기 위해 사용
- Primary Key로 데이터를 유일하게 식별
1. 참조 무결성
2. Unique Index
3. NULL 불가능
4. 변경 불가
통합/분리 결정
슈퍼타입/서브타입 변환
1. 통합 테이블로 변환
- 서브 타입 고유 속성이 적을 때
2. 각 서브타입 테이블로 변환
- 서브타입 별 속성이 다를 때
3. 개별 테이블로 변환 (1:1 관계)
- 서브 타입 별 공통 속성을 대상으로 하는 업무가 빈번할 때
- 서브 타입 고유 속성이 많을 때
반정규화
정규화된 엔터티, 속성, 관계에 대해 시스템 성능 향상과 개발, 운영의 단순화를 위해 데이터 모델을 통합하는 프로세스
반정규화 절차
1. 반정규화 대상 조사
- 범위 처리 빈도수 조사
- 대량 범위 처리 조사
- 집계성 프로세스 조사
- 테이블 조인 개수
2. 다른 방법 유도 검토
- 뷰테이플
- 클러스터링
- 인덱스
3. 반정규화 적용
- 테이블 반정규화
- 컬럼 반정규화
- 관계 반정규화
반정규화 방법
1. 컬럼 반정규화
- 중복 속성을 가진 컬럼을 추가
2. 관계 반정규화
- 접근 경로 단축을 위해 컬럼 추가
3. 테이블 반정규화
- 집계테이블: 조회 대상이 되는 값을 미리 계산한 테이블
- 수직적 분할: Entity 속성 분할
- 수평적 분할: Occurrence 분할(row 분할)
이력/채번/코드테이블
이력 관리
- 하나의 업무 단위가 시간 흐름에 따라 발생하는 과거와 현재 데이터를 지속적으로 유지하는 관리방법
ex) 변경이력, 발생이력, 진행이력
물리명 적용
- 용어 사전을 근거로 논리 데이터 모델의 엔터티명과 속성명을 영문 컬럼명 및 테이블명으로 변경하는 작업
'IT > CS' 카테고리의 다른 글
[DB] 데이터 모델링의 이해 - 논리 모델링 절차 (0) | 2022.04.13 |
---|---|
[JavaScript] 자바스크립트 비동기적 프로그래밍 (0) | 2021.12.07 |
[Architecture] MSA (0) | 2021.09.28 |
[Java] Lambda expression (0) | 2021.09.28 |
[JavaScript] jQuery (0) | 2021.08.22 |