본문 바로가기

cs(with 매일메일)

[260101목] 데이터베이스 정규화에 대해서 설명해주세요.

데이터베이스 정규화는 테이블을 정리하여 중복 테이블을 최소화하고, 데이터 무결성을 보장하는 과정을 말한다.

이를 통해 데이터 저장 용량을 줄이고, 삽입/갱신/삭제 이상 현상을 해결할 수 있다.

정규화는 여러 단계가 존재하며, 대표적으로 1정규화, 2정규화, 3정규화 등이 있다.

 

1 정규화 : 테이블 컬럼 값이 원자값을 가지도록 정리하는 것이다.

2 정규화 : 1 정규화를 진행한 테이블에서 완전 함수 종속을 만족할 수 있도록 테이블을 분해하는 것이다. 

3 정규화 : 2 정규화를 진행한 테이블에서 이행적 종속을 제거하기 위해 테이블을 분해하는 것이다. 

BCNF : 3정규화를 진행한 테이블의 모든 결정자가 반드시 후보자가 될 수 있도록 테이블을 분해하는 것이다. 

 

역정규화란, 정규화된 데이터베이스에서 쓰기 성능을 희생하고 읽기 성능을 향상하기 위해 사용되는 전략이다. 예를 들어, 전체 게시글의 수나 좋아요의 수를 계산해 특정 컬럼에 저장해서 읽기 성능을 향상 시킬 수 있다.