2.1 정규화 (Normalization)
- 정규화 절차
이상현상 (Anomaly) 방지 --> 삽입이상, 갱신이상, 삭제이상
* 정규화
- 데이터베이스의 이상현상(Anomaly)을 막기 위해, 데이터의 중복을 최소화하면서
테이블을 보다 잘 조직된 상태로 분해하는 과정.
- 정규화의 결과 : 데이터의 입력/수정/삭제 성능 향상.
데이터의 조회 성능 하락 가능성 증가 (무조건적인 하락X) **
정규화로 인해 join의 횟수 증가 ==> 조회 성능 하락.
정규화로 인해 불필요한 트랜잭션 감소 ==> 전체 시스템 성능 향상.
- 정규화 절차
제 1정규화 : 릴레이션의 속성값이 모두 원자값(Atomic Value)만으로 구성되어야 한다.
중복값 제거, 기본키 설정.
제 2정규화 : 기본키가 2개 이상의 속성으로 이루어진 경우 부분 함수 종속성을 제거한다.
제 3정규화 : 기본키를 제외한 컬럼 간의 종속성을 제거한다. 이행 함수 종속성을 제거한다.
BCNF : 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해한다.
(후보키가 아닌 결정자가 존재할 경우 분해)
- 함수종속성 (FD, Functional Dependency) _속성간의 의존성
* 제1 정규화 (비정규형 --> 1차 정규형)
- 하나의 속성이 여러 속성값을 갖거나 하나의 테이블에 유사한 속성이 반복될 때 이를 별도 테이블로 분리.
=> 하나의 속성이 하나의 속성값만 가져야함.
스키마(테이블구조_속성자체)를 변경하는 대신 속성값을 변경할 수 있도록
* 제2 정규화 (1차 정규형 --> 2차 정규형)
- (복합식별자의 경우) 일반 속성이 주식별자의 일부에만 종속성을 갖는 부분 함수 종속성을 제거.
* 제3 정규화 (2차 정규형 --> 3차 정규형)
- 주식별자가 아닌 일반 속성 간에 함수 종속성이 존재하는 이행 함수 종속성을 제거.
+ 보이스-코드 정규화 (3차 정규형 --> BCNF 정규형)
- 일반속성이 기본키를 결정하는 경우(결정자가 되는 경우).
https://www.youtube.com/watch?v=T5mYcnW25Fo&list=PLDI0745yTBjXFuIFYqq3vzcQYuVyajFpC&index=6
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 강의 11. SELECT문 (0) | 2025.02.01 |
---|---|
[SQLD] 강의 09~10. 본질식별자/인조식별자, 관계형 데이터베이스 (0) | 2025.02.01 |
[SQLD] 강의 07~08. 슈퍼타입/서브타입 관계테이블 병합, NULL 연산 (0) | 2025.01.31 |
[SQLD] 강의 03~05. 엔티티, 속성, 도메인, 식별자/비식별자 관계 (0) | 2025.01.29 |
[SQLD] 강의 01~02. 데이터 모델링, 단계, 스키마 (0) | 2025.01.27 |