STUDY

SECTION 4.2 ERD와 정규화 과정

Lim임 2026. 3. 10. 13:24

데이터베이스 정리

SECTION 4.2 ERD와 정규화 과정

4.2.1 ERD란?

  • ERD(Entity Relationship Diagram): 데이터베이스를 설계할 때 릴레이션 간의 관계를 정의한 설계
  • 시스템 요구 사항을 기반으로 작성되며, 이후 디버깅·프로세스 재설계 시 설계도 역할
  • 장점: 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유용
  • 단점: *비정형 데이터(미리 정의된 구조가 없는 데이터)를 표현하는 데 한계가 있음
  • *비정형데이터: 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보

4.2.3 정규화 과정

잘못된 종속 관계로 인한 데이터베이스 이상 현상을 해결하고 저장 공간을 효율화하기 위해 릴레이션을 분리하는 과정


데이터베이스 이상 현상 예시

  • 한 회원이 한 개의 등급을 가져야하는데 여러 등급을 가짐
  • 삭제 시 필요한 데이터까지 같이 삭제
  • 삽입 시 특정 필드가 NULL이 되어 삽입 불가

정규형 원칙

  • 자료의 중복 감소
  • 독립적 관계는 별개의 릴레이션으로 표현
  • 각 릴레이션은 독립적으로 표현 가능해야 함

제1정규형 (1NF)

    • 모든 속성이 원자 값(atomic value) 으로 구성
    • 반복 집합 제거 (예: 수강명 여러 개 → 행을 나눔)

제2정규형 (2NF)

  • 1NF를 만족 + 부분 함수 종속 제거
  • 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속이어야 함

  • 릴레이션 분해 시 정보 손실이 발생하지 않는 무손실 분해 필수

제3정규형 (3NF)

  • 2NF를 만족 + 이행적 함수 종속 제거
  • 이행적 함수 종속: A→B, B→C이면 A→C가 성립 → 이 경우 C를 분리

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

  • 3NF를 만족 + 모든 *결정자가 후보키인 상태
  • *결정자: 'X->Y'일 때 X는 결정자, Y는 종속자
  • 결정자이지만 후보키가 아닌 속성이 있다면 해당 릴레이션을 분해

 

주의: 정규화가 무조건 성능을 향상시키지는 않습니다. 테이블이 분리되면 JOIN이 증가해 오히려 느려질 수 있으므로, 서비스 특성에 따라 정규화 vs 비정규화를 선택해야 합니다.


'STUDY' 카테고리의 다른 글

SECTION 4.4 데이터베이스의 종류  (0) 2026.03.18
SECTION 4.3 트랜잭션과 무결성  (0) 2026.03.10
코드 리팩토링 - 멘토님의 조언을 적용해보자  (0) 2026.02.12
데이터베이스  (0) 2026.02.09
CPU 스케줄링 알고리즘  (0) 2026.02.09