💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    정규화 문제 정답 | ✅저자: 이유정(박사)

    📝 문제 1: 고객 주문 관리 시스템
    고객명 전화번호 주문상품1 주문상품2
    홍길동 010-1234-5678 키보드 마우스
    이영희 010-9876-5432 모니터 (비었음)
    ❌ 정규화 전 테이블 (초기 상태)

    1정규형 (1NF) – 반복 컬럼 제거

    2정규형 (2NF) – 부분 종속 제거 "고객명 / 전화번호"는 주문상품과 직접 관계 없음 → 따로 분리

    3정규형 (3NF) – "이행 종속 제거" 만약 주문상품이 특정 카테고리를 가지고 있다면?


    ✅ 정규화 단계별로 나누기

    ◽ 1정규형 (1NF) – 반복 컬럼 제거
    고객명 전화번호 주문상품
    홍길동 010-1234-5678 키보드
    홍길동 010-1234-5678 마우스
    이영희 010-9876-5432 모니터

    ◽ 2정규형 (2NF) – 부분 종속 제거 "고객명 / 전화번호"는 주문상품과 직접 관계 없음 → 따로 분리

    고객(Customer)
    고객ID 고객명 전화번호
    1 홍길동 010-1234-5678
    2 이영희 010-9876-5432
    주문(Order)
    고객ID 주문상품
    1 키보드
    1 마우스
    2 모니터

    ◽ 3정규형 (3NF) – "이행 종속 제거" 만약 주문상품이 특정 카테고리를 가지고 있다면?

    상품명 카테고리
    키보드 주변기기
    마우스 주변기기
    모니터 모니터류
    상품(Product)
    상품명 카테고리
    키보드 주변기기
    마우스 주변기기
    모니터 모니터류
    주문(Order)
    고객ID 상품명
    1 키보드
    1 마우스
    2 모니터

    📝 문제 2: 회사 프로젝트 관리 시스템

    ❌ 정규화 전 테이블 (초기 상태)
    직원명 부서명 참여프로젝트1 참여프로젝트2
    김대리 마케팅부 로고 리뉴얼 홈페이지 개선
    박과장 개발부 앱 개발

    1정규형 (1NF)

    2정규형 (2NF) 부서명은 직원과만 관련 있음 → 분리 필요 3정규형 (3NF) 프로젝트명이 속한 분야가 있다면 → 이행 종속 제거


    ◽ 1정규형 (1NF) 원자값만 허용
    직원명 부서명 프로젝트명
    김대리 마케팅부 로고 리뉴얼
    김대리 마케팅부 홈페이지 개선
    박과장 개발부 앱 개발

    ◽ 2정규형 (2NF) 부분 종속 제거 부서명은 직원과만 관련 있음 → 분리 필요 "프로젝트명과는 상관없는 정보(부서명)는 따로 빼야 해요"

    직원 테이블 Employee 직원 정보를 따로 분리
    직원ID 직원명 부서명
    1 김대리 마케팅부
    2 박과장 개발부
    참여 테이블 Participation
    직원ID 프로젝트명
    1 로고 리뉴얼
    1 홈페이지 개선
    2 앱 개발

    ◽ 3정규형 (3NF) 이행 종속 제거 프로젝트명이 속한 분야가 있다면 → 이행 종속 제거 "직원이 아닌 일반 컬럼에 의존하는 정보도 따로 빼야 해요"
    예: 프로젝트명 → 분야 프로젝트와 분야를 따로 테이블로 만듭니다.

    프로젝트 테이블 Project
    프로젝트명 분야
    로고 리뉴얼 디자인
    홈페이지 개선
    앱 개발 모바일

    최종적으로 3개의 테이블로 구성

    • 직원 정보 테이블 (Employee)
    • 프로젝트 정보 테이블 (Project)
    • 직원 참여 테이블 (Participation)
    TOP
    preload preload