본문 바로가기
DBMS/데이터베이스

[데이터베이스] 표준화 명세서와 정규화 과정

by 클레어몬트 2025. 2. 5.

 
 
1. 데이터 표준화 명세서 예시
 
(명명 규칙)

  • 테이블 명: 복수형 사용 (students, subjects, professors, enrollments)
  • 컬럼 명: 소문자 및 스네이크 케이스 사용 (student_id, course_code, professor_id 등)
  • 데이터 타입: 일관된 데이터 타입 사용 (VARCHAR, INT, FLOAT 등)
  • 키 명: id 사용

 
(표준 컬럼 정의)

컬럼명데이터 타입설명
student_idINT학번 (기본키)
student_nameVARCHAR학생 이름
majorVARCHAR전공
subject_idVARCHAR과목 코드 (기본키)
subject_nameVARCHAR과목 이름
gradeFLOAT학점
professor_idVARCHAR교수 ID (기본키)
professor_nameVARCHAR교수 이름

 
 
 
데이터베이스 정규화란? 
RDB에서 중복 데이터를 최소화하고 논리적 일관성을 유지하기 위해 테이블의 구조를 체계적으로 분해하는 과정
 
1정규형(1NF)

  • 테이블에 중복된 컬럼이나 복합 속성을 허용하지 않는 형태
  • 모든 속성이 원자값(Atomic Value)을 가져야 한다

2정규형(2NF)

  • 1정규형을 만족하고, 부분 함수 종속(Partial Dependency)을 제거한 형태
  • 즉, 기본 키의 일부분에만 종속되는 컬럼이 없도록 분해한다

3정규형(3NF)

  • 2정규형을 만족하고, 이행적 함수 종속(Transitive Dependency)을 제거한 형태
  • 기본 키가 아닌 컬럼들이 다른 기본 키가 아닌 컬럼에 종속되지 않도록 한다

BCNF(Boyce-Codd Normal Form)

  • 3정규형보다 더 엄격한 형태
  • 모든 결정자(Determinant)가 후보 키가 되도록 하여, 이상 현상을 최소화한다

4정규형(4NF)

  • 다중값 종속(다치 종속)이 존재하지 않도록 설계한 형태
  • 하나의 테이블이 서로 독립적인 다중 관계를 동시에 관리하지 않도록 분리한다

 
2. 데이터베이스 정규화 예시 - 5가지 중 2가지 적용
 
① 제2 정규형 (2NF) : 부분 종속성 제거
학생 정보 (학번, 학생이름, 전공)을 별도 테이블로 분리

 
 
과목 정보 (과목코드, 과목명, 학점)을 별도 테이블로 분리

 
 
 제3 정규형 (3NF) : 이행적 종속성 제거
교수 정보를 별도 테이블로 분리하여 과목-교수 관계를 정리

 
 
 
(ERD)