第三章 関係データモデル

Download Report

Transcript 第三章 関係データモデル

3章 関係データモデル
p.37-58
1組
051019
1
3-1 関係データモデル
pp38~41
河合慎太郎
作成者
小林弘晃
小松勇介
2
リレーション(relation)とは
• 関係モデルの関係をリレーション
• リレーション
• 属性から構成され、その属性の値の組をタプル
• リレーションの集まりをデータベースとして表す
3
関係モデルの具体例
• リレーション名:「支店」「社員」
• 属性:「支店名」「所在地」・・・・・・・・「入社日」
• タプル:「みなと」「横浜」・・・・・・・・・「1995-09-01」
4
リレーションの数学的な意味(1)
• 関係モデルは、数学の集合論に基づいている
• 関係モデルの定義域は、それ以上細分化できない
値の集合
5
リレーションの数学的な意味(2)
• 定義域の要素を組み合わせたものを直積
• 直積のように、順序のある組又は順序対をタプル
6
リレーションスキーマ
現実世界にぞんざいする意味のある組み合わせは
直積の部分集合になります。
このリレーションの記述をリレーションスキーマといい
R(A1,A2,A3 ..... An)で記述される。
7
「店名」「地名」「電話番号」
R(A1,A2,A3) = 支店 ( 店名 、 地名 、 電話番号 )
属性の名前は、そのリレーションでの定義域の役割を表すように命名する。
店名
支店名
地名
所在地
電話番号
代表電話番号
R(A1,A2,A3)= 支店 ( 店名 、 地名 、 代表電話番号 )
8
例
「社員番号」「人名」「支店名」「日付」
R(A1,A2,A3 , A4)
= 社員 ( 社員番号 、 社員名 、 所属支店 、 入社日 )
・異なる属性は同じ定義域を持つことが可能
・「支店」の「支店名」と「社員」の「所属支店」
は同じ定義域「店名」をもつ
9
リレーションは従来のファイルとは異なる次の特性があります。
タプルの非順序性
集合の要素間に順序がないと同様に、タプルの間にも順序は存在しない
タプルの順序はリレーションの定義にはありません
ある属性あるいは属性の組で論理的に順序をつけることはできる
タプルの非同値性
集合は同じ要素を複数持つことはないので、リレーションにも同じ値を
持つタプルは存在しない
すべてのタプルは区別されなければならない
属性の値の原子性
リレーションの構成要素である属性は、単純な値、
すなわちこれ以上構造を細分化することが出来ない単一な構造の値である。
10
正規化
どの定義域を組み合わせてどのようなリレーションを定義するかは、
データベース設計の問題になります
図3・2の例では6種類の定義域から一つのリレーションスキーマ
「社員(社員番号、社員名、入社日、所属支店、所在地、支店代表電話番号」
を定義することが出来る。
11
3・2 関係データモデルの
データ操作
データ操作とは、データモデル機能の記述要素
の一つであり、データに対する操作規則を与え
るものである。
関係モデルのデータ操作は検索と更新に分けら
れる。
13
検索
検索は関係代数により行なわれる。
関係代数による検索捜査はデータベースへの
問い合わせに応えるためにリレーションからタ
プルを選択したり、いくつかのリレーションから
関連するタプルを結合するのに使用される。
14
更新
更新操作にはリレーションに関して追加(挿入)
削除、変更の三つの基本操作がある。
追加は、リレーションに新しいタプルを追加す
るときに使用される。
削除は、リレーションからタプルを削除するとき
使用される。
変更は、ある属性の値を変更するときに使用さ
れる。
※これらの更新操作を行なうときは整合性制約
を満たさなければならない。
15
関係代数
関係代数は、関係モデルのリレーションを操作する
ための代数である。
演算は、数学の集合論に基づく集合演算と、関係
データベースのために作られた、演算から構成され
る。
集合演算には、和集合演算、差集合演算、共通集
合演算、蓄積演算がある。
関係データベースのために作られた演算には、選
択演算、射影演算、結合演算、商演算がある。
また、これらの基本的な演算を拡張した、外結合演
算、外和集合演算がある。
16
和集合演算
和集合演算は、二つのリレーションの和集
合をとる。
二つのリレーションをRとSとする。その演算
結果のリレーションR∪Sは、RとSのタプル
がすべて含まれたリレーションからなる。
17
差集合演算
差集合演算は、和両立な二つのリレーションの
差集合をとる。
二つのリレーションをR、Sとすると、その演算
結果のリレーションR-Sは、Rにはあって、S
にはないタプルの集合のリレーションからなる。
18
共通集合演算
共通集合演算は、和両立な二つのリレーショ
ンの共通集合をとる。
二つのリレーションを、R、Sとすると、その演
算結果のリレーションR∩Sは、RとSのリレー
ションに共通して存在するタプルの集合のリ
レーションからなる。
19
第3章 関係データモデル
3・3関係代数(P45~47)
作成者 H102039 小池泰晴
H102077 塚田駿
20
差集合演算
• 和両立な二つのリレーション
(relation)の差集合をとる
• 二つのリレーション(relation)
をR,Sとすると、その演算結
果のリレーション(relation)R
-Sは、Rにはあって、Sには
ないタプル(tuple)の集合のリ
レーションからなる
• 交換の関係が成り立たない
R-S≠S-Rとなる
21
共通集合演算
• 和両立な二つのリレー
ション(relation)の共通集合
をとる
• 二つのリレーション
(relation)をR,Sとすると、そ
の演算結果のリレーション
(relation)R∩Sは、RとSのリ
レーション(relation)に共通
して存在するタプル(tuple)
の集合リレーションからな
る
22
直積演算
• 二つのリレーション
(relation)のタプル(tuple)
を組合せ連結した集合
をとる
• 意味を持たないタプル
(tuple)も含まれているこ
ともある
• 複数の演算を組み合わ
せた途中の結果として
の意味をもつ
23
選択演算
• リレーション(relation)からあ
る選択条件を満たすタプル
(tuple)だけを取り出してリ
レーションを構成する
• 属性の値と定数の比較、あ
るいは属性と属性の値の比
較を、属性名と比較演算子
の一つを用いて表す
• 選択条件は論理積(AND)、
論理和(OR)、否定(NOT)を
用いて論理式として表す
24
3.3 関係代数
P48-50
H102065 高埜 直樹
H102086 外松 真一
25
射影演算
• リレーションからある属性を取り出して構成
射影演算πは
π<属性の並び>(リレーション名)
と表わされる
26
・もとのリレーションには
同じ値ではないタプルが存在しない場合でも
演算結果では
同じ値をもつタプルが現れることがある。
なぜ、このようになるのだろうか?
27
• なぜなら
関係モデルのタプルの非同値性
• リレーション中に
同じ値のタプルを複数もてない
• よって
演算結果のリレーションから
重複したタプルは除去される
28
射影演算の例
• P48の図3・10
(P46の図3・8の直積演算の結果のリレーション)
• リレーション「支店_社員」から
• 支店名
• 所在地
• 代表電話番号を取り出し、射影演算を指定する
• この場合組み合わせが4回あるが、
演習結果のリレーションではそれぞれ1回しか現れない
29
結合演算
30
• 結合演算は2つのリレーショナルからある結合
条件を満たすタプルだけを取り出し構成する。
• 2つのリレーショナルRとSの中にある属性をそ
れぞれA,Bとすると・・・
→結合部分はAθBとなる。
・θは比較演算子(=,≠,<,>,≦,≧)
・AとBは同じ定義域。
• この結合条件を満たすとタプルは連結され演
算結果のリレーションに現れる。
• 結合演算はR <結合条件>Sと表せられる。
31
支店と所属支店が重複
リレーション
属性
•θに=を使用された結合演算→等結合(equi join)演算。
•図3.11のような重複しこの重複を除去した結合→自
然結合(natural join)演算、*で表す。
32
• 図3・11の自然結合演算は次のように指定できる。
→支店*支店名=所属支店 支店
• 結合演算は他の演算を用いて表せられ図3・11の等結
合演算
支店 支店名=所属支店 社員
↓ 直積演算と選択演算を用いてあらわせる
δ支店名=所属支店(支店×社員)
• この演算結果をリレーションに選択演算すると、図3・11
の等結合演算を同じリレーションが得られる。
33
•自然結合演算*は直積演算、選択演算、射影演
算を用いると・・・
Π支店名、所在地、代表電話番号、社員番号、社員名、入社日 (δ支店名=所属支店(支店=社員))
となる。
34
データベース論
テキストP51-P53のプレゼンテーション
発表日:平成16年10月27日(水)
〔改訂版〕
H102137 山田 雄大
H102021 大島 翔太
35
商演算
(division)
DBMS、CASEのどちらも担当
している担当者を選び出す
割る側のリレーション(条件)に該当する
タプルを選出し、リレーションを構成
36
外結合演算
(outer join)
2つのリレーションのいずれか一方、
または両方の全てのタプルを結合演算
左外結合演算(左のリレーションの全てのタプルを結合演算)
「社員」リレーションには「なにわ」
所属の社員がいないので、
社員についての属性はナル値
37
外和集合演算
(outer union)
部分的に和両立な属性については和集合をとり、
そうでない属性の値はナル値
夏目漱石と正宗白鳥はDBMSと
CASEの両方を担当しているので
全ての属性に値が入る
38
関係代数(relational algebra)と
関係論理(relational calculas)
• 関係代数・・・どのように検索するか
• 関係理論・・・何を検索するか
• 関係代数も関係理論も同じ問い合わせに対
して等価な記述能力
39
データベース論
p.54-55まで要約。
作成者不明
40
定義域制約
• 原子値でなければならない事を規定。
• 原子値(atomic value)とは、これ以上細分化
できない単純な値のこと。
41
キー制約(1)
• スーパキー(superkey)
• タプルを一意に識別できるようにするもの。
• 同じ値をもたないリレーションのタプルを一意
に識別できる属性、あるいは属性の組み合
わせ。
42
キー制約(2)
• キー(key)
• 一意性を保つためには除くことが出来ない極
小の属性の組み合わせ(極小スーパキー)を
リレーションスキーマのキーという。
43
44
関係データモデルの整合性制約
P56~P58
H102014 市川紘子(2~4)
H102402 橋詰奈美(5~7)
45
•一つのリレーションスキーマに存在する複数のキーを表す。
例(下の図より)
所在地
代表電話番号
しかし、一つの支店に二つ以上の代表電話番号があるものは候補キーにはなら
ない。
46
• 候補キーの中から、そのリレーションスキーマに最も
ふさわしい役割を与えたもの。
例(下の図より)
支店名 社員番号
47
(ナルあるいは空値ともいう)
• 値が存在しないという特別な値を意味する。
例(下の図より)
森 鴎外
48
参照制約
• 他所からの参照時にDBを正しい状態に保つ
ための整合性制約
• 参照するタプルは必ず存在しなければならな
いか
• 参照するタプルを削除するとき、扱いをどうす
るか
49
外部キー(foreign key)
• 二つのリレーションスキーマ
「R(・・・,FK,・・・)」
「S(PK,・・・」
• Sの主キー(PK)と同じ属性の定義域を持つ
属性がRにある
↓
• Rの属性を外部キーという
50
参照制約と外部キー
参照制約は外部キーによって定義される
51