ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 베이스의 논리적 설계
    정보처리기사/데이터베이스 2023. 7. 3. 20:58

    논리적 설계의 주요 키워드 함수적 종속,정규화,이상현상

     

    1.함수적 종속(Functional Dependency)

    종속(從屬) 따를 속할

    따르는곳에 속해있다. 즉 지배되어 있는 관계라고 볼 수 있다.

    기호로 표현하면 X → Y로 표현할 수 있다.

    X는 결정자 Y는 종속자 라고 표현한다.

    Y는 X에 종속되어 있으며, Y는 X를 따르고 있다. = Y는 X에 의해 결정된다.

     

    함수적 종속의 종류

    1️⃣완전 함수적 종속(Full Functional Dependency)

    속성집합 Y가 속성집합 X전체에 대해서만 함수적으로 종속된 경우를 말한다. 

     

    <회원>

    회원 번호 이름 나이 주소
    20231111 김사과 20 서울
    20232222 김바나나 20 서울
    20233333 김귤 20 서울

    회원번호 → (이름,나이,주소)

    회원번호를 알면 이름과 나이,주소를 알 수 있으므로 완전함수 종속이라고 할 수 있다.

     

    회원번호 강의번호 평점 진도율
    20231111 GANG121 5 70%
    20232222 GANG122 4 80%
    20233333 GANG123 1 90%

    기본키가 두 개(복합키)일 때 완전 함수종속은 다음과 같다.

    (회원번호, 강의번호) → 평점

    (회원번호, 강의번호) → 진도율

    회원 번호와 수강번호를 알아야 해당 회원의 평점과 진도율을 알 수 있다.

     

    2️⃣부분 함수적 종속성(Partial Functional Dependency)

    전체가 아닌 일부분에도 함수적으로 종속되는것을 말한다.

    회원번호 강의번호 평점 진도율 이름
    20231111 GANG121 5 70% 김사과
    20232222 GANG122 4 80% 김바나나
    20233333 GANG123 1 90% 김귤

    (회원번호,강의번호) → 평점

    (회원번호,강의번호) → 진도율

    (회원번호,강의번호) → 이름

    (회원번호) → 이름

    이런 복합키에서 회원번호만으로도 이름을 알 수 있으므로 복합키의 일부분인 회원번호에 종속되어있다.

    이럴때 부분함수적 종속이라고 한다.

     

    3️⃣이행적 함수 종속(Transitive Functional Dependency)

    X → Y , Y→Z 이러한 종속 관계가 있다면, X → Z가 성립하는 경우 이행적 함수 종속이라고 한다.

    회원번호 주민번호 이름
    20231111 901023 김사과
    20232222 000823 김바나나
    20233333 940723 김귤

    X → Y = 회원번호 → 주민번호

    Y → Z = 주민번호 → 이름

    X → Z = 회원번호 → 이름

    이행적 함수 종속이 발생

     

     

    2.정규화

    정규화의 개념

    • 관계형 데이터베이스에서 중복을 최소화하기 위해 데이터를 구조화
    • 이상현상을 최소화 하기 위해 수행

    이상(Anomaly)현상 이란?

    데이터 중복으로 인해 발생할 수 있는 예상하지 못한 상황

    • 삽입 이상 : 데이터 삽입시 불필요한 데이터가 함께 삽입되는 현상
    • 삭제 이상 : 데이터 삭제시 원치않는 데이터가 삭제되는 현상
    • 갱신 이상 : 데이터 갱신시 일부 튜플만 갱신되어 데이터의 모순이 발생하는 현상

    정규화의 단계

    비정규 릴레이션 → 1NF → 2NF → 3NF → BCNF →4NF → 5NF

    대부분 3NF가 되었으면 정규화 되었다고 표현한다.

    1️⃣1NF

    도메인은 원자값으로 구성된다.

    취미에 여러개의 값을 가진 튜플을 하나의 값을 갖도록 취미 테이블을 만든다. 

     

    2️⃣2NF

    부분 함수적 종속을 제거하고 완전 함수적 종속으로 만든다.

    회원번호 강의번호 평점 진도율 이름
    20231111 GANG121 5 70% 김사과
    20232222 GANG122 4 80% 김바나나
    20233333 GANG123 1 90% 김귤

    (회원번호,강의번호) → 평점

    (회원번호,강의번호) → 진도율

    (회원번호,강의번호) → 이름

    (회원번호) → 이름

    회원번호와 이름 컬럼을 따로 테이블로 구성해 줘야 한다.

    회원번호 이름
    20231111 김사과
    20232222 김바나나
    20233333 김귤
    회원번호 강의번호 평점 진도율
    20231111 GANG121 5 70%
    20232222 GANG122 4 80%
    20233333 GANG123 1 90%

     

    3️⃣3NF

    이행적 함수 종속을 제거한다.

    회원번호 주민번호 이름
    20231111 901023 김사과
    20232222 000823 김바나나
    20233333 940723 김귤

    X → Y = 회원번호 → 주민번호

    Y → Z = 주민번호 → 이름

    X → Z = 회원번호 → 이름

    이행적 함수 종속을 제거하기 위해 [X,Y] [Y,Z]로 테이블을 나눈다.

    회원번호 주민번호
    20231111 9010123
    20232222 000823
    20233333 940723
    주민번호 이름
    901012 김사과
    000823 김바나나
    940723 김귤

     

    4️⃣BCNF(Boyce-codd Normal Form)

    결정자이면서 후보키가 아닌 것 제거

    5️⃣4NF

    다치 종속 제거

    6️⃣5NF

    조인 종속 제거

Designed by Tistory.