본문 바로가기

CS/DB

[DB 스터디 4주차] 이상현상, 함수적 종속성, 정규화

목차

    📌  Index

    Q) 이상 현상이 뭘까요?

    이상 현상

    • 테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류
    • 갱신이상, 삽입이상, 삭제이상으로 구성됨

    Q) 삽입 이상(Insertion Anomaly)에 대해서 설명해주세요.

    삽입 이상

    • 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가가 가능한 현상

    Q) 갱신 이상(Update Anomaly)에 대해서 설명해주세요.

    갱신 이상

    • 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상

    Q) 삭제 이상(Deletion Anomaly)에 대해서 설명해주세요.

    삭제 이상

    • 어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되어버리는 현상

    Q) 함수 종속성이 무엇인가요?

    함수 종속

    • X -> Y
    • X가 Y를 함수적으로 결정한다 = Y가 X에 함수적으로 종속되어 있다
    • 릴레이션 내의 모든 튜플을 대상으로 하나의  X값에 대한 Y값이 항상 하나인 경우

    Q) 완전 함수적 종속은 뭔가요?

    완전 함수적 종속

    • 종속자가 기본키에만 종속되며, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 모든 속성이 포함된 기본키의 부분집합에 종속된 경우

    Q) 부분 함수적 종속은 뭔가요?

    부분 함수적 종속

    • 릴레이션에서 종속자가이 기본키가 아닌 다른 속성에 종속되거나, 기본키가 여러 속성으로 구성되어 있을경우 기본키를 구성하는 속성 중 일부만 종속되는 경우

    Q) 이행적 함수적 종속은 뭔가요?

    이행적 함수적

    • 릴레이션에서 X, Y, Z라는 3 개의 속성이 있을 때 X→Y, Y→Z 이란 종속 관계가 있을 경우, X→Z가 성립될 때
    • 즉, X를 알면 Y를 알고 그를 통해 Z를 알 수 있는 경우

    Q) 정규화(Normalization)에 대해서 설명해주세요.

    정규화

    • 이상 현상을 제거하기 위해서 릴레이션을 의미 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정
    • 함수적 종속성을 판단하여 정규화를 진행

     

    <정규화 과정>

    Q) 제 1 정규형에 대해서 설명해주세요.

    제1정규형(1NF)

    • 릴레이션의 모든 속성의 도메인이 원자 값만으로 구성되어 있어야 함
    • 제1 정규형만 만족한다면 데이터의 중복으로 인해 이상 현상이 발생할 수 있음
    • 기본키에 완전 함수 종속되지 못한 칼럼이 있다면 갱신, 삭제, 삽입 이상이 일어날 가능성이 있음
    • 부분 함수 종속을 제거 -> 제2 정규형을 만족

    Q) 제 2 정규형에 대해서 설명해주세요.

    제2정규형(2NF)

    • 릴레이션이 제1 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되어야 함
    • 이행적 함수 종속을 제거하도록 릴레이션을 분해 -> 제3 정규형을 만족
      (* 이행적 종속: A->B,B->C가 성립할 때 A->C가 성립되는 함수 종속성)

    Q) 제 3 정규형에 대해서 설명해주세요.

    제3정규형(3NF)

    • 릴레이션이 제2 정규형에 속하고, 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속되지 않아야 함

    Q) BCNF 정규형에 대해서 설명해주세요.

    BCNF 정규형

    • 릴레이션 R에서 함수 종속성 X->Y가 성립할 때 모든 결정자 X가 후보키

    Q) 반정규화에 대해서 설명해주세요.

    반정규화

    • 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
    • 데이터 무결성이 깨질 수 있음

    반정규화 하는 이유

    • 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상될 때
    • 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상될 때

     

    📌  참고자료

    https://dev-coco.tistory.com/63

    https://zz132456zz.tistory.com/36

    https://zz132456zz.tistory.com/37

    https://spidyweb.tistory.com/116