본문 바로가기

개인 공부/기술 면접

[ #3 ] RDBMS의 정규화에 대해 설명해주세요

키워드 : 중복데이터, 무결성

 

정규화는 관계형 데이터베이스의 설계에서 데이터를 중복 없이 효율적으로 저장하기 위한 과정입니다
이를 통해 데이터베이스의 구조가 불필요한 중복을 최소화하고 데이터의 무결성을 유지할 수 있게 됩니다
그러나 정규화는 데이터베이스의 구조를 복잡하게 만들 수 있어 성능과 유지보수성을 고려하여 적절한 정규화 수준을 선택하는 것이 중요합니다
정규화는 1 정규화 ~ 6 정규화 까지 여러 과정이 존재하지만, 실제로 보통 1 ~ 3 정규화까지의 과정을 거치게 된다고 합니다.

제1 정규화란 테이블의 모든 열에는 원자값만 포함되어야 합니다
제2 정규화란 부분적 종속성을 제거하는데 초점을 맞춥니다.
부분적 종속성이란 기본 키가 아닌 부분집합의 열이 기본 키에 종속되는 경우를 말합니다.
제3 정규화란 제2 정규화를 진행한 테이블에 대해 이행적 종속성을 제거하는데 초점을 맞춥니다.
BCNF 정규화란 제3 정규화를 진행한 테이블에 대해 모든 결정자가 후보 키인 상태를 말합니다.

 


무결성 : 데이터의 정확성, 일관성, 유효성이 유지되는 것
정확성이란 중복이나 누락이 없는 상태,
일관성은 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태,
유효성은 사용자로 부터 값을 입력받을 때 정확한 값만 입력되도록 할 때 유용한 기능