본문 바로가기

Data

데이터베이스 정규화

정규화란?

 

데이터베이스에서 데이터를 효율적으로 구성하는 프로세서.

 

 

데이터베이스 정규화의 목적

 

1. 불필요한 데이터(data redundancy)를 제거한다.(예 : 둘 이상의 테이블에 동일한 데이터 저장)

2. 데이터 종속성(Database Dependencies)이 합리적 임을 확인 (테이블 관련데이터 저장)

 

- 데이터베이스가 사용하는 공간을 줄이고 데이터가 논리적으로 저장되도록 한다.

-> 데이터 저장을 논리적으로 한다 = 데이터 테이블 구성이 논리적이고 직관적이어야 한다.

 

1) 정규화를 하지 않았을때 문제점

 

일반적인 형식

 

데이터베이스가 정규화되도록하기위한 일련의 형식이 있는데, 이것을 정규 형식이라고 한다.

(1NF, 2NF, 3NF, 4NF, 5NF)

 

1차 정규형(1NF)

 

1차 정규형은 각 행마다 열값이 1개씩만 존재. = 열이 원자값(Atomic Value)를 갖는다.

조직화 된 데이터베이스에 대한 기본 규칙을 설정.

 

- 동일한 테이블에서 중복 열을 제거.

- 각 관련 데이터 그룸에 대해 별도의 테이블을 만들고 고유 한 열 또는 열 집합(기본 키 : primary key)으로 각 행을 식별.

Adam 의 과목수가 Biology, Maths 2개로 1차 정규형을 만족하지 못한다.

1차 정규화를 통해서 한 개의 행을 추가하게 되었다. 이렇게 되면 Adam이 중복이 되게 된다.

 

 

2차 정규형(2NF)

 

중복 데이터 제거 개념을 추가.

 

- 첫 번째 정규 형식의 모든 요구 사항 충족

- 테이블의 여러 행에 적용되는 데이터의 하위 집합을 제거하고 별도의 테이블에 배치

- 왜래 키(foreign key)를 사용해 이러한 새 테이블과 이전 테이블 간의 관계를 만듬.

- 테이블의 모든 컬럼이 완전 함수적 종속을 만족.

- 기본키 중 특정 컬럼에만 종속된 컬럼(부분적 종속)이 없어야한다.

 

 

3차 정규형(3NF)

 

한 단계 더 추가.

 

- 두 번째 정규형의 모든 요구 사항을 충족

- 기본키에 종속되지 않는 열을 제거.

 

BOYCE-CODD 정규형(BCNF or 3.5NF)

 

하나 이상의 요구 사항을 추가.

 

- 세번째 정규 형식의 모든 사항을 충족

- 모든 결정자는 후보키(candidate key)여야 함.

 

4차 정규형(4NF)

 

하나의 추가 요구 사항

 

- 세번째 정규 형식의 모든 요구 사항을 충족

- 다중 값 종속성(multi-valued dependencies)이 없는 관계는 4NF

 

이러한 정규화 사항은 누적됩니다. 데이터베이스가 2NF면 먼저 1NF 데이터베이스의 모든 기준을 충족해야합니다.

 

정규화를 꼭 해야하는가?

 

상황에 따라 다르다.

 

 

 

 

 

 

 

 


출처:

 

The Basics of Normalizing a Database

Database normalization can save storage space and ensure the consistency of your data. Here are the basics in an introductory article.

www.lifewire.com

 

 

데이터베이스 정규화 1NF, 2NF, 3NF, BCNF

데이터베이스 정규화 1NF, 2NF, 3NF, BCNF 데이터베이스 정규화란 데이터베이스의 설계를 재구성하는 테크닉입니다. 정규화를 통해 불필요한 데이터(redundancy)를 없앨 수 있고, 삽입/갱신/삭제 시 발

3months.tistory.com

 

'Data' 카테고리의 다른 글

관계형 데이터베이스의 필요성  (0) 2021.03.11
데이터베이스  (0) 2021.03.08
결측치 처리(Missing Value)  (2) 2021.01.26
데이터 셋(Data set)  (0) 2021.01.26
Dataframe, Series  (0) 2021.01.26