데이터베이스 정규화

YJS·2024년 1월 27일
0

🤓오늘의 공부 주제: 데이터베이스 정규화🤓

Q. 데이터베이스 정규화란 무엇인가?

A. 데이터베이스 설계에서 중복을 최소화하고 데이터의 무결성을 보장하기 위한 과정

데이터베이스의 유연성, 성능, 안정성을 향상시킬 수 있다. 주로 테이블을 적절한 형태로 분해하여 중복을 제거하고, 관계를 명확하게 정의하는 작업을 포함한다.

정규화의 단계

  • 제 1 정규형 (1NF):

각 컬럼이 원자값(Atomic value)을 가지도록 테이블을 구조화. 즉, 테이블의 각 셀에는 하나의 값만 있어야 한다. 이를 위해 중복을 제거하고 별도의 테이블을 생성하거나 관계를 조정한다.

기존 데이터)
제 1 정규화 이후 데이터)

  • 제 2 정규형 (2NF):

부분 함수 종속을 제거. 기본키가 아닌 속성들이 기본키 전체에 종속되도록 테이블을 재구성. 이를 위해 테이블을 쪼개거나 필요한 경우 외래키를 추가하여 관계를 재정의.

기존 데이터)

제 2 정규화 이후 데이터)

  • 제 3 정규형 (3NF):

이행적 함수 종속을 제거. 기본키가 아닌 속성 간에 직접적인 종속 관계가 없도록 테이블을 재구성. 이를 위해 중복을 최소화하고 중복된 속성을 별도의 테이블로 이동하여 관계를 재정의.

제 3 정규화 이후 데이터)

  • 보이스-코드 정규형 (BCNF):

모든 결정자가 후보키이어야 함. 이를 통해 다중 후보키를 가지는 테이블에서 발생할 수 있는 이상현상(Anomaly)을 방지.

이러한 정규화 과정은 데이터베이스의 설계를 개선하고 데이터의 일관성과 무결성을 유지하는 데 중요한 역할을 한다. 그러나 지나치게 정규화된 데이터베이스는 성능 저하와 관리의 어려움을 야기할 수 있으므로 적절한 수준의 정규화가 필요.

profile
우당탕탕 개발 일기

0개의 댓글