chapter functional dependencies n.
Download
Skip this Video
Download Presentation
Chapter 11 Functional Dependencies (関数従属性)

Loading in 2 Seconds...

play fullscreen
1 / 42

Chapter 11 Functional Dependencies (関数従属性) - PowerPoint PPT Presentation


  • 185 Views
  • Uploaded on

Chapter 11 Functional Dependencies (関数従属性). 寺田 純子. 11.1 Introduction. 関数従属( Functional Dependencies )とは  ある関係において、属性のある集合から他の集合への多対1の関連 である ※ 以下 FD と略す 図3.8  SP. 11.2 基本的な定義. S #、 P# 、 QTY に関連した納入業者が関連する都市を表す属性 CITY を加えた関係 → SCP 図11.1関係 SCP. 関数従属性の概念. Case a ある時点におけるある関係の値

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chapter 11 Functional Dependencies (関数従属性)' - avon


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
11 1 introduction
11.1Introduction
  • 関数従属(Functional Dependencies)とは

 ある関係において、属性のある集合から他の集合への多対1の関連

である ※以下FDと略す

  • 図3.8 SP

presented by junko

slide3
11.2 基本的な定義
  • S#、P#、QTYに関連した納入業者が関連する都市を表す属性CITYを加えた関係

→SCP

図11.1関係SCP

presented by junko

slide4
関数従属性の概念
  • Case a

ある時点におけるある関係の値

(→関係変数)

  • Case b

その関係変数が様々な時点で取り得る全ての値の集合

拡張

presented by junko

case a
Case a
  • R: 関係
  • X,Y: Rの属性集合の任意の部分集合

R上の全てのXの値について、これと関連するYの値がただ一つ存在するとき、かつそのときに限り、YはXに関数的に従属である

“X → Y”

R

X

Y

x

y

presented by junko

slide6
関係SCPのFD
  • { S# }    →  { CITY }
  • { S#, P# }  →  { QTY }
  • { S#, P# }  →  { CITY }
  • { S#, P# }  →  { CITY, QTY }
  • { S#, P# }  →  { S# }
  • { S#, P# }  →  { S#, P#, CITY, QTY }
  • { S# }    →  { QTY }
  • { QTY }   →  { S# }

  決定項従属項  

presented by junko

slide7
ある時点で変数が持っている値について

 たまたま成り立つFDには興味が無い

  • その変数が取り得る全ての値に対して成り立つFD

興味があるのは・・・

presented by junko

case case a
Case b (Case aの拡張)
  • R:関係変数
  • X,Y:Rの属性集合の任意の部分集合

Rが取り得る全ての正当な値において、ただ一つのYの値と関連するとき、かつそのときに限り、Yは関数的にXに従属している

“X → Y”

presented by junko

slide9
時間独立なFD
  • 関数従属性 = 時間独立

time-independent

  • 関係SCPの時間独立なFD
    • { S#, P# }  →  QTY
    • { S#, P# }  →  CITY
    • { S#, P# }  →  { CITY, QTY }
    • { S#, P# }  →  S#
    • { S#, P# }  →  { S#, P#, CITY, QTY }
    • { S# }     →  CITY

presented by junko

slide10
次のFDは、図11.1では成り立つが、

 いつも成り立つわけではない

    • S#  →  QTY
    • QTY →  S#

“ある納入業者に関する全ての出荷は同じ出荷量を持つ”

SCPが取り得る全ての正当な値に

      対しては成り立たない

presented by junko

slide11
必然的な従属
  • Xが関係Rの候補キー(特に主キー)であるならば、関係Rの全ての属性Yは必然的にXに従属する   候補キーの定義より生じる

P# → { P#、PNAME、COLOR、WHIGHT、CITY}

※候補キー(Chapter9より)

      • 一意に識別できる
      • 非冗長

presented by junko

slide12
本章の目的
  • ある関係が取り得る全ての正当な値が満たすFDの集合は、非常に大きいはず!
  • その集合を扱いやすいサイズに簡略化する方法を見つける

そこで、

本章の目的 は・・・

presented by junko

slide13
目的の理由
  • FDが完全性制約と関係するため、DBMSが更新を実行するときにFDを検査する必要がある
    • 完全性制約:データが間違っていたり,データ間で矛盾     がない事を保証するための条件

presented by junko

slide14
FDの検査

あるFDの集合Sに対して、Sより十分小さく、Sのあら

ゆるFDを表現する別の集合Tを見つける

DBMSが集合Tの中のFDを検査

自動的にSの中のFDも検査したことになる

  集合Tを見つけることは非常に現実的

presented by junko

slide15
9.3 自明/自明でない従属
  • 自明・・・従属性が満たされないことはあり得       ない場合

     { S#, P# }  →  S#

右辺が左辺の部分集合    FDは自明

presented by junko

slide16
9.4 従属集合の閉包
  • FDのある集合Sによって暗示される全てのFDの集合をSの閉包(closure)という

S+

{ S#, P# }  →  { CITY, QTY } ー 

{ S#, P# }  →  CITY

{ S#, P# }  →  QTY

S

S+

presented by junko

slide17
推移FDの例
  • 関係R上の三つの属性A,B,CがR上で

FD : A  →  B

FD : B  →  C

を満たしている

  • この場合

FD : A  →  C

もR上で成り立つ

CはB経由でAに推移的に従属している

presented by junko

slide18
アームストロングの論文
  • SからS+を計算する方法が必要

アームストロングの論文

          • 最初の取り組み
          • あるFDから新しいFDを推論する
          • 一連の推論規則(アームストロングの公理)

presented by junko

slide19
アームストロングの推論の規則
  • A、B、Cをある関係Rの属性集合の任意の部分集合とする
  • ABはAとBの和を意味する

1.反射 Reflexivity:BがAの部分集合ならば A →B

2.増加 Augmentation:A→Bならば AC → BC

3.推移 Transitivity:A→BでB→Cならば A→C

presented by junko

slide20
アームストロングの規則について
  • これらの規則は、それぞれ関数従属から直ちに証明できる
  • FDのある集合Sにおいて、Sによって暗示される全てのFDが導き出される →complete(完備)
  • 追加のFDは導き出されない →sound(健全)

この規則は正確に閉包S+を導き出すことができる

presented by junko

slide21
追加規則

4.自己決定 Self-determination:A → A

5.分解 Decomposition:A→BCならば

A→BかつA→C

6.和 Union:A→BかつA→Cならば A→BC

7.合成 Composition:A→BかつC→Dならば AC→BD

presented by junko

darwen
Darwenの規則
  • Darwenは次の規則を示し、一般的な単一化定理と呼んでいる

8.A→BかつC→DならばA∨(C-B) → BD

(“∨”は和を、“ー”は集合の差を表す)

presented by junko

darwen1
一般的な単一化定理(Darwenの規則)

例:属性A、B、C、D、E、FとFD

A  →  BC (BC:属性Bと属性Cからなる集合)

B  →  E

CD →  EF

『FD:AD→FはR上で成り立ち、その集合の閉包の一部である』

証:1.A  →  BC (与えられたもの)

2.A  →  C   (1の分解)

3.AD → CD  (2の増加)

4.CD → EF  (与えられたもの)

5.AD → EF   (3と4の推移)

6.AD →  F  (5の分解)

presented by junko

slide24
9.5 属性集合の閉包
  • あるFDが閉包かどうかを判別するための有効な手段を示す
  • 関係Rのスーパーキー
    • Rの候補キーを部分集合として少なくとも一つ持つRの属性集合
    • 関数従属性 K→A がRの全ての属性Aに対して成り立つようなRの属性集合の部分集合K
  • 属性集合Kがスーパーキーかの判別はKが候補キーであるかの判別の大きなステップ

(候補キー=最小のスーパーキー)

presented by junko

slide25
Kがスーパーキーか?
    • Kに関数的に従属している全ての属性集合が、本当にRの全ての属性集合か
    • R上で成り立つ集合SのもとでのKの閉包K+を判別する方法が必要

presented by junko

slide26
閉包K+の計算アルゴリズム

CLOSURE[K,S] := K ;

Do “forever” ;

for each FD x → y in S

do ;

if X is a subset of CLOSURE[K,S]

then CLOSURE[K,S] := CLOSURE[K,S] UNION Y ;

end ;

if CLOSURE[K,S] did not change on this iteration

then leave the loop ;

End;

presented by junko

slide27

例:属性A、B、C、D、E、FとFD

A  →  BC

E  →  CF

B  →  E

CD  →  EF

をもつ関係Rがあるとする

FDのこの集合への属性集合{A、B}の閉包{A、B}+を

計算する

presented by junko

slide28
閉包の計算

1.{A,B}の閉包を格納する変数CLOSURE[K,S]を初期化

2.与えられたFDにつき1回、計4回内側のループを回す

最初の反復(A→BC):左辺=計算したCLOSURE[K、S]の部分集合

→属性(Bと)Cを結果に加える

→CLOSURE[K,S]を集合{A,B、C}とする

3.2回目の反復(E→CF):左辺≠計算した結果の部分集合

→変化なし

4.3回目の反復(B→E):CLOSURE[K,S]にEを加える

5.4回目の反復(CD→EF):CLOSURE[K,S]変化なし

6.再び4回内側のループを回す

1,3,4回目-変化なし 、 2回目-{A、B、C、E、F}へ拡張

7.再び4回内側のループを回す

→CLOSURE[K,S]変化なし

→{A,B}+={A,B,C,E,F}           終結

∴{A,B}はスーパーキーでない(候補キーでもない)

presented by junko

slide29
9.6 従属の規約集合
  • S1とS2を二つの集合とする
  • S1+がS2+の部分集合ならば、S2はS1のcover(被覆)という
  • S2がS1のcoverであり、S1がS2のcoverであるならば(S1+=S2+)、S1とS2は等価である

presented by junko

irreducible
既約 irreducible
  • 次の三つの性質を満たすとき、かつそのときに限り、FDの集合Sは既約( irreducible )であると定義する

1.Sの全てのFDの右辺はただ一つの属性を持つ

2.Sの全てのFDの左辺は既約である

3.閉包を変えることなしには、SからどのFDも取り

去ることはできない

presented by junko

slide31
既約の性質
  • 既約の性質の例として部品関係Pを考える

次のFDはその関係内で成り立つ

P#  →  PNAME

P#  →  COLOR

P#  →  WEIGHT

P#  →  CITY

FDのこの集合は、簡単に既約であることが分かる

    • 右辺は単一属性
    • 左辺は明らかに既約
    • 閉包を変更しない限りどのFDも取り除くことはできない

presented by junko

slide32
既約の性質(1)
  • Sの全てのFDの右辺(従属項)はただ一つの属性を持つ → 単項集合

<既約ではない例(1)>

① P#  →  {PNAME、COLOR}

② P#  →  WEIGHT

③P#  →  CITY

理由:①の右辺は単項集合ではない

presented by junko

slide33
既約の性質(2)
  • Sの全ての左辺(決定項)は既約である
  • 閉包S+を変えることなしに決定項からいかなる属性も取り去ることはできない→左既約

<既約ではない例(2)>

①{P#、PNAME}  →  COLOR

  ②P#  →  PNAME

③P#  →  WEIGHT

④P#  →  CITY

理由:①のFDは、閉包を変えることなしに左辺から PNAMEを落とすことで簡略化可能

presented by junko

slide34
既約の性質(3)
  • 閉包S+を変えることなしにはSからどのSのどのFDも取り去ることはできない

<既約ではない例(3)>

①P#  →  P#

②P#  →  PNAME

③P#  →  COLOR

④P#  →  WEIGHT

⑤P#  →  CITY

理由:①のFDは閉包を変えることなしに取り去ること が可能

presented by junko

slide35
既約集合に等価な集合

FDの全ての集合について既約集合に等価な集合が少なくとも一つ存在する

証明:SのもともとのFDの集合を考える

  • 分解規則により、SのそれぞれのFDを、一般性を損なうことなしに右辺単項にする
  • SのそれぞれのFDfについてfの左辺のそれぞれの属性Aを調べる
  • Sと、fの左辺からAを削除することで得られるFDの集合が等価ならば・・・
  • Fの左辺からAを削除する
  • 最終的なSは既約、もともとの集合Sに等価である

presented by junko

slide36
既約集合に等価な集合:例
  • 例:属性A、B、C、DとFD
    • A  →  BC
    • B  →  C
    • A  →  B
    • AB →  C
    • AC →  D

をもつ関係Rを考える

与えられた集合に等価で既約なFDの集合を計算する

presented by junko

slide37
例(1)

1.それぞれのFDを右辺単項に書き直す

  • A  →  B
  • A  →  C
  • B  →  C
  • A  →  B
  • AB →  C
  • AC →  D

A → BC

presented by junko

slide38
例(2)

2.FD:AC→Dの左辺から属性Cを削除できる

  • A→Cがあるので、追加性より A→AC
  • AC→Dならば 推移性より A→D

属性Cを削除

presented by junko

slide39
例(3)
  • FD:AB→Cは削除できる
    • A→Cがあるので、追加性より  AB→CB
    • 分解性より AB→C (AB→B)

FD:AB→C削除

presented by junko

slide40
例(4)
  • FD:A→Cは削除できる
    • A→BとB→Cによって暗示され  A→C

FD:A→C削除

presented by junko

slide41
既約被覆
  • 最後に残るFDは以下の三つ
    • A  →  B
    • B  →  C
    • A  →  D

が残る

  • この集合は既約である
  • 既約でFDの他のある集合Sと等価なFDの集合IはSの既約被覆(irreducible cover)という
  • 検査されるべきFDのある特定の集合があるとき、システムにとっては代わりの既約Iを見つけて検査する
  • FDのある集合が必ずしも一意既約被覆である必要は無い

presented by junko

slide42
まとめ
  • 関数従属性FDは、ある関係の属性の二つの集合間における多対1の関係
  • 自明なFDには興味がない
  • あるFDは他のFDを暗示する(閉包closure)
  • CompleteでsoundなFDの推論規則
  • アームストロングの規則
  • 既約集合
  • 既約被覆

presented by junko