2장 데이터 모델과 성능
1절 성능 데이터 모델링의 개요
⦁ 성능 데이터 모델링: DB 성능향상을 위한 사항이 데이터 모델링에 반영되도록 하는 것
⦁ 수행 시점: 분석/설계 단계, 성능 데이터 모델링 시점이 늦어질수록 재업무 비용이 증가함
⦁ 고려 사항: 정규화 수행, DB 용량 산정과 트랜잭션 유형 파악을 통한 반정규화 수행, 정규화는 무조건 해야 됨
2절 정규화와 성능
⦁ 정규화(Normalization): 데이터 분해 과정, 이상현상(anomaly) 제거
⦁ 정규형(NF; Normal Form): 정규화로 도출된 데이터 모델이 갖춰야 할 특성
⦁ 함수적 종속성(FD; Functional Dependency): 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음
⦁ 다치 종속(MVD; Multivalued Dependency): 여러 칼럼이 동일한 결정자의 종속자일 때
⦁ 정규화 이론:
1) 1차 2차 3차 보이스코드 정규화는 함수적 종속성에 근거
2) 4차 정규화는 다치 종속을 제거
3) 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함
⦁ 1차 정규화: 속성의 원자성 확보, 다중값 속성을 분리함
⦁ 2차 정규화: 부분 함수 종속성 제거, 일부 기본키에만 종속된 속성을 분리함, 기본키가 하나의 칼럼일 때 생략 가능
⦁ 부분 함수 종속성

⦁ 3차 정규화: 이행 함수 종속성 제거, 서로 종속관계가 있는 일반속성을 분리함, 주식별자와 관련성이 가장 낮음
⦁ 이행 함수 종속성

⦁ 보이스코드 정규화(BCNF; Boyce-Codd Normal Form): 후보키가 기본키 속성 중 일부에 함수적 종속일 때
다수의 주식별자를 분리함
⦁ 4차 정규화, 5차 정규화: 다치 종속 분리, 결합 종속 분리
⦁ 정규화와 성능: 정규화는 입출력 데이터의 양을 줄여 성능을 향상시킴
⦁ 정규화로 인한 성능 향상: 입력/수정/삭제 시 성능은 항상 향상됨
⦁ 유연성 증가: High Cohesion & Loose Coupling 원칙에 충실해짐
⦁ 재활용 가능성 증가: 개념이 세분화됨
⦁ 데이터 중복 최소화
⦁ 정규화로 인한 성능 저하: 조회 시 처리 조건에 따라 성능 저하가 발생할 수도 있음
⦁ 데이터 조회 시 조인을 유발하여 CPU와 메모리를 많이 사용하게 됨
⦁ 반정규화로 해결 가능
⦁ 조인이 발생하더라도 인덱스를 사용하여 조인 연산을 수행하면 성능 상 단점이 거의 없고,
정규화를 통해 필요한 인덱스의 수를 줄일 수 있음
⦁ 정규화를 통해 소량의 테이블이 생성된다면 성능 상 유리할 수 있음
'Structured Query Language > SQLD' 카테고리의 다른 글
SQLD_1과목_2장 데이터 모델과 성능_6절 분산 DB 데이터에 따른 성능 (0) | 2023.05.30 |
---|---|
SQLD_1과목_2장 데이터 모델과 성능_3절 반정규화와 성능, 4절 대용량 데이터에 따른 성능, 5절 DB 구조와 성능 (0) | 2023.05.30 |
SQLD_1과목_1장 데이터 모델링의 이해_4절 관계, 5절 식별자 (0) | 2023.05.30 |
SQLD_1과목_1장 데이터 모델링의 이해_2절 엔터티, 3절 속성 (0) | 2023.05.30 |
SQLD_1과목_1장 데이터 모델링의 이해_1절 데이터 모델의 이해 (0) | 2023.05.30 |