RDBMS 의 정규화

도윤·2024년 1월 9일

RDBMS 의 정규화는 데이터를 효율적으로 구조화하여 중복을 최소화하고 데이터 무결성을 유지하는 방식입니다.

-> 데이터의 무결성이란 데이터의 정확성 , 일관성, 유효성이 유지되는 상태를 의미합니다.

  • 정규화는 데이터베이스 설계에서 중복된 정보를 최소화하고 데이터의 일관성을 제고(노력,유지) 하기 위해 사용
  • 주로 이상현상을 방지하고 데이터를 더욱 효과적으로 관리하기 우해 적용.

-> 단점 : 정규화를 지킬수록 테이블 개수가 많아짐, 쿼리문이 복잡해짐, 시간이 오래걸림, 관계를 파악하기 오래걸림

정규화의 주요 목표 -> 중복제거, 삽입이상방지, 갱신이상방지, 삭제이상방지

  • 제 1 정규형 (1NF):
    각 컬럼은 원자 값(Atomic Value)을 갖는다.
    즉, 각 셀은 하나의 값만을 가지며, 다중 값은 허용되지 않는다.

  • 제 2 정규형 (2NF):
    모든 비주요 속성이 기본 키에 대해 완전 함수 종속성을 가져야 한다.
    즉, 기본 키의 일부 속성이 아닌 나머지 속성들은 기본 키 전체에 종속되어야 한다.

  • 제 3 정규형 (3NF):
    테이블 내의 모든 컬럼이 기본 키에 대해 이행적 종속성을 갖지 않아야 한다.
    즉, 어떤 비주요 속성도 다른 비주요 속성에 종속되지 않아야 한다.

  • BCNF (Boyce-Codd 정규형):
    모든 결정자가 후보키이어야 한다.
    기본 키에 대해 함수적 종속성을 가진 모든 속성이 기본 키여야 한다.

중복 데이터 제거:

정규화는 중복을 최소화하여 데이터를 보다 효율적으로 저장하고 관리한다.
이로써 데이터의 일관성을 유지하고 검색, 갱신 등의 연산을 효율적으로 수행할 수 있다.

데이터 무결성 보장:

정규화는 데이터의 무결성을 높이는데 도움을 준다. 이상현상을 방지하고 삽입, 갱신, 삭제와 같은
연산에 따른 문제를 최소화하여 데이터의 정확성을 유지한다.

"데이터 조작이 안전하다"는 말은 데이터베이스에서 수행되는 다양한 조작(추가, 갱신, 삭제)이 데이터의 무결성을 유지하고 깨뜨리지 않는다는 것을 의미합니다. 무결성은 데이터의 정확성과 일관성을 보장하는 개념으로, 예상하지 않은 오류나 불일치가 발생하지 않도록 하는 것을 의미합니다.

데이터가 많을 수록 정규화되는게 좀 유리하다(무조건은 아님)

profile
기록은 기억을 이긴다⭐

0개의 댓글