Kong Eunho

2.1 정규화

2025년 07월 24일 15시
카테고리 - TIL, sqld, 2_데이터_모델과_SQL


2.1.1 정규화의 개념

데이터베이스의 이상현상(Anomaly) : 모델링된 데이터베이스의 테이블(=엔터티)과 관계들의 데이터를 입력, 수정, 삭제하는 과정에서 의도치 않게 일관성이 깨지는 현상. 삽입 이상, 갱신 이상, 삭제 이상으로 나눌 수 있다.

정규화(Normalization) : 이상현상을 방지하기 위해 데이터의 중복을 최소화하면서 테이블을 더 조직된 상태로 분해하는 과정.

정규화 수행 시 입력, 수정, 삭제의 성능은 일반적으로 향상된다. 하지만 조회의 성능은 대부분 하락한다. 때문에 조회 성능의 향상을 위해 반정규화를 수행하기도 한다.

2.1.2 제1정규형

제1정규형(1NF) : 모든 속성이 하나의 속성값만을 가지고 있으면서 유사한 속성이 반복되지 않는 상태(원자성 확보 상태). 하나의 속성이 여러 속성값을 가지거나, 하나의 테이블에 유사한 속성이 반복될 때 이를 별도의 테이블로 분리한다.

제1정규형 위반 예시 :

학번(PK) 이름 수강과목
2024001 공은호 자료구조, 웹프로그래밍
2024002 홍길동 운영체제


제1정규화 수행 이후 :

학번(PK) 이름
2024001 공은호
2024002 홍길동
학번(FK) 수강과목
2024001 자료구조
2024001 웹프로그래밍
2024002 운영체제


2.1.3 제2정규형

부분 함수종속성 : 복합식별자에서, 일반 속성이 주식별자의 일부에만 족속성을 가지는 경우.

제2정규형(2NF) : 부분 함수종속성을 제거한 상태. 주식별자에 완전하게 종속적이지 않은 속성을 별도의 테이블로 분리한다.

제2정규형 위반 예시 (과목명, 학점은 과목코드에만 종속) :

학번(FK) 과목코드(FK) 과목명 학점
2024001 CS101 자료구조 3
2024001 CS102 웹프로그래밍 3
2024002 CS101 자료구조 3


제2정규화 수행 이후 :

수강 테이블
학번(FK) 과목코드(FK)
2024001 CS101
2024001 CS102
2024002 CS101
과목 테이블
과목코드(PK) 과목명 학점
CS101 자료구조 3
CS102 웹프로그래밍 3


2.1.4 제3정규형

이행 함수종속성 : 주식별자가 아닌 일반 속성 간에 함수종속성이 존재하는 경우.

제3정규형(3NF) : 이행 함수종속성을 제거한 상태. 주식별자가 아닌 일반 속성은 주식별자에만 종속되어야 한다.

제3정규형 위반 예시 (학과가 지도교수에 종속) :

학번(PK) 지도교수 학과
2024001 정교수 소프트웨어학과
2024002 명교수 해고방지학과
2024003 김교수 소프트웨어학과
2024004 명교수 해고방지학과


제3정규화 수행 이후 :

학생 테이블
학번(PK) 지도교수
2024001 정교수
2024002 명교수
2024003 김교수
2024004 명교수
교수 테이블
지도교수명(PK) 학과
정교수 소프트웨어학과
김교수 소프트웨어학과
명교수 해고방지학과
◀ 이전 글 TIL, sqld, 1_데이터_모델링의_이해
Chapter 1 출제예상문제
2025-07-23
목록으로 다음 글 ▶ TIL, sqld, 2_데이터_모델과_SQL
2.2 관계와 조인의 이해
2025-07-25