リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf ·...

10
データベース論(第4回): リレーショナルデータベースの 設計理論 北村泰彦 関西学院大学理工学部情報科学科 リレーショナルデータベース設計 の基礎理論 リレーショナルデータベース:リレーション の集合 リレーション:第一正規形 ドメインはシンプルである リレーショナルデータベースはリレーション が第一正規形を満たせば十分か? リレーショナルデータベースを適切に設計 する指針はあるか? 第一正規形と更新時異状 前提:主キーは空値にな ってはならない. タプル挿入時異状:スカ ーフを仕入値10で仕入れ ることができる業者を見 つけた場合. タプル削除時異状:C社と 取引を停止した場合. タプル修正時異状:バッ グの仕入値を15から16修正する場合.卸先Cの香水をバッグに変更す る場合. 更新時異状の解消の考え方 原因:他のリレーションに独立な二つのデータ群(仕入れ 値と卸値)が存在している. 解決:リレーションを分解する. (1)二つの射影リレーションの自然結合をとると元のリレーションが 復元される.(情報無損失分解) (2)先の更新時異状が生じない. 性質:卸値は主キー{商品名,卸先名}に完全関数従属し ているが,仕入値は商品名のみに完全関数従属してい る.

Transcript of リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf ·...

Page 1: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

データベース論

(第

4回

):

リレーショナル

データベースの

設計

理論

北村泰彦

関西学院大学理工学部情報科学科

リレーショナルデータベース設計

の基礎理論

リレーショナルデータベース:リレーション

の集

リレーション:第一正規形

ドメインは

シンプル

である

リレーショナルデータベースはリレーション

が第一正規形を満たせば十分か?

リレーショナルデータベースを適切に設計

する指針はあるか?

第一正規形と更新時異状

前提

:主

キーは

空値

にな

ってはならない.

タプル挿入時異状:スカ

ーフを仕入

値10

で仕入

れることが

できる業

者を見

つけた場

合.

タプル

削除

時異

状:C

社と

取引を停止した場合.

タプル

修正

時異

状:バ

ッグの

仕入

値を

15から

16に

修正

する場

合.卸

先C社

の香

水をバ

ッグに変

更す

る場

合.

更新時異状の解消の考え方

原因

:他

のリレーションに独

立な二

つの

データ群

(仕

入れ

値と卸値)が存在している.

解決

:リレーションを分

解する.

(1)二つの射影リレーションの自然結合をとると元のリレーションが

復元される.(情報無損失分解)

(2)先の更新時異状が生じない.

性質:卸値は主キー

{商品

名,卸

先名

}に完全関数従属し

ているが,仕入値は商品名のみに完全関数従属してい

る.

Page 2: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

更新時異状の解消の考え方

更新時異状の解消の考え方

タプル

挿入

時異

状:スカーフを仕

入値

10で仕

入れ

ること

ができる業者を見つけた場合.

卸売[商品名,仕入値]に追加.

タプル

削除

時異

状:C

社と取引を停止した場合.

卸売[商品名,卸先名,卸値]にから削除.

タプル修正時異状:バッグの仕入値を

15から

16に修正

する場

合.

卸売[商品名,仕入値]を修正.

タプル

修正

時異

状:卸

先C社の香水をバッグに変更する

場合.

卸売

[商

品名,卸

先名,卸値

]を修正.

リレーションの分解

一般にリレーション

R(A

1 ,A2 ,…

,An )の

分解

(decomposition)と

はX

1 ,X2 ,…

,Xmを

Rの

全属性集合

{A1 ,A

2 ,…,A

n }の部分集合で,

X1 ∪

X2 ∪

... ∪X

m ={A

1 ,A2 ,…

,An }

なるものとするとき,

Rをその

m個の射影

R[X

1 ],R[X

2 ],…,R

[Xm ]で

置き換えることで

ある.

各R[X

i ]をRの分解成分という.

リレーションの情報無損失分解

情報

無損

失分

解:リレーション

R(A

1 , A2 , …

,Al , B

1 , B2 , …

, B

m , C1 ,C

2 ,…,C

n )の二つの射影

R1 =

R[A

1 , A2 , …

,Al , B

1 , B

2 , …, B

m ]とR

2 =R[A

1 , A2 , …

,Al , C

1 ,C2 ,…

,Cn ]へ

の分解

に対して

R=R

1 *R

2 が成

立する.

[命題

1] R⊆

R1 *

R2 が

成立

する.

[命題

2] R⊇

R1 *

R2 が

成立

するための

必要

十分

条件

は,

t[A1 A

2 …A

l ]=t’[A

1 A2 …

Al ]を

満たす

Rの

任意

のタプル

tとt’

に対

して,それ

らか

ら構

成され

る次

のタプル

wと

w’が

また

Rのタプルであること.

w=

(t[A1 A

2 …A

l B1 B

2 …B

m ], t’[C1 C

2 …C

n ])w

’=(t’[A

1 A2 …

Al B

1 B2 …

Bm ], t[C

1 C2 …

Cn ])

Page 3: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

リレーションの情報無損失分解

[定理

1]リレーション

R(A

1 , A2 , …

,Al , B

1 , B2 , …

, B

m , C1 ,C

2 ,…,C

n )が二

つの

射影

R[A

1 , A2 , …

,Al ,

B1 , B

2 , …, B

m ]とR[A

1 , A2 , …

,Al , C

1 ,C2 ,…

,Cn ]

に情

報無

損失

分解

され

るための

必要

十分

条件

は,

t[A1 A

2 …A

l ]=t’[A

1 A2 …

Al ]を

満たす

Rの

任意

のタ

プル

tとt’に

対して,それ

らか

ら構

成され

る次

のタ

プル

wと

w’が

また

Rの

タプル

であること.

w=

(t[A1 A

2 …A

l B1 B

2 …B

m ], t’[C1 C

2 …C

n ])w

’=(t’[A

1 A2 …

Al B

1 B2 …

Bm ], t[C

1 C2 …

Cn ])

多値従属性

定義

(多

値従

属性

):リレーション

R(A

1 , A2 , …

,Al ,

B1 , B

2 , …, B

m , C1 ,C

2 ,…,C

n )の任

意の

インスタン

スが

,その

二つの

射影

R[A

1 , A2 , …

,Al , B

1 , B2 ,

…, B

m ]とR[A

1 , A2 , …

,Al , C

1 ,C2 ,…

,Cn ]に

情報

無損

失分

解され

るとき

「Rに(自

明でない)多

値従

属性

(multi-valued

dependency, MVD

) A1 A

2... A

l →→

B1 B

2 …B

m|

C1 ,C

2 ,…,C

n が存

在する」

という.

多値従属性

Page 4: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

多値従属性

多値従属性あり

多値従属性なし

多値従属性

[系1]リ

レーションスキーマ

R(A

1 , A2 , …

, Al , B

1 , B

2 , …, B

m , C1 , C

2 , …, C

n )の任

意の

インスタンス

Rが

,二

つの

射影

R[A

1 , A2 , …

, Al , B

1 , B2 , …

, Bm ]

とR

[A1 , A

2 , …, A

l , C1 , C

2 , …, C

n ]に情

報無

損失

分解

され

るための

必要

かつ十

分条

件は

Rに多

値従属性A1 , A

2 , …, A

l →→

B1 , B

2 , …, B

mが

存在

することである.

自明

な多

値従

属性

リレーションスキーマ

R(A1 , A

2 , …, A

l , B1 , B

2 , …, B

m )のとき

A1 A

2 …A

l →→

B1 B

2…

Bm|∅

Y⊆Xなら

X→→

Y

関数従属性

定義

:リレーションスキーマR

(A1 ,A

2 ,…,A

l, B1 ,B

2 ,…,B

m , C1 ,C

2 ,…,C

n )に関数

従属

性(functional

dependency:FD) A

1 ,A2 ,…

,Al →

B1 ,B

2 ,…,B

mが

存在

するとは

,Rの

任意

のインスタンス

Rについ

て次

が成

立するときをいう.

(∀t,t'∈

R)(t[A

1 A2 …

Al ]=t'[A

1 A2 …

Al ]

⇒t[B

1 B2 …

Bm ]=t'[B

1 B2 …

Bm ])

関数従属性

A1 ,A

2 ,…,A

l →B

1 ,B2 ,…

,Bmのとき

A1 ,A

2 ,…,A

l はB

1 ,B2 ,…

,Bmを関

数的

に決

定する

(functionally determ

ine),あるいは

B1 ,B

2 ,…,B

mは

A1 ,A

2 ,…,A

l に関

数従

属している

(functionally depend)と

いい,

A1 ,A

2 ,…,A

l を決

定子

(determinant),

B1 ,B

2 ,…,B

mを被

決定

子という.

{B1 ,B

2 ,…,B

m }が空

集合

か{A

1 ,A2 ,…

,Al }の

部分

集合

となっているとき,自

明な

(trivial)な関数

属性

という.

Page 5: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

関数従属性

関数従属性

キーは

関数

従属

性を用

いて定

義できる.

定義

(候

補キー):リレーションスキーマ

R(A

1 ,A2 ,…

,An )の

属性集合

Kが

次の

条件

を満

たすとき,Rの

候補

キー

(candidate key)と呼

ばれ

る.

Rの

任意

のインスタンス

Rについて次

が成

立する.

(1)(∀t,t‘∈

R)(t[K

]=t‘[K]⇒

t=t‘)(2) K

のどの

ような真

部分

集合

Hに対

しても

(1)の性

質は

成立

しない.

候補

キーを含

む属

性集

合をスーパ

ーキー

(super key)と

呼ぶ.

関数従属性

定義(完全従属):X

→Yをリレーションスキ

ーマRの関数従属性とするとき,

Yは

Xに完

全従

属(fully dependent)で

あるとは,

Xの

いかなる真部分集合

X’に

対しても

X’→

Yが成り立たないことをいう.

リレーションスキーマ

Rにおいて,

X→

Yなら

ばX→→

Yである.(逆は真ではない.)

関数従属性の公理系

[命

題](推

移律

)X→Yか

つY→

Zなら

X→Zである.

関数

従属

性の

公理

系リレーションスキーマR上

に関

数従

属性

の集

合Fが与

えられ

たとき,

Fか

らさらに論

理内

包(導

出)され

る関

数従

属性

が存

在する.

Fより導

出され

る関

数従

属性

の全

体集合を閉包と呼び,

F+で

表す.

F+を

求めることの

意義

全ての関数従属性を知りたい.

関数従属性の標準形を求めたい.

関数従属性の理論を構築したい.

Page 6: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

関数従属性

F+を

求める手法

アームストロングの

公理

的アプローチ

完全

(complete)か

つ健

全(sound)で

ある.

関数従属性

アームストロングの公理的アプローチ

F+を

求める計

算は

簡単

では

ない.

Fを与

えて,

X→Yが

F+の

元か

どうか

を決

定す

ることは

容易

である.

X+を

求めるアルゴリズム

(1)X(0)=

Xとおく.

(2)X(i)=

X(i-1)∪

{A|Y→

Z∈

F,Y⊆

X(i-1),A

∈Z}(i≧

1)(3)も

しX

(i)=X

(i-1)なら

X+=

X(i-1)と

おく.そうでなけれ

ば(2)へ

第二正規形

[定義

](第二正規形:second norm

al form,

2NF)

リレーションスキーマ

Rが第二正規形であ

るとは次の二つの条件を満たすときである.

(1)Rは第一正規形である.

(2)Rのすべての非キー属性は

Rの各候補

キーに完全従属している.

第二正規形

リレーション卸売の

完全関数従属性

射影リレーションの

完全関数従属性

Page 7: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

第二正規形における更新時異

タプル

挿入

時異

状:社

員の

張り付

けは

できていな

いが

,新

プロジェクト

p4 を

契約した場合.

タプル

削除

時異

状:社

員e

5 がプロジェクトか

らは

ずれた場合.

タプル

修正

時異

状:社

員e

5 がプロジェクト

p3 か

らp

2に配

置替

えになった場

合.

推移的関数従属性

[定義

]推移的関数従属性

X,Y,Zをリレーション

Rの

三つの

属性

集合

とし,関

数従

属性

について以

下の

三つ

が成立しているとする.

X→

YY→

ZY→

Xとすると,次

が成

立する.

X→

ZZ→

X

第三正規形

推移的関数従属性を許さない.

[定義

3]第三

正規

形(third norm

al form, 3N

F)リレーションスキーマ

Rが

第三

正規

形であるとは

,次

の二

つの条件を満たすときをいう.

(1)Rは

第二

正規

形である.

(2)Rの

すべ

ての

非キー属

性は

,Rの

いか

なる候

補キーに

も推

移的

に従

属しない.

第三正規形

Page 8: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

第三正規形における更新時異

タプル

挿入

時異

状:新

しい教

官と講

義科

目の

みが

決まった場

合.

タプル

削除

時異

状:学

生s

1 が科

目c

2 の受

講をや

めた場

合.

タプル

修正

時異

状:学

生s

2 が科

目c

1 の履

修を教

官t3 か

らt1 に

変更

した場

合.

{学生名,科目名}→教官名

教官名→科目名

ボイス

-コッド正規形

[定義

4]ボイス

-コッド正

規形

(Boyce-Coddnorm

al form,

BCNF)

リレーションスキーマ

Rが

ボイス

-コッド正

規形

であるとは

,次

の条

件が

成立

するときをいう.

X→

Yを

Rの

関数

従属

性とするとき,

(1) X→

Yは

自明

な関

数従

属性

であるか

,(2)X

はRのスーパ

ーキーである.

例:受講

[教官

名,科

目名

]と受講

[教官

名,学

生名

]に分

解する.

リレーションを分

解することにより関

数従

属性

(Ex. {学生

名,科

目名

}→教

官名

)が

定義

不可

能になる場

合が

ある.

ボイスコッド正

規形

における更

新時

異状

タプル

挿入

時異

状:新

しい講

習と指

導員

のみ

が決

まった場合

タプル

削除

時異

状:参

加者小泉が受講をやめた場

合.

タプル

修正

時異

状:参

加者

小泉

が受

講をデータベ

ースか

らパ

ソコンに変

更した場

合.ワープロ指

導員

が青

木か

ら高

橋に変

更になった場

合.

第四正規形

[定義

5]第四

正規

形(forth norm

al form, 4N

F)リレーションスキーマ

Rが

第四

正規

形であるとは

,次

の条

件が

成立

するときをいう.

X→→

Yを

Rの

多値

従属

性とするとき,

(1) X→→

Yは

自明

な多

値従

属性

であるか

(2)Xは

Rの

スーパ

ーキーである.

Page 9: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形

第四正規形

正規形の階層構造

第六

正規

形は

存在

しない.

Page 10: リレーショナルデータベースの 回):kitamura/lecture/db-ocu/db03-4.pdf · リレーショナルデータベース:リレーション の集合 リレーション:第一正規形