성능 데이터 모델링
성능 데이터 모델링이란?
데이터베이스의 성능을 향상시키기 위해 설계 단계부터 성능과 관련된 사항들이 모델링에 반영될 수 있도록 하는 것
성능 데이터 모델링 수행 시점
성능 향상을 위한 비용은 프로젝트 수행에 있어 사전에 할수록 비용이 들지 않음
특히 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 때 성능저하에 따른 재업무 비용을 최소화할 기회를 가지게 됨
성능 데이터 모델링 순서
- 데이터 모델에 맞게 정규화 수행
- 데이터베이스의 용량 산정 수행
- 데이터베이스에 발생하는 트랜잭션의 유형 파악
- 데이터베이스의 성능을 고려하여 반정규화 수행
- PK/FK 등을 조정하여 인덱스를 반영함으로써 성능 향상
- 데이터 모델의 성능 검증
정규화(Normalization)
정규화란?
데이터 정합성(데이터의 정확성과 일관성을 유지하고 보장)을 위해 엔티티를 작은 단위로 분리하는 과정
정규화 절차
1차 정규화(1NF, First Normal Form)
- 어떤 릴레이션 R에 속한 모든 도메인이 원자값(Atomic Value)만으로 되어 있다면 제1정규형에 속함
- 릴레이션 내의 속성은 원자값을 가지고 있어야 함
2차 정규화(2NF, Second Normal Form)
- 어떤 릴레이션 R이 1NF이고, 키(기본 키)에 속하지 않은 애트리뷰트 모두가 기본 키에 완전 함수 종속이면 제2정규형에 속함
- 특정 컬럼에만 종속되는 부분 함수 종속(Partial Dependency) 제거
3차 정규화(3NF, Third Normal Form)
- 어떤 릴레이션 R이 2NF이고, 기본 키에 속하지 않은 모든 애트리뷰트들이 기본 키에 이행적 함수 종속이 아닐 때 제3정규형에 속함
- 주 식별자에 이행 함수 종속(Transitive Dependency) 제거. 주 식별자를 제외한 일반 속성 중에서 함수적 종속 속성들을 상위 개체로 도출함
BCNF 정규화(3.5NF, Boyce-Codd Normal Form)
- 릴레이션 R의 결정자(determinant)가 모든 후보 키(Candidate Key)이면 릴레이션 R은 보이스-코드 정규형에 속함
- 결정자이면서 후보 키가 아닌 것 제거
4차 정규화(4NF, Fourth Normal Form)
- 하나의 애트리뷰트가 다른 애트리뷰트의 값을 결정하는 것이 아니라, 여러 개의 값, 즉 값이 집합을 결정하는 속성임
- 하나의 릴레이션에 두 개 이상의 다치 종속(MVD, Multi-Valued Dependency)이 발생하면 이를 제거하는 과정임
5차 정규화(5NF, Fifth Normal Form, PJ/NF, Projection-Join Normal Form)
- 릴레이션 R에 존재하는 모든 조인 종속(JD, Join Dependency)이 릴레이션 R의 후보 키를 통해서만 만족한다면 릴레이션 R은 제5정규형에 속함
- 5차 정규화는 프로젝션-조인 정규화라고도 함
이상 현상의 유형
삽입 이상(Insertion Anomaly) : 어떤 데이터를 삽입하려고 할 때 불필요하고 원하지 않는 데이터를 함께 삽입해야만 하는 현상. 예를 들어, 새로운 주문을 추가할 때 고객 정보도 삽입해야 하는 경우
삭제 이상(Delete Anomaly) : 튜플 삭제 시 유지해야 할 정보도 삭제되는 연쇄 삭제(Triggered Detection) 현상이 일어나 정보 손실(Loss of Information)이 발생하는 현상. 예를 들어, 고객 정보 삭제 시 고객의 모든 주문 기록이 삭제되는 경우
갱신 이상(Update Anomaly) : 중복된 튜플 중에서 일부 튜플의 애트리뷰트 값만 갱신시켜 정보의 모순성(Inconsistency) 생기는 현상. 예를 들어, 여러 곳에 존재하는 고객 주소 정보를 일부만 갱신하는 경우
'SQL' 카테고리의 다른 글
SQL 기본 RDB와 SELECT 문 (0) | 2025.03.04 |
---|---|
데이터 모델과 SQL 반정규화 (0) | 2025.03.03 |
데이터 모델링의 이해 관계와 식별자 (0) | 2025.03.01 |
데이터 모델링의 이해 엔티티와 속성 (0) | 2025.02.28 |
데이터 모델링의 이해 개요 (0) | 2025.02.27 |