Mais conteúdo relacionado
Mais de Shohei Yokoyama (15)
データベースシステム論10 - データベースの設計
- 2. 講義計画
• 関係データベースの歴史と基本概念
• SQLの基礎と応用(演習を含めつつ)
• データベースの設計と構成
• SQL問い合わせ処理とそれを支える技術
• 関係データモデル以外のデータベース
データベースシステム論 第 回2016 [ 10 ] 2p.
※現時点での予定です。進捗に応じて変更します。
27Apr.
20Apr.
13Apr.
25May
18May
11May
1June
8June
29June
22June
20July
13July
6July
27July
- 6. 概念設計 - 例(ER図-Peter Chen記法)
データベースシステム論 第 回2016 [ 10 ] 6p.
含む
ワインID
ラベル名
セットID
セット名
ワイン ワインセット
主キーに下線
1つのワインセットに対し
N本のワインが含まれる。
N 1
関係
実体
属性
- 8. 概念設計 - 例
データベースシステム論 第 回2016 [ 10 ] 8p.
ワインセット
1
セットID
セット名
顧客会員購入
購入ID 会員ID
名前
住所
(郵便番号)
N M
購入時刻
個数
- 10. 関数従属性
• 定義 (教科書p.52)
• 関数従属性はキー概念の一般化と考えられる。
• Xが主キーの時、YはX以外のすべての属性の集合
• ただし一般にはXは極小とは限らない
• 言い換えればXは超キーに相当する
データベースシステム論 第 回2016 [ 10 ] 10p.
X,YをそれぞれリレーショナルスキーマRの空でない属
性集合とする時、Rのインスタンスrが関数従属性X→Y
を 満 た す と は 、 r の す べ て の タ プ ル の 対
(t1, t2)に対して以下が成り立つことである。
t1.X = t2.X → t1.Y = t2.Y
- 11. 関数従属性 - 例
データベースシステム論 第 回2016 [ 10 ] 11p.
ワイン
ワイン
セット
N
含む
1
ワインID
ラベル名
セットID
セット名
顧客会員購入
購入ID 会員ID
名前
住所
(〒)
N M
購入時刻
個数
購入ID → 購入時刻,会員ID
購入ID, セットID → 購入時刻,会員ID,個数
購入ID → 購入時刻
購入ID → 会員ID
購入ID, セットID → 購入時刻
購入ID, セットID → 会員ID
購入ID, セットID → 個数
- 12. 関数従属性に関する推論と閉包
• 推論の例(教科書p.52ルール3)
• 閉包の定義
データベースシステム論 第 回2016 [ 10 ] 12p.
関数従属性A→BとB→Cが成り立つ時、A→Cは自明で
ある。この時「⊧」を用いて以下の様に記述する。
{A→B,B→C} ⊧ {A→C}
関数従属性集合Fが与えられたとき、FおよびFから推
論できる関数従属性を全て含んだ集合F+の事。
F+ ⊧ { F | Fr } (但しFrは次の式を満たすF ⊧ Fr)
F = {A→B,B→C} の時 F+ = {A→B,B→C, A→C}
- 13. 閉包F+ - 例
データベースシステム論 第 回2016 [ 10 ] 13p.
購入ID → 会員ID
会員ID → 名前, 住所
購入ID → 住所
購入ID → 名前, 住所
購入ID → 名前
F
F+
推論
会員ID → 名前
会員ID → 住所
ワイン
ワイン
セット
N
含む
1
ワインID
ラベル名
セットID
セット名
顧客会員購入
購入ID 会員ID
名前
住所
(〒)
N M
購入時刻
個数
- 15. 同値性 - 例
• 以下の関数従属性集合FとGが与えられた時
• F+とG+が等しい(互いに被覆する)ので
• FとGは同値である
データベースシステム論 第 回2016 [ 10 ] 15p.
購入ID → 会員ID
会員ID → 名前, 住所
購入ID → 住所
購入ID → 名前, 住所
購入ID → 名前
F
F+
推論
会員ID → 名前
会員ID → 住所
購入ID → 会員ID
会員ID → 名前
購入ID → 名前
会員ID → 住所
購入ID → 名前, 住所
G+
G
推論
購入ID → 住所
会員ID → 名前, 住所
- 16. 関数従属性の極小被覆
• 解説
• 等価な関数従属性集合のうち極小(重複のない)集合
• 定義:関数従属性の集合Gが極小である条件
• 概念設計を論理設計に繋げるために、関数従属
性集合Fと同値の極小被覆Gを求める
データベースシステム論 第 回2016 [ 10 ] 16p.
• Gに含まれる関数従属性の右辺は単一属性
• Gの関数従属性X→Aにおいて、Y⊂X(真部分集合)を
満たすYがあったとき、Y→Aを維持しない
• Gに含まれる任意の関数従属性fを削除したを集合F’
としたとき、FとF’が同値であってはならない
- 17. 極小被覆 - 例
データベースシステム論 第 回2016 [ 10 ] 17p.
• Fに含まれる関数従属性の右辺は単一属性
• Fの関数従属性X→Aにおいて、Y⊂X(真部分集合)を
満たすYがあったとき、Y→Aを維持しない
• Fに含まれる任意の関数従属性fを削除したを集合F’
としたとき、FとF’が同値であってはならない
購入ID → 購入時刻,会員ID
購入ID, セットID → 購入時刻,会員ID,個数
購入ID → 購入時刻
購入ID → 会員ID
購入ID, セットID → 購入時刻
購入ID, セットID → 会員ID
購入ID, セットID → 個数 {購入ID} ⊂ {購入ID, セットID}
削除不可
削除不可
削除不可
削除不可
- 18. 論理設計 - 例
データベースシステム論 第 回2016 [ 10 ] 18p.
ワイン
ワイン
セット
N
含む
1
ワインID
ラベル名
セットID
セット名
顧客会員購入
購入ID 会員ID
名前
住所
(〒)
N 1
購入時刻
個数
購入ID → 購入時刻
購入ID → 会員ID
購入ID,セットID → 個数
購入ID 購入時刻 会員ID セットID 個数
1 12/10 11:40 1
1
2
2
1
2 12/10 11:45 2
1
4
1
1
1 12/10 12:00 1 1 1
このスキーマを(効率的な)関係データモデルに変換する作業を正規化と呼ぶ
- 21. 非正規化データ例
ワインセット ソムリエ 年齢 価格 ワイン 評価
高級白ワイン 田崎信哉 50 10000 シャルドネ カテナ ★★★
セミヨンブロークンウッド ★★★
おたる ★
お買い得白ワイン 横山昌平 36 3000 おたる ★★
デリカート白 ★★★
ガロフォリ白 ★
お勧めワインセット 田崎信哉 50 150000 シャトー・ジレット ★★
オーパスワン ★★★
ヒル・オブ・グレイス ★
データベースシステム論 第 回2016 [ 10 ] 21p.
- 23. 第一正規形を満たさない箇所
ワインセット ソムリエ 年齢 価格 ワイン 評価
高級白ワイン 田崎信哉 50 10000 シャルドネ カテナ ★★★
セミヨンブロークンウッド ★★★
おたる ★
お買い得白ワイン 横山昌平 36 3000 おたる ★★
デリカート白 ★★★
ガロフォリ白 ★
お勧めワインセット 田崎信哉 50 150000 シャトー・ジレット ★★
オーパスワン ★★★
ヒル・オブ・グレイス ★
データベースシステム論 第 回2016 [ 10 ] 23p.
ココがダメ!
- 24. 第一正規形に正規化
ワインセット ソムリエ 年齢 価格 ワイン 評価
高級白ワイン 田崎信哉 50 10000 シャルドネ カテナ ★★★
高級白ワイン 田崎信哉 50 10000 セミヨンブロークンウッド ★★★
高級白ワイン 田崎信哉 50 10000 おたる ★
お買い得白ワイン 横山昌平 36 3000 おたる ★★
お買い得白ワイン 横山昌平 36 3000 デリカート白 ★★★
お買い得白ワイン 横山昌平 36 3000 ガロフォリ白 ★
お勧めワインセット 田崎信哉 50 150000 シャトー・ジレット ★★
お勧めワインセット 田崎信哉 50 150000 オーパスワン ★★★
お勧めワインセット 田崎信哉 50 150000 ヒル・オブ・グレイス ★
データベースシステム論 第 回2016 [ 10 ] 24p.
- 25. 第二正規形:冗長性の除去
データベースシステム論 第 回2016 [ 10 ] 25p.
複 合 候 補 キ ー か ら
部分的関数従属性を
持つ値はテーブルを
別 に せ よ !
候補キーKが複合キーであったとき、その一部のカラムXか
ら別のカラムYに関数従属性があるとき、YはKに対して部
分的関数従属性を持つという。
- 26. 第二正規形を満たすには…
データベースシステム論 第 回2016 [ 10 ] 26p.
ワインセット
評価
主キー候補
ソムリエ
年齢
ココで分割!
価格
部分的関数従属性
ワイン
ワインセット ソムリエ 年齢 価格 ワイン 評価
高級白ワイン 田崎信哉 50 10000 シャルドネ カテナ ★★★
高級白ワイン 田崎信哉 50 10000 セミヨンブロークンウッド ★★★
高級白ワイン 田崎信哉 50 10000 おたる ★
お買い得白ワイン 横山昌平 36 3000 おたる ★★
お買い得白ワイン 横山昌平 36 3000 デリカート白 ★★★
お買い得白ワイン 横山昌平 36 3000 ガロフォリ白 ★
お勧めワインセット 田崎信哉 50 150000 シャトー・ジレット ★★
お勧めワインセット 田崎信哉 50 150000 オーパスワン ★★★
お勧めワインセット 田崎信哉 50 150000 ヒル・オブ・グレイス ★
- 27. 第二正規形に正規化
データベースシステム論 第 回2016 [ 10 ] 27p.
ワインセット ソムリエ 年齢 価格
高級白ワイン 田崎信哉 50 200000
高級白ワイン 横山昌平 36 3000
お勧めワインセット 田崎信哉 50 10000
ワインセット ワイン 評価
高級白ワイン シャルドネ カテナ ★★★
高級白ワイン セミヨンブロークンウッド ★★★
高級白ワイン おたる ★
お買い得白ワイン おたる ★★
お買い得白ワイン デリカート白 ★★★
お買い得白ワイン ガロフォリ白 ★
お勧めワインセット シャトー・ジレット ★★
お勧めワインセット オーパスワン ★★★
お勧めワインセット ヒル・オブ・グレイス ★
- 28. 第三正規形
データベースシステム論 第 回2016 [ 10 ] 28p.
推移的関数従属性
をもつ値はテーブ
ル を 別 に せ よ !
候補キーKにおいて、K→Lという関数従属性を持つ時、
L→Kという関数従属性をもつKが存在する時、推移的関数
従属性を有するという。
- 29. 第三正規形を満たすには…
データベースシステム論 第 回2016 [ 10 ] 29p.
ワインセット ソムリエ 年齢 価格
高級白ワイン 田崎信哉 50 200000
お買い得白ワイン 横山昌平 36 3000
お勧めワインセット 田崎信哉 50 10000
ワインセット ソムリエ 年齢
価格
ココで分割!
推移的関数従属性
- 30. 第三正規形に正規化
データベースシステム論 第 回2016 [ 10 ] 30p.
ワインセット ソムリエ 価格
高級白ワイン 田崎信哉 200000
お買い得白ワイン 横山昌平 3000
お勧めワインセット 田崎信哉 10000
ソムリエ 年齢
田崎信哉 50
横山昌平 37
ワインセット ワイン 評価
高級白ワイン シャルドネ カテナ ★★★
高級白ワイン セミヨンブロークンウッド ★★★
高級白ワイン おたる ★
お買い得白ワイン おたる ★★
お買い得白ワイン デリカート白 ★★★
お買い得白ワイン ガロフォリ白 ★
お勧めワインセット シャトー・ジレット ★★
お勧めワインセット オーパスワン ★★★
お勧めワインセット ヒル・オブ・グレイス ★
- 31. テーブル設計
データベースシステム論 第 回2016 [ 10 ] 31p.
型
ワインセット varchar(20)
ソムリエ varchar(20)
価格 int
型
ソムリエ vhachar(20)
年齢 int
型
ワインセット varchar(20)
ワイン varchar(20)
評価 varchar(10)
t_wine_set
t_sommelier
t_wine
外部キー
- 33. 提出課題4 [本日の授業終了まで]
データベースシステム論 第 回2016 [ 10 ] 33p.
• 正規化テーブルからビューを作ってみよう!
• 第一正規形に見えるv_wineというビューを作れ!
• テーブルが1つの方がアプリからは使いやすいでしょ?
• 提出方法
• 学務情報システムにて
ワインセット ソムリエ 年齢 価格 ワイン 評価
高級白ワイン 田崎信哉 50 10000 シャルドネ カテナ ★★★
高級白ワイン 田崎信哉 50 10000 セミヨンブロークンウッド ★★★
高級白ワイン 田崎信哉 50 10000 おたる ★
お買い得白ワイン 横山昌平 36 3000 おたる ★★
お買い得白ワイン 横山昌平 36 3000 デリカート白 ★★★
お買い得白ワイン 横山昌平 36 3000 ガロフォリ白 ★
お勧めワインセット 田崎信哉 50 150000 シャトー・ジレット ★★
お勧めワインセット 田崎信哉 50 150000 オーパスワン ★★★
お勧めワインセット 田崎信哉 50 150000 ヒル・オブ・グレイス ★