일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬
- SAA-C02
- 정규화
- join
- SQLD
- 백준 11059
- 깃허브
- 프로그래머스 조건에 맞는 개발자 찾기
- 알고리즘
- 백준 크리문자열
- 백준 24499 파이썬
- react
- 백준 2852
- 데이터베이스
- 백준 1756
- AWS
- 리스트 컴프리헨션
- ROWNUM
- github
- sql
- Today
- Total
-
[SQLD] #007 데이터 모델과 성능 - 정규화와 성능 본문
목차
1. 정규화를 통한 성능 향상 전략
2. 함수적 종속성에 근거한 정규화 수행 필요
1. 정규화를 통한 성능 향상 전략
정규화를 수행하는 것 : 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것. 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다.
위 사진처럼 정규화 수행 모델은 반정규화된 테이블에 비해 처리 성능이 향상된다.
단, 데이터를 조회할 때에는 처리 조건에 따라 조회 성능이 향상될 수도, 저하될 수도 있다.
2. 함수적 종속성 (Functional Dependency) 에 근거한 정규화 수행 필요
함수의 종속성 : 데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭하는 것. 이 때 기준값을 결정자, 종속되는 값을 종속자 라고한다.
위 사진에서 이름, 출생지, 주소는 주민등록번호 속성에 종속된다. 즉, '주민등록번호가 이름, 출생지, 주소를 함수적으로 결정한다' 라고 말할 수 있다.
함수의 종속성은 데이터가 가지고 있는 근본적인 속성으로 인식되고 있다. 정규화의 궁극적인 목적은 반복적인 데이터를 분리하고 각 데이터가 종속된 테이블에 적절하게 배치되도록 하는 것이므로 이 함수의 종속성을 이용하여 정규화 작업이나 각 오브젝트에 속성을 배치하는 작업을 한다.
기본적으로 데이터는 속성간의 함수종속성에 근거하여 정규화되어야 한다. 프로젝트 수행에서 정규화는 선택이 아니라 필수 사항이다.
출처
이 글의 내용은 모두 한국데이터베이스진흥원이 출판한 SQL 전문가 가이드 2013 Edition을 기본으로 한다.
'SQLD' 카테고리의 다른 글
[SQLD] #009 데이터 모델과 성능 - 대량 데이터에 따른 성능 (0) | 2021.04.21 |
---|---|
[SQLD] #008 데이터 모델과 성능 - 반정규화와 성능 (0) | 2021.04.21 |
[SQLD] #006 데이터 모델과 성능 - 성능 데이터 모델링의 개요 (0) | 2021.04.20 |
[SQLD] #005 데이터 모델링의 이해 - 식별자 (0) | 2021.04.19 |
[SQLD] #004 데이터 모델링의 이해 - 관계 (0) | 2021.04.19 |