본문 바로가기
Book/개발

[면접을 위한 CS 전공지식 노트] 4-2. ERD 와 정규화 과정

by ウリ김영은 2024. 1. 21.

ERD (Entity Relationship Diagram)

데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션 간의 관계들을 정의한 것입니다.

4.2.1 ERD의 중요성

  • ERD는 시스템의 요구 사항을 기반으로 작성되며, ERD를 기반으로 데이터베이스를 구축합니다.
  • 구축 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 합니다.
  • 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용합니다.
  • 비정형 데이터를 충분히 표현할 수 없습니다.

4.2.3 정규화 과정이란?

  • 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 형상이 일어나서 이를 해결하기 위해
  • 저장 공간을 효율적으로 사용하기 위해
    릴레이션을 여러 개로 분리하는 과정입니다.
  • 정규형 원칙을 기반으로 정규형을 만들어 가는 과정

데이터베이스 이상 현상이란?

회원이 한 개의 등급을 가져야 하는데 세 개의 등급을 갖거나 삭제할 때 필요한 데이터가 같이 삭제되고, 데이터를 삽입해야 하는데 하나의 필드값이 NULL이 되면 안 되어서 삽입하기 어려운 현상

정규형 원칙

  • 정규화된 정도는 정규형 Normal Form(NF)로 표현
  • 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 하고, 자료의 중복성은 감소해야 하고, 독립적인 관계는 별개의 릴레이션으로 표현해야 하며, 각각의 릴레이션은 독립적인 표현이 가능해야 하는 것을 말합니다.
  • 기본 정규형(제1정규형,제2정규형,제3정규형), 보이스/코드 정규형, 고급 정규형(제4정규형, 제5정규형)이 있습니다.

제1정규형

  • 릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값(atomic value)민으로 구성되어야 합니다.
  • 릴레이션의 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합이 있어서는 안 됩니다.

제2정규형

  • 릴레이션이 제1정규형입니다.
  • 부분 함수의 종속성을 제거한 형태를 말합니다.
    • 부분 함수의 종속성 제거란? 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것
  • 릴레이션을 분리할 때 주의할 점
    • 동등한 릴레이션으로 분해해야 합니다.
    • 정보 손실이 발생하지 않는 무손실 분해로 분해되어야 합니다.제3정규형
  • 제2정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속(transitive FD)을 만족하지 않는 상태

이행적 함수 종속 transitive FD이란?

A->B, B->C가 존재하면, 논리적으로 A->C가 성립하는데. 이 때 집합C가 집합A에 이행적으로 함수 종속이 되었다고 합니다.

보이스/코드 정규형 (BCNF)

제 3정규형이고, 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태

 

결론

정규화 과정을 거쳐 테이블을 나눈다고 해서 성능이 100% 좋아지는 것은 아닙니다.
테이블을 나누게 되면 어떠한 쿼리는 조인을 해야 하는 경우도 발생해서 오히려 느려질 수도 있습니다.
따라서, 서비스에 따라 정규화 또는 비정규화 과정을 진행해야 합니다.