본문 바로가기
Boaz/Computer Science

[CS 전공지식 #13] 챕터4-2. ERD와 정규화 과정

by 남디윤 2025. 2. 24.

 

목차

4.2 ERD와 정규화 과정

4.2.1 ERD의 중요성

4.2.2 예제로 배우는 ERD

4.2.3 정규화 과정

 

 

챕터4. 데이터베이스

 

4.2 ERD와 정규화 과정

  • ERD Entity Relationship Diagram
    • 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할
    • 릴레이션 간의 관계를 정의한 것
    • 서비스 구축 시 가장 먼저 신경 써야 할 부분

 

4.2.1 ERD의 중요성

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

 

4.2.2 예제로 배우는 ERD

  • 영업 부서의 ERD
    • 영업 사원: 0~n명의 고객 관리
    • 고객: 0~n개의 주문
    • 주문: 1~n개의 상품

Image

 

4.2.3 정규화 과정

  • 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상현상 발생 → 해결
  • 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정
    • 데이터베이스 이상 현상:
      • 회원이 한 개의 등급을 가져야 하는데 세 개의 등급을 가짐
      • 삭제할 때 필요한 데이터가 같이 삭제
      • 데이터 삽입 시, 하나의 필드 값이 NULL이 되면 안돼서 삽입하기 어려운 현상
  • 정규형 원칙을 기반으로 정규화
  • 정규화된 정도: 정규형 Normal Form으로 표현
    • 기본 정규형: 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형
    • 고급 정규형: 제4정규형, 제5정규형
  • 정규형 과정을 거쳐 테이블을 나눈다고 해서 성능이 100% 향상되는 것은 아님
    • 조인을 해야하는 경우 발생 → 느려질 수 있음
    • 서비스에 따라 정규화 또는 비정규화 과정 진행 필요
  • 정규형 원칙
    • 같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조
    • 자료의 중복성 감소
    • 독립적인 관계는 별개의 릴레이션으로 표현
    • 각각의 릴레이션은 독립적인 표현 가능
  • 제1정규형
    • 릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값 atomic value만으로 구성됨
    • 릴레이션 속성 값 중에서 한 개의 기본키에 대해 두 개 이상의 값을 가지는 반복 집합 → 제거

Image

  • 제2정규형
    • 릴레이션이 제1정규형, 부분 함수의 종속성을 제거한 형태
    • 부분 함수의 종속성 제거: 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것
    • 릴레이션 분해 시, 동등한 릴레이션으로 분해
    • 정보 손실이 발생하지 않는 무손실 분해

Image

  • 제3정규형
    • 제2정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속을 만족하지 않은 상태
      • 이행적 함수 종속 transitive FD
        • A → B, B→ C 인 경우, 논리적으로 A → C 성립
        • 집합 C가 집합 A에 이행적으로 함수 종속이 되었다고 함
  • 보이스/코드 정규형 BCNF
    • 제3정규형
    • 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관게에서 모든 결정자가 후보키인 상태

Image