データベース論

データベース論
朝日大学大学院
経営学研究科
奥山 徹
[email protected]
2006/05/01
データベース論(3回目)
1
講義日程
•
•
•
•
•
•
•
•
•
•
•
4月17日
4月24日
5月01日
5月08日
5月15日
5月22日
5月29日
6月05日
6月12日
6月16日
6月26日
2006/05/01
ガイダンスおよび集合論の基礎
リレーショナルデータベースの基礎
データ操作言語
データベースの論理設計
SQL(データベース操作言語)の基礎
データベース管理システム
データベースの内部スキーマ
質問処理とその最適化
トランザクション処理
分散データベース序説
定期試験
データベース論(3回目)
2
本日のお品書き
• 前回の復習
– リレーションの定義
– 第一正規化
– キー概念
• 一貫性と一貫性制約
• リレーショナルデータベース入門第三章
– データ操作言語
– リレーショナル代数と拡張リレーショナル代数
2006/05/01
データベース論(3回目)
3
リレーションの定義
• リレーションの定義
- A relation is a set of ordered pairs. If A
and B are sets and ρ is a relation, then we
call ρ a relation from A to B if ρ⊆ A×B.
- 例:市の名前の集合 C, 県の名前 P
ρ* ⊆ C×P, where (c, p) ∈ ρ* if city c is in
prefecture p, is a relation from C to P.
2006/05/01
データベース論(3回目)
4
前回の復習
2006/05/01
データベース論(3回目)
5
データベースとリレーション
• 1969年にTed Codd(Edger F. Codd)
により提唱されたリレーショナルデー
タモデルに端を発する
• Relationという言葉はニクソンによっ
てもたらされた米中関係(relation
between USA and China)に由来す
る
2006/05/01
データベース論(3回目)
6
ドメイン(Domain)と直積
• ドメイン(Domain, 定義域): 値の集合
• ドメインの直積: D1×D2×……×Dn
D1×D2×……×Dn = {(d1, d2, …,dn) |
d1∈D1, d2∈D2,…,dn∈Dn}
• タップル(tuple): 直積の元(n-タップル)
t =(d1, d2, …, dn)
• タップルの成分diをtの第i成分と呼ぶ
2006/05/01
データベース論(3回目)
7
リレーション(Relation)
• ドメインD1, D2, …, Dn上のリレーション R
•
•
•
•
–
ドメインの直積D1×D2×……×Dnの有限部分集合
– 各Di (1≦i≦n)をRのi番目のドメイン
– nをRの次数(degree)
– Rを構成しているタップルの数をRの濃度(cardinality)
次数nのリレーション:n項リレーション(次数1の場合単項リレーショ
ン、次数2なら2項リレーション)
単項リレーションはドメインDの有限部分集合
濃度0のリレーションR:空集合φ(R=φ)
リレーションRはカールトンの定義に従い、元(=タップル)の重複は
許さない
2006/05/01
データベース論(3回目)
8
簡単なリレーションの例
• 3つのドメインを考える :
D1={1, 2}, D2={a, b, c}, D3=D1
• 直積:D1×D2×D3=
{(1,a,1), (1,a,2), (1,b,1), (2,b,1), (1,c,1), (2,c,1),
(2,a,1), (2,a,2), (2,b,1), (2,b,2), (2,c,1), (2,c,2)}
• R={(1,a,1), (1,b,2), (2,b,1), (2,c,2)}は
リレーションである
2006/05/01
データベース論(3回目)
9
リレーションと表
• リレーションはタップルを行とする2次元の表として表現出来る:行
の総数=濃度
• 表の縦軸はカラムと呼ばれる:カラムの総数=次数
• タップルの並びの順には意味はない
• リレーションは数学的な表現では、単なるordered pairsである
• データモデリングの観点から見ると意味付けが必要となる
ρ*=C×P では、C は都市の名前、P は県の名前となっている
• R=C×P を考える
R={(豊橋, 愛知), (豊川, 愛知), (湖西, 静岡)}
• ドメインに意味(属性)を持たせることにより、各種のデータを表現出
来る
2006/05/01
データベース論(3回目)
10
リレーション名と属性名
リレーション名
属性名
タップル:元
2006/05/01
カラム:属性
都市
都市名
豊橋
豊川
豊田
湖西
浜松
飯田
県名
愛知
愛知
愛知
静岡
静岡
長野
データベース論(3回目)
11
属性名の付与
• カラムの意味付けは次のように行う
(1) カラムの属性の同定
(2) カラムへの属性名の付与
• 属性の定義
リレーションのタップルが示す実世界の対象に対
して、カラムが担う事物の性質、状態、動作など
を示す概念
• カラムの並びは意味を持たなくなる
2006/05/01
データベース論(3回目)
12
属性とリレーション
• RをドメインD1, D2, …, Dn上のリレーションとする
• Rの各カラムの属性が定義され、i番目の属性をAiとする
• 属性AiとドメインDiを対応づける関数domを定義する
• dom(Ai) = Di (1≦i≦n)
• リレーションRが属性A1, A2, …, Anを持つとき、Rは次のように定義で
きる
• リレーションRが属性A1, A2, …, Anを持つとき、R (A1, A2, …,An)と記
述され、直積dom(A1)×dom(A2)×…×dom(An)
の有限部分集合と定義できる
• t=(d1, d2, …, dn)をリレーションRのタップルとすると、di(1≦i≦n)をtの
属性値Aiと呼び、t[Ai]とする
2006/05/01
データベース論(3回目)
13
投影(projection)
• Ai1, Ai2,…,Aik(1≦i1<i2<…<ik≦n)をRの
k個の属性とし、X(Ai1, Ai2, …, Aik)と
する
• このとき、tのX値はk-タップルとなり、
t[X]あるいは、t[Ai1, Ai2, …, Aik]と表現
される
• ここで、R[X]={t[X]|t∈R}をRのX上の
投影と呼ぶ
2006/05/01
データベース論(3回目)
14
リレーションの正規性
• RをドメインD1, D2, …, Dn上のリレー
ションとしたとき、もしすべてのドメイ
ンが単純なら、Rは第一正規形(1st
normal form, 1NF)という
• 単純なドメイン
(1) ドメインDは他のいくつかのドメインの直積(の
部分集合)ではなく、かつ
(2) Dはあるドメインのベキ集合(の部分集合)で
もない
2006/05/01
データベース論(3回目)
15
単純でないドメインの例
• 地図上の位置:位置={(x,y)| xは緯度、yは経度}
→(1)に抵触
• 社員の扶養家族:一般には妻や子どもなど複数人とな
り、扶養家族ドメインは人名ドメインのベキ集合となる
→(2)に抵触
都市
扶養
社員番号 社員名 扶養家族
都市名 位置
人口
A
(XA,YA)
PA
001
A
{H,I,J}
B
(XB,YB)
PB
002
B
φ
C
(XC,YC)
PC
003
C
{K}
2006/05/01
データベース論(3回目)
16
正規化(normalization)
• 非第一正規形のリレーションを第一正規形にすること
• ドメインが他のドメインの直積の場合→直積を分解す
る
• ベキ集合の場合→タップルに分解する
• 以上の操作を、すべてのドメインが単純になるまで繰り
返す
都市
都市名
A
B
C
2006/05/01
扶養
緯度
XA
XB
XC
経度
YA
YB
YC
人口
PA
PB
PC
社員番号 社員名 扶養家族
001
001
001
002
003
データベース論(3回目)
A
A
A
B
C
H
I
J
‐
k
17
第一正規形の意義
• すべてのデータを1枚のリレーションで表現で
きわかりやすい
• データ操作言語が簡明に定義できる
• 非正規リレーションを外部スキーマとして表現
する道が残されている
• ANSI/X3/SPARCのデータベースの三層ス
キーマ構造と整合性がよい
• 高次正規化により、一次正規化による冗長性
は解消できる
2006/05/01
データベース論(3回目)
18
リレーションスキーマ
• あるリレーションRを考えたとき、
– タップルの集合である
– 実世界の写絵である
• 実世界の変化と共にリレーションも変化する
– タップルの挿入・削除・修正
• リレーションは時間と共に変化するが、リレーショ
ンの持つ枠組みは不変である
→リレーションスキーマ(relation schema)
2006/05/01
データベース論(3回目)
19
リレーションスキーマ
枠組みは
不変
社員
社員番号
001
002
003
004
005
006
社員名
田中
鈴木
森
佐藤
中西
青木
所属
K55
K55
K55
K81
K81
K55
給与
50
65
40
60
45
35
-
社員(社員番号、社員名、所属、給与)
2006/05/01
データベース論(3回目)
20
リレーションスキーマ
• リレーションスキーマR(A1, A2, …, An)の
全属性集合{A1, A2, …, An}のことをΩRと
記述する
• リレーションスキーマはその全ドメインが
単純なら第一正規形である
• ある時刻τにおいて、スキーマに適合する
タップルの全集合がそのときのインスタン
ス(instance, 瞬時値)、つまりリレーション
となる
2006/05/01
データベース論(3回目)
21
キー(key, 鍵)概念
• リレーションが実世界の写絵とするなら、リ
レーションのタップルの全集合の中から興味あ
る一つを同定したい→検索(retrieval)
• 一つのタップルを同定できる属性集合を候補キー
(candidate key)と呼ぶ
(1)RをRの任意のインスタンスとするとき、
(∀t, t’∈R)(t[K]=t’[K]⇒t=t’)
(2)Kからその属性の一つでも欠落させると、もはや(1)
の性質を満たさない
ここで、K={Ak1, Ak2, …, Akp}なるRの属性集合
2006/05/01
データベース論(3回目)
22
主キー(primary key)
• タップルの識別能力を持つ極小の属性集合
(1)候補キーは複数の属性からなってよい
(2)1つのリレーションに複数の候補キーが存在
しうる
• 候補キーの中からスキーマの設計者が意味的
(semantic)に一つ選び、そのリレーションスキー
マの主キーとすることができる
2006/05/01
データベース論(3回目)
23
キー概念の意味
(1)キー概念はインスタンスとしての1つのリレー
ションに関するものでなく、リレーションスキー
マにかかる概念である
(2)リレーションスキーマによっては全属性が唯
一の候補キーとなる場合がある
(3)リレーションスキーマには候補キーが存在し
ないことはない(リレーションの定義からあき
らか)
2006/05/01
データベース論(3回目)
24
一貫性と一貫性制約
2006/05/01
データベース論(3回目)
25
データベースの一貫性
• 一貫性:リレーションがあるインスタンスにおいて、モデル
となった実世界の事物を正しく表現している→一貫性
(Integrity)がある
• データベースの一貫性を保証する条件→一貫性制約
(Integrity Constraint)あるいは意味制約(Semantic
Constraint)
• 一貫性に関する考察
– 実世界の事物を忠実にモデル化する→データベースを完全無
欠を保っておける
– 一貫性制約を記述できれば、一貫性を破壊するような更新を阻
止できる
– 一貫性制約によりデータベースを完全無欠な状態にDBMSが維
持できれば、ユーザはそれに対して気を遣う必要がなくなる
2006/05/01
データベース論(3回目)
26
ドメイン制約(Domain Constraint)
• 属性のドメインに対して定義域を設定す
る
• 例えば、停年が70歳の場合、
– 70歳をこえるような更新は阻止できる
• ドメイン制約は最も基本的なものであり、
今日の多くのRDBMSにおいて実装され
ている
2006/05/01
データベース論(3回目)
27
キー制約(Key Constraint)
• キーに対する制約
– いかなるリレーションのいかなるタップルも主
キーを構成する属性値は空値(Null Value)で
なく、
– かつ唯一(Unique)でなければならない
– 主キーとしない候補キーでは、空値はゆるさ
れるが、やはり唯一でなければならない
2006/05/01
データベース論(3回目)
28
空(Null)と空値(Null Value)
• 空とはなにもないことであり、空値は空のとりえる値
(「-」が使われる)である
– データベースの場合、何らかの理由で値がないことを示す
– Null →Nonexistent, Insubstantial, Meaninglessという意味
• 空となる理由
– 属性が値を取り得ない場合
• 本来属性値をとりえない場合
• 現在、その属性が値を取り得ない場合
– 属性は値をとりうるのだが、その値がまだわからない場合
– 属性が、そもそも指定されたドメインの値をとりえるかどうかわ
からない場合
2006/05/01
データベース論(3回目)
29
外部キーと外部キー制約
• 外部キーの定義
リレーションスキーマRの属性H(ただし、HはRの主キーではな
い)がリレーションスキーマSの外部キー(Foreign Key)であると
は、任意の時刻τにおけるRとSのインスタンスをRτ、Sτとすると
き、Rτの任意のタップルt に対して、
(1) t[H]は空値か、そうでなければ、
(2) t[H]=s[K]となるSτのタップルsが存在する、ここで、KはSの主
キーである。
• もし、リレーションスキーマRの属性HがリレーションスキーマS
の外部キーであるなら、(1)か、あるいは(2)の条件が成り立たな
ければならないことを示す
• 外部キー制約は参照制約(Referential Constraints)とも呼ばれ
る
2006/05/01
データベース論(3回目)
30
関数従属性
• 次のようなリレーション 履修 を考える
履修
学籍番号
科
目
得点
評価
判定
担当教員 入学月
990101 プログラム演習
72
B
合格
高橋
4
990102 プログラム演習
56
C
合格
高橋
4
990102
データベース
83
A
合格
澤井
4
995101
データベース
62
C
合格
澤井
9
995101
OS論
30
D
不合格
東
9
2006/05/01
データベース論(3回目)
31
関数関係
• リレーションスキーマ 履修 には次の関数
関係がある
–
–
–
–
–
f1:{学籍番号,科目}→得点
f2:{科目,得点}→評価
f3:評価→判定
f4:学籍番号→入学月
f5:科目→担当教員
• このような属性間の関数関係を関数従属
性があると呼び、→であらわす
2006/05/01
データベース論(3回目)
32
関数従属性の定義
• リレーションスキーマ R(A1, A2 ,…, An)の属性集合X,Y
を考える
• このとき、Rの中でXからYへの関数従属性(Function
Dependency, FD)が存在するとは、Rの任意のインスタン
スにおいて次が成立するときをいう
(∀t,t’∈R)(t[X]=t’[X]⇒t[Y]=t’[Y])
• Rの任意のインスタンスにおいて、タップルtのX値とタッ
プルt’のX値が同じであるなら、tとt’のYの値が等しくなる
ことを示す(時間的に不変)
• X→Yと書き、Xを決定子、Yを被決定子とも呼ぶ
2006/05/01
データベース論(3回目)
33
関数従属性に関するいくつかの概念
• 完全関数従属性:定義は後に述べる(第
二正規形の部分で述べる)
• 推移的関数従属性:定義については同上
(第三正規形の部分で述べる)
• 自明(trivial)な関数従属性:YをXの部分
集合とする(Y⊂X)と、関数従属性X→Yは
常に成立する。このような関数従属性を自
明な関数従属性と呼ぶ(例:X→φ, X→X
など)
2006/05/01
データベース論(3回目)
34
関数従属性の意義
• 関数従属性が成立している:全てのイン
スタンスにおいて満たさなければならな
い関数関係→一貫性制約となりうる
• 高次正規化における基本概念
2006/05/01
データベース論(3回目)
35
多値従属性
• 多値従属性(Multivalued Dependency, MVD)
は関数従属性の一般化したものである
• 多値従属性の定義
– XとYをリレーションスキーマRの属性集合とする
– このときXがYを多値に決定する、あるいはYがXに
多値に従属するとき、X→→Yと記し、多値従属関係
が成り立ついう
(∀t,t’∈R)(t[X]=t’[X]⇒((t[X∪Y],t’[Z])∈R
∧(t’[X∪Y],t[Z])∈R) ただし、Z=ΩR - (X∪Y)
2006/05/01
データベース論(3回目)
36
多値従属性の関係概念
• 多値従属性が成り立っているとは
– tとt’をt[X]=t’[X]が成り立っているインスタンスR
のタップルとするなら
– tとt’から作られた新しい2つのタップル
u = (t[X∪Y], t’[Z])
v = (t’[X∪Y], t[Z])
もまたRのタップルでなければ成らないことを示し
ている
2006/05/01
データベース論(3回目)
37
多値従属性の説明図
t[X]=t’[X]なら、tと
t’から合成された
uとvもRのタップル
でなければならな
いことを示す
R
X
t
t’
u
v
2006/05/01
.
a1 a2 … ap
.
a1 a2 … ap
.
a1 a2 … ap
.
a1 a2 … ap
.
Y
Z
b1 b2 … bq
c1 c2 … cr
b’1 b’2 … b’q c’1 c’2 … c’r
b1 b2 … bq
c’1 c’2 … c’r
b’1 b’2 … b’q
c1 c2 … cr
データベース論(3回目)
38
多値従属性と直交概念
• リレーションRで射影R[X]とR[Y]の間の関係と、
R[X]とR[Z]の間の関係が完全に独立であることを
示す
• このような関係は直交(Orthogonal)であるという
• したがって、同じX値をもつY値とZ値の全ての組
み合わせが出現しなければならない
• 多値従属性X→→YがリレーションスキーマR上で
定義されているなら、Z=ΩR-(X∪Y)とすると、
X→→Zが自動的に成り立つ。よってX→→Y|Zと
記述する
2006/05/01
データベース論(3回目)
39
自明な多値従属性
• X∪Y=ΩRならば、X→→Y|φはどのようなリ
レーションスキーまでも成り立つ
• またY⊆XならX→→Yも必ず成り立つ
• これらを自明な多値従属性と呼ぶ
命題2-1
X→→Y(ここにX∩Y≠φ)なら、
X→→Y-(X∩Y)
2006/05/01
データベース論(3回目)
40
多値従属性の例
• リレーションスキーマ 講習会 (講習名、指導員名、受講者
名)には多値従属性講習名→→指導員名|受講者名が定
義されているとすると、そのようなリレーションのインスタン
スの例を次に示す
講習会
2006/05/01
講習名
指導員名
受講者名
パソコン
加藤
中野
パソコン
加藤
立花
パソコン
高橋
中野
パソコン
高橋
立花
データベース
鈴木
十勝
データベース論(3回目)
41
リレーショナルデータベース入門
第三章
リレーショナル操作言語とリレーショ
ナル代数
2006/05/01
データベース論(3回目)
42
2006/05/01
データベース論(3回目)
43
データ操作(Data
Manipulation)
• データ操作とは
– データの検索(retrieval)
– データの更新(Update)
• リレーションへの更新操作
– リレーションへのタップルの挿入(insertion)
– リレーションから不要になったタップルの削除
(deletion)
– 古くなった(out-of-date)タップルの属性値の修正
(modification)
2006/05/01
データベース論(3回目)
44
2006/05/01
データベース論(3回目)
45
• リレーショナルデータモデルの操作言語の体系
– リレーショナル代数(Algebra)
– リレーショナル論理(Calculus)
• タップルリレーショナル論理
• ドメインリレーショナル論理
• リレーショナル完備(relational complete)
2006/05/01
データベース論(3回目)
46
2006/05/01
データベース論(3回目)
47
• リレーショナル代数
– 4つの集合演算
•和
差
• union difference intersection
共通
direct product
直積
– 4つのリレーショナル代数特有の演算
• 射影
• projection
2006/05/01
選択
selection join
結合
データベース論(3回目)
商
division
48
2006/05/01
データベース論(3回目)
49
• リレーショナル代数は以下の5つの演算からなる
–
–
–
–
–
和集合演算(union)
差集合演算(difference)
直積演算(direct product)
射影演算(projection)
選択演算(selection)
2006/05/01
データベース論(3回目)
50
• 和両立(union compatible)
– リレーションR(A1, A2, ---,An)とS(B1, B2, ---,Bm)が
• RとSの次数が等しい(n=m)
• 各i(1 ≦ i ≦ n)について,Ai とBi のドメインが等し
い(dom(Ai)=dom(Bi))
ときに成立
2006/05/01
データベース論(3回目)
51
2006/05/01
データベース論(3回目)
52
2006/05/01
データベース論(3回目)
53
和集合演算(Union)
• リレーションR(A1,
A2,……,Am)とS(B1, B2,
……, Bn)が和両立
• R∪S={t|t∈R∨t∈S}
会員名
所属
内線番号
中野
X11
1200
鈴木
X11
1235
森永
X509
1331
CA∪DB
CA
会員名
所属
内線番号
高橋
X11
1234
鈴木
X11
1235
森永
X509
1331
北野
X509
1332
2006/05/01
DB
会員名
所属
内線番号
中野
X11
1200
高橋
X11
1234
鈴木
X11
1235
森永
X509
1331
北野
X509
1332
データベース論(3回目)
54
2006/05/01
データベース論(3回目)
55
差集合演算(Difference)
• リレーションR(A1,
A2,……,Am)とS(B1, B2,
……, Bn)が和両立
• RーS={t|t∈R∧t∈S}
DB
会員名
所属
内線番号
中野
X11
1200
鈴木
X11
1235
森永
X509
1331
CA
会員名
所属
内線番号
高橋
X11
1234
会員名
所属
内線番号
鈴木
X11
1235
高橋
X11
1234
森永
X509
1331
北野
X509
1332
北野
X509
1332
2006/05/01
CAーDB
データベース論(3回目)
56
2006/05/01
データベース論(3回目)
57
共通集合演算(Intersection)
• リレーションR(A1,
A2,……,Am)とS(B1, B2,
……, Bn)が和両立
• R∩S={t|t∈R∧t∈S}
DB
会員名
所属
内線番号
中野
X11
1200
鈴木
X11
1235
森永
X509
1331
CA
会員名
所属
内線番号
高橋
X11
1234
鈴木
X11
1235
森永
X509
1331
北野
X509
1332
2006/05/01
CA∩DB
会員名
所属
内線番号
鈴木
X11
1235
森永
X509
1331
データベース論(3回目)
58
2006/05/01
データベース論(3回目)
59
2006/05/01
データベース論(3回目)
60
拡張型直積集合演算
(Expanded Direct Product)
• リレーションR(A1, A2,……,Am)とS(B1, B2,
……, Bn)があるとき
• R×S={(r, s)|r∈R∧s∈S}
• RとSが異なる場合、R×Sのカラムは、
R.A1, R.A2, ……, R.Am, S.B1, S.B2, ……,
S.Bnと名前付けされる
2006/05/01
データベース論(3回目)
61
2006/05/01
データベース論(3回目)
62
写像演算(Projection)
• リレーションR(A1, A2,……,An)とするとき、
X={Ai1, Ai2, …, Aip} (1≦i1<i2<…<ip≦n)を属
性集合とする
• RのX上の写像R[X]は、
R[X]={u|t∈R∧u=t[Ai1, Ai2, …, Aip])
である
2006/05/01
データベース論(3回目)
63
• 選択演算(selection, restriction)
– Θ-比較可能(θ-comparable)
• ここでΘは2項の述語で具体的には
• >,≧,=,≦,<,≠ のいずれかとする
– Θ-選択演算
• R(A1, A2, ---,An)をリレーションとするとき
• Rの属性AiとAj上のΘ-選択をR[Ai θ Aj]と書く
2006/05/01
データベース論(3回目)
64
θ‐比較可能(θ‐comparable)
• リレーションR(A1, A2,……,An)の属性Aiと
Ajは同じドメインの上で定義されており
(dom(Ai)=dom(Aj))、かつRの任意のタッ
プルのAi値とAj値は空値をとならいとき常
に、
t[Ai]θt[Aj]
の真偽が決まる場合
2006/05/01
データベース論(3回目)
65
θ‐選択演算(θ‐selection)と
θ‐結合演算(θ‐join)
• θ‐選択演算(θ‐selection)
– リレーションR(A1, A2,……,An)の属性AiとAjが
θ-比較可能
– R[AiθAj]={t|t∈R∧t[Ai]θt[Aj]}
• θ‐結合演算(θ‐join)
– リレーションR(A1, A2,……,Am)とS(B1, B2,
……, Bn)の属性AiとBjがθ‐比較可能
– R[AiθBj]S={v|v∈R×S∧v[R.Ai]θv[S.Bj]}
– AiとBjを結合属性(join attribute)と呼ぶ
2006/05/01
データベース論(3回目)
66
2006/05/01
データベース論(3回目)
67
2006/05/01
データベース論(3回目)
68
2006/05/01
データベース論(3回目)
69
2006/05/01
データベース論(3回目)
70
2006/05/01
データベース論(3回目)
71
自然結合(natural join)
• リレーションR(A1, A2,……,Am)のS(B1, B2,
……, Bn)に共通属性集合{C1, C2, …, Cl}
があったとき
• R*S =
(R[R.C1=S.C1]S∩R[R.C2=S.C2]S∩…∩
R[R.Cl=S.Cl]S)[R.A1, R.A2, …,R.Am,
S.D1, S.D2, …, S.Dn-l]
• ここで、S.D1, S.D2, …, S.Dn-lはSの属性集合から、
順番を保持したまま、C1, …, Clを除いたもの
2006/05/01
データベース論(3回目)
72
2006/05/01
データベース論(3回目)
73
自然結合と結合のわな
使用部品[工場名,部品]
使用部品
工場名
部品
F1
ボルト
F2
ボルト
自
然
結
合
工場名
部品
供給元
F1
ボルト
S1
S2
F1
ボルト
S2
S1
F2
ボルト
S1
F2
ボルト
S2
工場名
部品
供給元
F1
ボルト
S1
F1
ボルト
F2
ボルト
使用部品[部品, 供給元]
2006/05/01
部品
供給元
ボルト
S1
ボルト
S2
データベース論(3回目)
74
商演算(division)
• リレーションR(A1, A2,……,An-m, B1, B2, …, Bm)のS(B’1, B’2, ……,
B’m)があり、BiとB’iのドメインが同じである
• R[A1, A2,……,An-m, B1, B2, …, Bm÷B’1, B’2, ……, B’m)]S={v|v∈
R[A1, A2,……,An-m ] ∧(∀u∈S)((v, u)∈R)}
顧客
顧客名 購入部品名
C1
ボルト
製造部品
部品名
商
顧客 [購入部品名÷部品名]製造部品
C2
ボルト
ボルト
C2
ナット
ナット
C3
ナット
C2
C4
ナット
C4
C4
ボルト
2006/05/01
データベース論(3回目)
顧客名
75
2006/05/01
データベース論(3回目)
76
2006/05/01
データベース論(3回目)
77
リレーショナル代数表現
• 質問表現(query expression)としてのリ
レーショナル代数表現
• リレーショナルデータベースDBはn個の
リレーションR1, R2, …, Rnからなるとする
(これらは実リレーションと呼ぶ)
• 定値リレーションは定数と同じように利
用できる
2006/05/01
データベース論(3回目)
78
リレーショナル代数表現の定義
(1) 実リレーションRは代数表現である
(2) 定値リレーションCは代数表現である
(3) RとSを代数表現とするとき、RとSが和両立ならば、
R∪S、 R-Sは代数表現である
(4) RとSを代数表現とするとき、R×Sは代数表現であえ
る
(5) Rを代数表現、{Ai1, Ai2, …, Ail}をRの属性集合とする
時、R[Ai1, Ai2, …, Ail]は代数表現である
(6) Rを代数表現、AiおよびAjをRの属性でθ‐比較可能と
するとき、R[AiθAj]は代数表現である
(7) (1)~(6)で定義されるもののみが代数表現である
2006/05/01
データベース論(3回目)
79
拡張リレーショナル代数
• 三値論理
– 二値論理の拡張(空を含む論理演算)
• 拡張演算体系
– 真正θ‐選択と推量θ‐選択演算
– 真正θ‐結合と推量θ‐結合演算
– 圏外和演算と圏外θ‐結合演算
2006/05/01
データベース論(3回目)
80
リレーショナル代数の拡張目的
• θ‐比較可能であるためには、属性値が空
値となってはならない
• 一般に主キー属性のみが空値が許され
ていない
• θ‐選択演算やθ‐結合演算が定義できなく
なる
• 空値を許しても演算ができるように代数
系を拡張する
2006/05/01
データベース論(3回目)
81
三値論理における真理値表
• 未知(unknown, ωであらわす)
• 否定:¬(F)=T、¬(ω)=ω、¬(T)=F
論理積
論理和
∧
F
ω
T
∨
F
ω
T
F
F
F
F
F
F
ω
T
ω
F
ω
ω
ω
ω
ω
T
T
F
ω
T
T
T
T
T
2006/05/01
データベース論(3回目)
82
真正θ‐選択と推量θ‐選択
• リレーションRの属性AiとAj(ドメインは同
じ)がある
• 真正θ‐選択演算
R[AiθAj]={t|t∈R∧t[Ai]θt[Aj]≡T}
• 推量θ‐選択演算
R[AiθωAj]={t|t∈R∧t[Ai]θt[Aj]≡ω}
2006/05/01
データベース論(3回目)
83
真正θ‐結合と推量θ‐結合
• リレーションRとSの属性AiとBj(ドメインは
同じ)がある
• 真正θ‐結合演算
R[AiθBj]S={(t, u)|t∈R∧u∈S∧ t[Ai]θu[Bj]
≡T}
• 推量θ‐結合演算
R[AiθωBj]S={(t, u)|t∈R∧u∈S∧ t[Ai]θu[Bj]
≡ω}
2006/05/01
データベース論(3回目)
84
圏外和演算と圏外θ‐結合演算
• 圏外和(outer union):和両立を満たさないリレーション間の和
• リレーションR(A1, A2, …, Ap, B1, B2, …, Bq)とS(B1, B2, …, Bq, C1,
C2, …, Cr)がある
• R’= R×C, S’=C’×Sとする。ここで、CとC’はC1, C2, …, CrとA1,
A2, …, Apを属性として持つ(ただし、値はすべて空とする)リレー
ションである
• ここで、R ∪ S=R’∪S’を圏外和とよぶ
• 圏外差演算と圏外共通演算も同様に定義できる
• 圏外θ‐結合(outer θ-join)も本来結合できないものを結合する手
段である
• R(A1, A2, …, Ap, B1)、S(B2, C1, C2, …, Cq)とし、B1とB2は同は同じ
ドメインとする
2006/05/01
データベース論(3回目)
85
圏外θ‐結合演算
• ここで、R[B1 θ B2]Sを圏外θ‐結合とよぶ
• R[B1 θ B2]S=T∪(R’×D)∪(D’×S’)
• ここで、
T=R[B1θB2]S
R’=R-T[A1, A2, …, Ap, B1]
S’=S-T[B2, C1, C2, …, Cq]
DとD’はすべて空値のSとRに対応するリレーショ
ン
2006/05/01
データベース論(3回目)
86
まとめ
• 前回の復習
– リレーションとは
– リレーションの第一正規形→単純なドメインから構成
される(必須事項)
– キー概念
• 一貫性制約(ドメイン制約、キー制約、外部キー
制約、関数従属性、多値従属性)
• リレーショナル代数による各種の演算→検索
2006/05/01
データベース論(3回目)
87
宿題
• レポート課題
– 関数従属性がなぜ一貫性制約となるか、簡単に説
明せよ
– θ-選択演算とθ-結合演算の例を、簡単なリレーション
のインスタンスを自分で作成し、演算例を示せ。
• 締め切り:5月15日タイムスタンプ有効にて電子
メールで
– メールアドレス:[email protected]
– サブジェクト:データベース論第三回課題
– メール本文:必ず学籍番号、氏名を記入
2006/05/01
データベース論(3回目)
88