본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
Ch 3. 데이터 베이스 모델링 - 데이터 모델링 정규화
데이터베이스 정규화: 이상 현상 제거와 데이터 무결성 확보
데이터베이스 정규화는 잘못 설계된 관계형 데이터베이스(RDB)의 테이블을 수정하여 이상 현상(Anomaly)을 제거하고, 데이터 중복을 최소화하여 데이터의 일관성 및 무결성을 보장하는 과정이다. 이 과정은 릴레이션을 여러 개의 릴레이션으로 무손실 분해하며 진행된다.
1. 정규화의 목적과 이상 현상
정규화의 주요 목적은 다음과 같다.
- 데이터 중복 최소화: 저장 공간을 절약하고, 중복으로 인한 불일치 위험을 최소화한다.
- 이상 현상(Anomaly) 제거: 데이터 삽입, 삭제, 갱신 시 발생하는 예기치 않은 부작용을 방지한다.
- 데이터 무결성 향상: 데이터의 일관성과 정확성을 유지한다.
- 유연한 구조: 데이터베이스의 확장 및 유지보수를 용이하게 한다.
이상 현상의 종류
- 삽입 이상(Insertion Anomaly): 데이터를 삽입할 때 원하지 않는 불필요한 정보까지 함께 삽입해야 하거나, 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상이다.
- 삭제 이상(Deletion Anomaly): 하나의 데이터를 삭제하려다 원하지 않는 다른 데이터까지 연쇄적으로 삭제되는 현상이다.
- 갱신 이상(Update Anomaly): 중복된 데이터 중 일부만 갱신하여 데이터의 일관성이 깨지는 현상이다.
2. 함수적 종속성 (Functional Dependency)
정규화는 함수적 종속성(Functional Dependency)이라는 개념에 기반을 둔다. 함수적 종속성은 두 속성(열) 간의 관계를 설명하는 개념으로, 속성 A의 값에 따라 속성 B의 값이 유일하게 결정될 때, 'B는 A에 함수적으로 종속적이다'라고 말하며 A → B로 표기한다. 이때 A를 결정자(Determinant), B를 종속자(Dependent)라고 한다.
3. 정규화 단계별 상세 설명
정규화는 일반적으로 1차부터 5차까지의 정규형(Normal Form)을 단계적으로 적용하며 진행된다.
3.1. 제1 정규형 (First Normal Form, 1NF)
- 조건: 모든 속성 값이 원자값(Atomic Value)을 가져야 한다. 즉, 하나의 열에 여러 값을 포함하는 복합 데이터나 반복되는 그룹을 허용하지 않는다.
- 목표: 복합 속성과 다중 값 속성을 제거하여 테이블을 평탄화한다.
- 함수적 종속성: 모든 속성이 원자값을 가짐으로써, 데이터의 중복성을 제거할 수 있는 기반을 마련한다.
3.2. 제2 정규형 (Second Normal Form, 2NF)
- 조건: 제1 정규형을 만족하고, 테이블의 모든 비기본키 속성이 기본 키 전체에 완전 함수 종속(Full Functional Dependency)되어야 한다.
- 목표: 부분 함수 종속(Partial Functional Dependency)을 제거한다. 부분 함수 종속이란 기본 키의 일부 속성만으로 다른 속성(비기본키)이 결정되는 경우를 말한다. 이를 제거하기 위해 테이블을 분해한다.
3.3. 제3 정규형 (Third Normal Form, 3NF)
- 조건: 제2 정규형을 만족하고, 기본 키가 아닌 모든 속성이 기본 키에 비이행적 함수 종속(Non-transitive Functional Dependency)이어야 한다.
- 목표: 이행적 함수 종속(Transitive Functional Dependency)을 제거한다. 이행적 종속은 A → B, B → C 관계가 성립할 때 A → C가 성립하는 경우를 의미한다. 이를 제거하기 위해, 종속 관계를 가진 속성들을 별도의 테이블로 분리한다.
3.4. 보이스-코드 정규형 (Boyce-Codd Normal Form, BCNF)
- 조건: 제3 정규형을 만족하고, 테이블의 모든 결정자가 후보 키(Candidate Key)여야 한다.
- 목표: 3차 정규형에서 해결하지 못한, 여러 후보 키가 존재하거나 복합 키가 있는 경우에 발생하는 이상 현상을 해결한다.
3.5. 제4 정규형 (Fourth Normal Form, 4NF)
- 조건: BCNF를 만족하고, 다중 값 종속(Multi-valued Dependency, MVD)이 없어야 한다. 다중 값 종속은 한 속성에 대해 여러 개의 값이 독립적으로 종속되는 경우를 말한다.
- 목표: MVD를 제거하여 데이터의 중복을 줄인다.
3.6. 제5 정규형 (Fifth Normal Form, 5NF)
- 조건: 제4 정규형을 만족하고, 조인 종속(Join Dependency)이 없어야 한다. 조인 종속이란 릴레이션을 여러 개의 작은 릴레이션으로 분해한 뒤 다시 조인했을 때, 원래의 릴레이션으로 완벽하게 복원되면서 데이터 손실이나 불필요한 데이터가 생성되지 않는 것을 의미한다.
- 목표: 조인 종속을 제거하여 중복을 제거할 수 있을 만큼 최대한 분해한다.
4. 비정규화 (Denormalization)
정규화는 데이터 무결성을 높이지만, 너무 많은 테이블로 분해되면 JOIN 연산이 많아져 쿼리 성능이 저하될 수 있다. 비정규화(Denormalization)는 성능 향상을 목적으로 정규화된 테이블을 다시 합치거나 중복을 의도적으로 허용하는 과정이다.
비정규화의 장단점
- 장점: JOIN 연산 감소로 쿼리 성능이 향상된다.
- 단점: 데이터 중복으로 인해 삽입, 삭제, 갱신 시 이상 현상이 발생할 가능성이 높아져 데이터 무결성이 낮아질 수 있다.
일반적으로 온라인 트랜잭션 처리(OLTP) 시스템처럼 데이터 수정이 빈번한 환경에서는 정규화를 통해 데이터 무결성을 우선시하고, 온라인 분석 처리(OLAP) 시스템처럼 데이터 조회가 주된 목적이거나 대량 데이터 처리 시에는 성능 최적화를 위해 비정규화를 고려한다.
https://fastcampus.info/4n8ztzq
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
'개발공부 > 데이터베이스' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 36일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (1) | 2025.08.05 |
---|---|
패스트캠퍼스 환급챌린지 35일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (1) | 2025.08.04 |
패스트캠퍼스 환급챌린지 34일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.08.03 |
패스트캠퍼스 환급챌린지 33일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (4) | 2025.08.02 |
패스트캠퍼스 환급챌린지 32일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (5) | 2025.08.01 |