본문 바로가기

데이터베이스

정규화

728x90
반응형
SMALL

데이터베이스 이상 현상 (anaomaly)

 - 데이터베이스에서 삽입, 업데이트, 삭제를 사용자가 원하는대로 이루어지지 않는 현상

 - 데이터 모델링이 잘 이루어졌어야 생기지 않음

 

  • 삽입 이상

 - 새로운 데이터를 정상적으로 추가하기 어려운 경우

  • 업데이트 이상

 - 데이터를 업데이트 했을 때, 정확성을 지키기 어려운 경우

 

  • 삭제 이상

 - 원하는 데이터만 자연스럽게 삭제할 수 없는 경우

 

 

정규화 (Normalization)

 - 데이터베이스의 테이블이 잘 만들어졌는지 평가하고 테이블을 고쳐나가는 과정

 - 정규형 (Normal Form) 의 형식을 맞춰야 한다.

 - 정규화를 하는 과정은 순차적인 정규형을 만족한다. (예: 3정규형을 만족하는 테이블은 1, 2, 정규화를 만족한다.)

 

  • 1NF

 - 테이블 안에 모든 로우의 칼럼값은 나눌 수 없는 단일 값이어야한다.

  • 함수 종속성 (Functional Dependency)란?

 - x의 값에 따라서 y의 값이 결정 될 때, y는 x의 함수 종속성이 있다. ( x -> y )

 - 이행성 ( 2중으로 함수 종속성이 있는 경우, 이를 이행되었다고 하여 이행적 함수 종속성이라고 함.  예시 : x -> y -> z)

 

  • Candidate Key

 - 하나의 로우를 특정 지을 수 있는 attribute들의 최소 집합

 - prime attribute : candidiate key에 속하는 attribute

 

  • 2NF

  - 1NF를 만족하고 테이블에 candidate key의 일부분에 대해서 함수 종속성이 있는 non-prime attribute가 없어야한다.

 -  다시말해 여러개의 부분함수 종속성을 제거해주는 것을 2NF라고 한다.

 

  • 3NF

  - 2NF를 만족하고 테이블 내에 모든 attribute들이 PK에 대해서만 함수 종속성을 가져야한다.

  - 다시 말해서 PK로 부터 이행적 함수 종속이 되는 것들을 지워주는 것을 3NF라고 한다.

 

 

 

비정규화 (Denormalization)

 - 정규화가 되었을 때, join을 사용해서 table들을 합치는 연산들 때문에 속도가 많이 늦어질 수 있기 때문에 의도하여 정규화 규칙을 지키지 않는 것을 의미한다.

 

 

 

728x90
반응형
LIST

'데이터베이스' 카테고리의 다른 글

물리적 모델링  (0) 2023.08.22
논리적 모델링  (0) 2023.08.21
데이터 모델링의 개념  (0) 2023.08.21