이상, 함수적 종속

1

정보처리기사

목록 보기
39/100

이상(Anomalies)과 함수적 종속(Functional Dependency)


1. 이상 (Anomalies)

정의

  • 관계형 데이터베이스에서 데이터 중복과 불필요한 종속성으로 인해 테이블 조작 시 발생하는 비정상적인 현상.
  • 데이터의 삽입, 삭제, 갱신 중 특정 작업에서 문제가 발생.

이상의 종류

  1. 삽입 이상 (Insertion Anomaly)

    • 문제: 새로운 데이터를 삽입할 때 불필요하거나 알 수 없는 값을 추가해야 하는 경우.
    • 예시:
      수강 테이블에서 학번과 과목 번호가 기본키일 때, 새로운 학생 정보를 추가하려면 과목 번호를 알지 못하면 데이터를 삽입할 수 없음.
  2. 삭제 이상 (Deletion Anomaly)

    • 문제: 특정 데이터를 삭제하면 관련 없는 중요한 정보도 함께 삭제되는 경우.
    • 예시:
      특정 과목에 대한 수강 기록을 삭제할 때, 해당 학생의 학년 정보도 함께 삭제됨.
  3. 갱신 이상 (Update Anomaly)

    • 문제: 데이터를 갱신할 때 중복된 데이터의 일부만 갱신되어 데이터 불일치가 발생하는 경우.
    • 예시:
      수강 테이블에서 학번 400번 학생의 학년을 3학년으로 변경할 때, 일부 튜플만 변경되어 정보가 불일치함.

이상의 해결 방법

  • 정규화(Normalization): 테이블을 작은 논리적 단위로 분리하여 데이터 중복과 종속성을 줄이는 과정.

2. 함수적 종속 (Functional Dependency)

정의

  • 하나의 속성 값이 다른 속성 값을 고유하게 결정할 수 있는 관계.
  • 표기법:
    X → Y
    • X: 결정자(Determinant)
    • Y: 종속자(Dependent)

특징

  • X의 값이 고유하다면 Y의 값도 항상 고유하게 결정됨.
  • 결정자: 데이터를 결정하는 속성(또는 속성 집합).
  • 종속자: 결정자의 값에 의해 결정되는 속성(또는 속성 집합).

예제

  • 학생 테이블

    학번 → 이름, 학년, 학과
    • 학번(결정자) 하나로 이름, 학년, 학과(종속자)를 결정할 수 있음.
  • 수강 테이블

    학번, 과목 번호 → 성적
    학번 → 학년
    • 학번과 과목 번호를 결합해야 성적을 고유하게 결정 가능(완전 함수적 종속).
    • 학번 하나로 학년은 결정 가능(부분 함수적 종속).

3. 함수적 종속의 종류

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

  • 기본키 전체를 사용해야만 종속자를 고유하게 결정 가능.
  • 예시:
    학번, 과목 번호 → 성적
    • 성적을 고유하게 결정하려면 학번과 과목 번호 둘 다 필요.

2. 부분 함수적 종속 (Partial Functional Dependency)

  • 기본키의 일부 속성만으로도 종속자를 결정 가능.
  • 예시:
    학번 → 학년
    • 기본키(학번, 과목 번호) 중 학번만으로 학년을 고유하게 결정 가능.

4. 이상과 함수적 종속의 관계

이상의 발생 원인

  • 데이터의 불필요한 중복과 비정규형 구조로 인해 함수적 종속 관계가 제대로 유지되지 않음.

이상의 해결

  • 함수적 종속 관계를 바탕으로 테이블을 분리(정규화)하여 이상을 방지.
  • 데이터 무결성을 유지하면서 효율적으로 데이터를 관리.

5. 다음 단계: 정규화

  • 이상을 해결하기 위해 테이블을 분리하는 정규화 과정에서 함수적 종속의 개념은 핵심.
  • 목표: 데이터 중복을 최소화하고 무결성을 유지.

핵심 요약

  1. 이상: 데이터 중복으로 인해 발생하는 삽입, 삭제, 갱신의 비정상적 현상.
  2. 함수적 종속: 특정 속성이 다른 속성을 고유하게 결정하는 관계.
  3. 정규화: 이상을 제거하고 함수적 종속을 유지하기 위한 테이블 분리 과정.

다음 시간에는 정규화의 단계를 통해 테이블 구조를 개선하는 방법을 배울 것입니다.

0개의 댓글