[데이터베이스] 정규화
cleanUrl: /데이터베이스-RDBMS의-기본 floatFirstTOC: right
정규화(Normalization)

정규화의 장점
- 동일한 정보의 중복 저장을 방지하여 저장 공간 절약
- 한 곳만 수정하면 되므로 데이터 불일치 발생 가능성 감소
- 정규화를 통해 데이터 이상 현상을 줄일 수 있음.
- 테이블 간의 관계가 명확하여 유지보수 용이
- 관계형 제약조건을 통한 데이터 정확성 보장
정규화의 단점
- 테이블이 분리되어 있어 데이터 조회 시 JOIN이 많아지고 성능 저하 가능
- 테이블 간의 관계를 잘 이해해야 하며 쿼리가 복잡해질 수 있음.
- 읽기(조회)가 많은 시스템에서는 과도한 정규화가 응답 속도 저하로 이어질 수 있음.
- 너무 세분화된 테이블은 전체 구조 파악이 어려워질 수 있음.
- 만약 조인이 많이 발생하여 성능 저하가 나타나면 반정규화(denormalization)를 적용할 수도 있음.
제1 정규화(1NF)
테이블의 각 컬럼이 원자값(Atomic Value)을 가져야 한다.


제2 정규화(2NF)
제1 정규화를 만족하면서, 기본 키가 아닌 모든 필드들이 모든 기본 키에 완전히 종속돼야 한다. 즉, 완전 함수 종속을 만족해야 한다.


제3 정규화(3NF)
제2 정규화를 만족하면서, 기본 키가 아닌 모든 필드들이 이행적 종속성이 없어야 한다.


보이스/코드 정규화(BCNF)
제3 정규화를 만족하면서, 모든 결정자가 후보 키가 되도록 테이블을 분해해야 한다.


참고 자료
[Database] 정규화(Normalization) 쉽게 이해하기
지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normalization) [ 정규화(Normalization)이란? ] 정규화(Normalization)의 기본 목표는 테이블 간에 중복된 데이타를 허용하지 않는다는 것이다. 중복된 데이터를 허용하지 않음으로써 무결성(Integrity)를 유지할 수 있으며, DB의 저장 용량 역시 줄일 수 있다. 이러한 테이블을 분해하는 정규화 단계가 정의되어 있는데, 여기서 테이블을 어떻게 분해되는지에 따라 정규화 단계가 달라지는데, 각각의 정규화 단계에 대해 자세히 알아보도록 하자. [ 제1 정규화 ] 제1 정규화란 테이블의 컬럼이 원..
CSnote
blog.naver.com
[ Database ] 제 1정규화, 제 2정규화, 제 3정규화
정규화란? 데이터베이스의 데이터들을 최대한 중복을 제거하여 이상 현상 ( Anomaly ) 을 방지하기 위한 기술이다. 여기서 말하는 이상현상은 세 가지가 있는데 간략하게 설명하면 다음과 같다. 갱신 이상 ( Modification Anomaly ) 중복된 데이터 중 일부를 갱신할 때 의도치 않은 데이터가 갱신됨으로써 생기는 데이터의 불일치 삽입 이상 ( Insertion Anomaly ) 새 데이터를 삽입할 때 의도치 않은 데이터가 삽입됨으로써 생기는 데이터의 불일치 삭제 이상 ( Deletion Anomaly ) 데이터를 삭제할 때 의도치 않은 데이터까지 삭제됨으로써 생기는 데이터의 불일치 이러한 이상 현상을 해결하기위해 데이터를 잘게 잘게 쪼개나간다고 생각하면 쉽다. ..
