데이터베이스 정규화는 관계형 데이터베이스의 설계 과정에서 데이터의 중복을 최소화하고
데이터의 무결성을 보장하기 위해 데이터를 체계적으로 구조화하는 과정입니다.
정규화의 목표는 데이터의 중복을 제거하여 데이터베이스의 저장 공간을 효율적으로 사용하고,
데이터의 삽입, 삭제, 수정 시 발생할 수 있는 이상 현상을 방지하는 것입니다.
■ 정규화의 단계
정규화는 여러 단계로 나뉘며, 각 단계는 특정 규칙을 만족해야 합니다. 일반적인 정규화 단계는 다음과 같습니다.
- 제1정규형 (1NF) : 모든 속성(열)이 원자값을 가져야 합니다. 즉, 하나의 속성에 여러 개의 값을 저장할 수 없습니다.
- 제2정규형 (2NF) : 제1정규형을 만족하고, 기본 키가 아닌 모든 속성이 기본 키에 완전 함수 종속되어야 합니다. 즉, 기본 키의 일부에만 종속되는 속성이 없어야 합니다.
- 제3정규형 (3NF) : 제2정규형을 만족하고, 기본 키가 아닌 모든 속성이 기본 키에만 종속되어야 합니다. 즉, 기본 키가 아닌 속성 간의 종속성이 없어야 합니다.
- BCNF (Boyce-Codd Normal Form) : 제3정규형을 강화한 형태로, 모든 결정자가 후보 키여야 합니다.
- 제4정규형 (4NF) : 다치 종속성을 제거합니다.
- 제5정규형 (5NF) : 조인 종속성을 제거합니다.
■ 정규화의 장점
- 데이터 중복 최소화 : 저장 공간 효율성 증대
- 데이터 무결성 유지 : 데이터의 일관성 및 정확성 향상
- 데이터 관리 용이성 : 데이터의 삽입, 삭제, 수정 시 이상 현상 방지
■ 정규화의 단점
- 조인 연산 증가 : 쿼리 성능 저하 가능성
- 테이블 수 증가 : 데이터베이스 구조 복잡성 증가
데이터베이스 정규화 - Microsoft 365 Apps | Microsoft Learn
데이터베이스 정규화 설명 - Microsoft 365 Apps
데이터베이스를 정규화하는 방법과, 형식을 정규화하는 대신 사용할 수 있는 여러 가지 방법을 설명합니다. 데이터베이스 원칙을 이해하려면 데이터베이스 원칙을 마스터하거나 문서에 나와
learn.microsoft.com
'위클리 페이퍼' 카테고리의 다른 글
웹팩(Webpack) 모듈 번들러와 Vite의 핵심 개념 및 특징 (0) | 2025.04.13 |
---|---|
React 대비 Next.js의 주요 이점 (0) | 2025.03.19 |
React 함수형 컴포넌트와 클래스 컴포넌트 차이점 (0) | 2025.03.14 |
React에서 배열 렌더링할 때 Key 설정하는 이유 (0) | 2025.03.14 |
리액트 생명주기(Lifecycle)에 대해서 (0) | 2025.03.14 |