서버 개발/데이터베이스 일반

RDBMS의 정규화 단계

지노윈 2025. 3. 28. 23:43

 

정규화는 데이터베이스 설계 시 중복을 최소화하고 데이터 무결성을 보장하기 위한 과정입니다.

 

제1정규화(1NF)

핵심: 모든 속성이 원자값(atomic value)을 가져야 함

설명: 하나의 셀에는 하나의 값만 존재해야 합니다.

예시:

  • 비정규화: 학생(학번, 이름, 수강과목)
    • 레코드 1 : (1001, 김철수, '수학, 영어, 과학')
  • 1NF: 학생(학번, 이름, 수강과목)
    • 레코드1: (1001, 김철수, 수학)
    • 레코드2: (1001, 김철수, 영어)
    • 레코드3: (1001, 김철수, 과학)

제2정규화(2NF)

핵심: 1NF를 만족하며, 부분 함수 종속성을 제거

설명: 기본키가 복합키일 때, 일부 컬럼이 기본키의 일부에만 종속되는 경우를 제거합니다.

예시:

  • 1NF: 수강정보(학번, 과목코드, 학생이름, 과목명, 성적)
    • 여기서 기본키는 (학번, 과목코드)
  • 2NF:
    • 학생(학번, 학생이름)
    • 과목(과목코드, 과목명)
    • 수강(학번, 과목코드, 성적)

제3정규화(3NF)

핵심: 2NF를 만족하며, 이행적 종속성을 제거

설명: 기본키가 아닌 컬럼이 다른 비기본키 컬럼에 종속되는 경우를 제거합니다.

예시:

  • 2NF: 학생(학번, 학생이름, 학과코드, 학과명, 학과장)
    • 학과명과 학과장은 학과코드에 종속
  • 3NF:
    • 학생(학번, 학생이름, 학과코드)
    • 학과(학과코드, 학과명, 학과장)

각 정규화 단계를 거치면서 데이터의 중복이 줄어들고, 데이터 관리가 더 용이해집니다.

 
 

 

 
반응형

'서버 개발 > 데이터베이스 일반' 카테고리의 다른 글

[MSSQL] 데이터 저장 구조  (0) 2020.05.03
Nested Loops/Sort Merge/Hash Join  (0) 2020.05.01
OLTP, OLAP, DW  (0) 2020.03.25
SQL의 분류 DML/DDL/DCL/TCL  (0) 2020.03.25