ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1080) N
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (184)
      • Unreal (69)
      • Unity (104)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (238) N
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (58) N
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (351) N
      • C++ (168)
      • C# (90)
      • Java (9)
      • Python (35) N
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (20)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • string
  • 유니티
  • 언리얼
  • c#
  • 알고리즘
  • 백준
  • 포인터
  • 파이썬
  • 함수
  • C++
  • Unity
  • 그래픽스
  • 문자열
  • 오블완
  • python
  • 배열
  • SQL
  • 티스토리챌린지
  • C
  • 클래스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

CS/데이터베이스

함수적 종속 (Functional Dependency)

2024. 7. 25. 23:25

개념

함수적 종속이란 어떤 릴레이션 R이 있을때 X와 Y를 각각 속성의 부분집합이라고 가정해보자. 여기서 X의 값을 알면 Y의 값을 바로 식별할 수 있고, X의 값에 Y의 값이 달라질 때, Y는 X에 함수적 종속이라고 한다. 이 경우 X를 결정자, Y를 종속자라고 한다. 이를 기호로 표현하면 X→Y이다. 이런 함수적 종속관계에는 완전 함수적 종속과 부분 함수적 종속 및 이행적 함수 종속이 있다.

 

이 릴레이션에서는 '학번'을 알면 '이름', '나이', '성별' 속성을 식별할 수 있으며, '힉번'이 다르면 그에따른 값도 다르다. 따라서 '이름', '나이', '성별' 속성은 '힉번'에 함수적인 종속관계다. 같은 이유로 전공 속성또한 '전공코드'에 함수적인 종속관계에 있다.

학번→이름, 학번→나이, 학번→성별

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

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

 

이 릴레이션에서는 기본키가 '회원번호' 속성으로 구성되어 있다. 여기서 '이름', '나이', '거주지역' 속성은 기본키인 '회원번호'을 알아야 식별 가능하다. 따라서 '이름', '나이', '거주지역'은 '회원번호'에 완전 함수 종속된 관계다.

 

해당 릴레에션의 기본키는 '고객ID'와 '상품코드' 속성으로 구성되어 있다. 여기서 '수량' 속성은 기본키를 구성하는 '고객ID', '상품코드' 속성을 모두 알아야 식별할 수 있다. 따라서 '수량'은 완전 함수 종속된 관계다.

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

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

 

기본키가 '고객ID'와 '상품코드' 속성으로 구성된 릴레이션에서 '주문상품'은 기본키 중 '상품코드'만 알아도 식별할 수 있다. 이 경우에는 '주문상품' 속성은 기본키에 부분 함수 종속된 관계다.

3) 이행적 함수 종속 (Transitive Functional Dependecy)

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

 

이 릴레이션에서 '상품번호'를 알면 '소분류'를 알 수 있고, '소분류'을 알면 '대분류'도 알 수 있다. 따라서 '상품번호'를 알면 '대분류'를 알 수 있으므로 이행적 함수 종속 관계다. 이때, 대분류는 소분류에 의해 관계되는 항목이지만, 상품번호를 통해 귀속되어 있다. 따라서 이런 관계를 이행적 함수 종속이라고 한다

 

출처

저작자표시 (새창열림)

'CS > 데이터베이스' 카테고리의 다른 글

NOSQL (개념, 특징, 장단점, RDBMS와의 차이점, 모델, 종류)  (0) 2024.08.27
데이터 웨어하우스(DW)란?  (0) 2024.08.16
데이터 모델링의 이해  (0) 2024.08.15
데이터 테이블의 종류 및 특성  (0) 2024.08.11
[DB] 데이터 딕셔너리  (0) 2024.08.05
    'CS/데이터베이스' 카테고리의 다른 글
    • 데이터 웨어하우스(DW)란?
    • 데이터 모델링의 이해
    • 데이터 테이블의 종류 및 특성
    • [DB] 데이터 딕셔너리
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바