[TIL] RDBMS의 정규화

sooyoung choi·2024년 1월 17일
0

CS

목록 보기
8/21
post-thumbnail

RDBMS 정규화?

  • 중복성을 줄이고 데이터 무결성을 향상시키기 위해 관계형 데이터베이스 내에서 데이터를 구성하고 구조화하는 프로세스
  • 정규화의 주요 목표는 중복된 데이터로 인해 발생할 수 있는 삽입, 업데이트, 삭제 이상 등의 데이터 이상을 제거하는 것
  • 정규화 규칙을 준수함으로써 효율적이고 유지 관리가 쉽고 데이터 불일치가 덜 발생하는 데이터베이스 구조를 만들 수 있다.


1. 중복 데이터 제거

1) 중복 감소

  • 정규화에는 더 큰 테이블을 더 작은 관련 테이블로 나누고 중복 정보를 최소화하는 방식으로 데이터를 저장하는 작업이 포함된다.

2) 데이터 중복 방지

  • 데이터를 정규화된 형식으로 저장하면 각 정보가 한 곳에만 저장되므로 불일치 가능성이 줄어들고 유지 관리 및 업데이트가 더 쉬워진다.

2. 데이터 무결성 보장

1) 이상 방지

  • 정규화는 데이터가 제대로 구성되지 않을 때 발생할 수 있는 삽입 이상, 업데이트 이상, 삭제 이상 등 다양한 유형의 이상을 방지하는 데 도움이 된다.

2) 일관성 유지

  • 정규화된 데이터베이스를 사용하면 데이터 변경 시 오류가 발생할 가능성이 낮아지고 데이터베이스는 다양한 레코드와 테이블에서 일관성을 유지할 가능성이 더 높다.

3) 정규화 수준

  • 정규화는 일반적으로 여러 정규형(NF)으로 나누어지며, 각 정규화는 이전 정규형의 규칙을 기반으로 한다.

일반적인 정규형

  • 첫 번째 정규형(1NF): 각 열에 원자(분할할 수 없는) 값이 포함되어 있고 반복되는 열 그룹이 없는지 확인한다.
  • 두 번째 정규형(2NF): 1NF를 기반으로 하고 부분 종속성을 제거하여 키가 아닌 속성이 기본 키에 완전히 기능적으로 종속되도록 보장한다.
  • 제3정규형(3NF): 2NF를 기반으로 전이적 종속성을 제거하여 키가 아닌 속성이 다른 키가 아닌 속성에 종속되지 않도록 한다.
  • BCNF(Boyce-Codd Normal Form) 및 4NF(Fourth Normal Form)와 같은 상위 정규형은 더 복잡한 시나리오와 종속성을 처리한다.

0개의 댓글