[cs 스터디] 4-2. ERD와 정규화 과정

YooJeeun·2025년 1월 13일

cs 스터디

목록 보기
42/65

ERD(Entity Relationship Diagram): 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할. 릴레이션 간의 관계를 정의한 것

정규화 과정

정규화란 릴레이션 간 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정이다.

데이터베이스 이상현상
: 테이블 설계가 비효율적이거나 정규화가 제대로 이루어지지 않았을 때 발생하는 데이터의 불일치나 예상치 못한 동작이다.
대표적인 이상현상 - 삽입 이상, 갱신 이상, 삭제 이상

정규화 과정

  • 기본 정규화: 제1정규형, 제2정규형, 제3정규형, 보이스/코드 정규형
  • 고급 정규화: 제4정규형, 제5정규형

정규형 원칙

: 정규형의 원칙이란 같은 의미를 표현하는 릴레이션이지만
좀 더 좋은 구조로 만들어야하고,
자료의 중복성감소해야 하고,
독립적인 관계별개의 릴레이션으로 표현해야 하고,
각각의 릴레이션은 독립적인 표현가능해야하는 것이다.

제1정규형

: 릴레이션의 모든 도메인이 더 이상 분해될 수 없는 원자 값(atomic value)만으로 구성되어야 한다.

제2정규형

: 릴레이션이 제1정규형이며 부분 함수 종속성을 제거한 형태

부분 함수의 종속성제거
: 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인 것

릴레이션을 분해할 때 동등한 릴레이션으로 분해해야 하고, 정보 손실이 발생하지 않는 무손실 분해로 분해되어야 한다.

제3정규형

: 릴레이션이 제2정규형이며 기본키가 아닌 모든 속성이 이행적 함수 종속(transitive FD)을만족하지 않는 상태

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

보이스/코드 정규형

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

결정자
: 함수 종속 관계에서 특정 종속자(dependent)를 결정짓는 요소
'X → Y'일 떄 X는 결정자, Y는 종속자


정규화 과정을 거쳐 테이블을 나누어도 성능이 좋아질수도 나빠질수도 있다.
테이블을 나누게 되면 조인을 해야하는 경우도 발생해 오히려 느려질 수도 있기 때문에 서비스에 따라 정규화와 비정규화 과정을 진행해야 한다.

profile
제니벨로그

0개의 댓글