정규화(Normalization)
✒️ 2025-05-28 15:26 내용 수정
관계형 데이터베이스(RDBMS)의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스
- 참고 자료 : 위키백과 데이터베이스 정규화
- 데이터베이스를 설계할 때 고려할 사항(컬럼의 데이터 타입, 구조 등)을 실제 프로젝트에 적용하여 작성한 좋은 예시가 있다.
- 개인 프로젝트를 진행하면서 DB를 설계할 때 참고 자료의 예시와 설명을 보면서 DB의 컬럼과 구조를 수정하는데 도움이 많이 되었다.
- 참고 자료 : Shef's DB 설계는 어떻게 해야 할까
1. 정규화 목적
- 이상이 있는 관계를 재구성하여 작고 잘 조직된 관계를 생성하는 것
- 하나의 테이블에서의 데이터 삽입, 삭제, 변경이 정의된 관계들로 인해 데이터베이스의 나머지 부분들로 이러한 관계를 전파 시키는 것이다.
2. 에드거 F. 커드에 의해 정의된 제 1 정규화(1NF)의 목적
- 고려되지 않는 삽입, 갱신, 삭제 의존에서부터 관계의 집합을 배제
- 새로운 자료형이 나타날 때 관계들의 집합의 재구성의 필요성을 낮추고, 그로 인한 응용 프로그램의 생명 주기를 연장
- 사용자에게 관계 모델을 더욱 의미있게 함(정규화된 테이블들간의 관계는 현실 세계에서의 개념들과의 관계를 반영)
- 질의들은 시간이 지나면 변경될 수 있기 때문에 관계들의 집합을 질의의 통계로부터 중립적이게 만듦
3. 정규화의 이점
- 정규화를 통해 데이터 반복을 제거함으로써 저장 공간을 최소화할 수 있다.
- 데이터 변경 시 데이터 불일치성을 최소화하고 연산 작업을 최소화할 수 있다.
- 기타 사항 : 데이터베이스 디자인 표준 가이드에서는 데이터베이스의 완전한 정규화로 4차 및 5차 정규화가 나와있지만, 비공식적으로는 성능상의 이유 등으로 정규화를 3차까지 진행했다면 정규화 되었다고 한다.