ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 정규형 (1NF, 2NF, 3NF, BCNF)
    SQL 2023. 1. 7. 14:32

    데이터 정규화

    -attribute간의 종속 관계를 분석, 여러개의 릴레이션으로 나눔

    -데이터 중복으로 인한 일관성 훼손을 방지

     

    정규형

    -정규화의 정도를 나타내는 용어

     

    학생과 과목, 교수를 하나의 테이블로 표현 = 데이터의 중복이 발생

    -> 수정 이상 발생 가능

     

    수정 이상

    1)갱신 이상 - 중복된 데이터의 일부만 수정하여 일관성 훼손

    2)삽입 이상 - 하나의 레코드에 여러 주제 -> 입력할 데이터가 없는 경우가 존재 (ex-담당 교수가 없는 학생)

    3)삭제 이상 - 하나의 레코드에 여러 주제 -> 필요 이상의 데이터가 삭제

    (ex- a과목을 듣는 유일한 학생이 퇴학 -> 과목 정보도 같이 삭제)

     

    위 테이블을 위와 같이 쪼개면 효율적

     

     

     

     

    제 1 정규형 (1NF)

    관계형 모델의 릴레이션의 속성은 모두 원자값

    (관계형 모델이면 1NF)

     

     

     

     

     

    제 2 정규형 (2NF)

    키에 속하지 않는 모든 attribute가 키에 완전 함수 종속

     

     

    함수적 종속성 ( X -> Y )

    X가 Y를 결정 = X값을 알면 Y 값을 알 수 있음

     

    ( X - A ) -> Y인 A값이 존재하면 부분 함수 종속,

    A값이 존재하지 않으면 완전 함수 종속

     

     

    key = {학번, 과목번호}

    여기서 학번 -> 이름과 같이 key의 일부가 다른 attribute를 결정하므로 2NF가 아님

    "학번"이 key인 학생 테이블과 "과목 번호"가 key인 과목 테이블

    그리고 학번과 과목번호로 학점을 결정하는 학점 테이블

    이 3가지로 나누면 제 2정규형을 만족

     

     

     

     

     

    제 3 정규형 (3NF) 

    키가 아닌 모든 attribute들은 기본 키에 이행적 종속되지 않음

     

    A->B이고 B->C면 A->B->C

    C는 A에 이행적 종속

     

    과목 번호가 다른 모든 값들을 결정하는데,

    교수 번호도 교수 이름과 연구실을 결정하므로

    과목 테이블과 교수 테이블을 분리

     

     

    BCNF

    릴레이션의 모든 결정자가 후보키

    Area와 Area가 결정하는 County_name을 따로 분리하면 BCNF 만족

     

     

     

    분할의 2가지 조건

    1)무손실 조인 분할

    분할된 테이블들은 다시 조인했을때 원래 테이블이 나와야 함 (필수조건)

     

    2)종속 유지 부할

    테이블의 원래 함수적 종속을 최대한 지니도록 분할 (권장사항)

     

     

     

    https://rebro.kr/160

     

    [DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)

    [목차] 1. 제1 정규형 2. 제2 정규형 3. 제3 정규형 4. BCNF 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은

    rebro.kr

    각 정규형의 부족한 점을 잘 설명해주는 글

    'SQL' 카테고리의 다른 글

    SQL - DML, DDL, DCL  (0) 2023.10.05
    SQL - 내장함수  (0) 2023.02.21
    SQL - JOIN  (0) 2023.02.21
    SQL - SELECT  (0) 2023.02.21
    관계대수 ( Relational Algebra )  (0) 2023.01.07
Designed by Tistory.