본문 바로가기
IT 자격증 공부/SQLD

SQLD - 데이터 모델과 성능1(정규화)

by 코딩하는 랄로 2023. 8. 21.
728x90

정규화란

정규화는 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정이다. 간단히 말해, 정규화는 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법인 것이다.

 

중복이 없는 독립성을 확보한 정규화가 진행된 데이터베이스는 비즈니스에 변화가 발생하여도 데이터 모델의 변경을 최소화 할 수 있다.

 

정규화는 제 1 정규화에서 제 5정규화까지 있지만, 실질적으로는 제 3정규화까지 수행한다.

 

이상현상(anomaly)

정규화를 진행하지 않은 데이터 베이스의 테이블에는 여러 이상현상을 가지고 있어 데이터의 중복, 일관성 등을 해친다. 이러한 이상현상을 없애기 위해 정규화를 진행한다.

 

https://codingralro.tistory.com/entry/DBMS-%EC%A0%95%EA%B7%9C%ED%99%94NF-%EC%9D%B4%EC%83%81%ED%98%84%EC%83%81

 

DBMS - 정규화(NF) : 이상현상

2023.08.14 - [Programming 공부/DBMS] - DBMS - 정규화(NF) : 정규화란? DBMS - 정규화(NF) : 정규화란? 정규화란 고객의 요구에 맞춰 모델링을 통해 테이블을 생성하였다고 바로 사용하게 되면 여러 이상현상들

codingralro.tistory.com

 

 

 

정규화 절차

정규화는 제 1정규화에서 제 5정규화까지 단계를 통해 진행하게 된다. 즉, 이전 단계의 정규화를 만족해야만 다음 단계의 정규화를 진행할 수 있다.

 

제1 정규화

  • 속성의 원자성을 확보한다. = 속성은 하나의 값만을 가진다.
  • 기본키(PK)를 설정한다.

 

제2 정규화

  • 기본키가 2개 이상의 속성으로 이루어진 경우, 부분 함수 종속성을 제거(분해)한다.

 

제3 정규화

  • 기본키를 제외한 칼럼 간에 종속성을 제거한다.
  • 즉, 이행 함수 종속성을 제거한다.

 

BCNF

  • 기본키를 제외하고 후보키가 있는 경우, 후보키가 기본키를 종속시키면 분해한다,

 

제4 정규화

  • 여러 칼럼들이 하나의 칼럼을 종속시키는 경우 분해하여 다중값 종속성을 제거한다.

 

제5 정규화

  • 조인에 의해서 종속성이 발생하는 경우 분해한다.

 

정규화는 함수적 종속성을 근거로 한다. 함수적 종속성이란 X -> Y이면 Y는 X에 함수적으로 종속됨을 의미한다. 

 

 

 

2023.08.14 - [Programming 공부/DBMS] - DBMS - 정규화(NF) : 정규화란?

 

DBMS - 정규화(NF) : 정규화란?

정규화란 고객의 요구에 맞춰 모델링을 통해 테이블을 생성하였다고 바로 사용하게 되면 여러 이상현상들을 마주하게 된다. 이러한 이상 현상에는 불필요한 컬럼이 존재하거나 중복된 값이 존

codingralro.tistory.com

 

2023.08.22 - [IT 자격증 공부/SQLD] - SQLD - 데이터 모델과 성능2(반정규화)

 

SQLD - 데이터 모델과 성능2(반정규화)

반정규화(De-Normalization) 반정규화란, 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법이다. 정규화와는 반대되는 개념이기 때문에, 반

codingralro.tistory.com

 

728x90