データベース論P59ー61

4章 データベースの設計
p.59-78
1組+(2組)
051019
1
第4章データベースの設計
P59ー61
H102008 池上 直隆
H102403 花岡 智史
2
4章 データベースの設計(1)
• 関係データベースを構築する
→リレーションスキーマの記述が必要
• 現実世界のデータモデリングは
– 外部レベル
– 概念レベル
– 内部レベル
の3つで捉えられる
3
データベースの設計(2)
• 正規化
• データベースの設計
– 概念設計
– 論理設計
– 物理設計
• 開発方法論
4
リレーションスキーマの課題
• リレーションスキーマ
は複数の属性から構
成
• 設計者によって属性
の
グループ化が異なり、
不整合が生じる
• E.F.Coddは
リレーションの正規
化(normalization)の
理論を提案
5
リレーションの正規化
• 最適なリレーションは
– 更新してもタプルの値に不整合がおきない
– リレーションスキーマを変更しても影響が少ない
6
P 62 – 64
学 籍 番 号
H102054
H102145
名
佐々木
吉池
前
大輔
傑
担当ページ
(P62-63)
(P63-65)
7
問 3
主キーはナル値であってはならない!
「社員」無しなら、リレーションタプルの
「社員番号」が、ナル値になる
主キー(primary key)の定義
リレーションスキーマ
∴「なにわ」のタプルは追加できない
主キー
支
店
支 店 名
社
員
社 員 番 号
<P62>
8
リレーションの正規化(normalization)
9
4・2
正規化の方法
• 正規形(normal form):データベース設計での最適な基準のリレーション
• E.F.Codd : 第1正規形、第2正規形、第3正規形 の提案
• 第3正規形→ボイス-コッド(Boyce and Codd)正規形
10
<P63>
第一正規形
• 関係モデルの定義域・・・原子値(atomic value)の集合
• 原子値(atomic value)・・・これ以上細分化できない単純な値
例
・定義域「日付」の場合
要素“1997-04-01”は原子値
・定義域「年」「月」「日」の場合
要素 “1997” “04” “01” は原子値
11
第一正規形
定義域やリレーションの構成要素である属
性の値は原子値でなければならない
↓
この定義域から構成されるリレーション
↓
第一正規形(first normal form)
<P64>
12
図4・3(a)の例(複数の値を持つタプル)
支店に複数の課がある場合
↓
あるタプルは属性「課」に複数の値をもち、原子値をもつ属性になっていない
↓
第一正規形ではない
13
図4・3(b)の例 (構造を持つ属性)
• 属性「入社日」が構造を持った属性から構成されている
↓
• 「年」「月」「日」の直積した三つの定義域からなる「日付」を用いて属性「入社
日」を定義していることと同じ
↓ (属性は単純でなければならないという制約)
第一正規形ではない
入れ子型リレーション(nested relation)
*関係モデルでは、このような入れ子型リレーションは対象としない
14
図4・4 (図4・3を第一正規化)
第一正規形
*このリレーションは第一正規形にはなっているが、不整合が生じる
15
不整合
• “みなと”支店の所在地の“横浜”を変更するとき
→二つのタプルにその値がありますので、すべてを変更しないと不整合が生じ
ます。
• “はかた”支店の“第一課”は、別の支店の課と統合することになり、“はか
た”支店は新たに組織を変更する
→新たな組織が決まるまでに、このタプルを削除すると、“はかた”支店が“福
岡”にあるというデータは削除されるが、課をナル値にできないので、この
データを残すことはできない。(主キーの制約)
• 新たに“なには”支店を設けることになり、このタプルを追加したいが、まだ
課が決まっていません。
→課をナル値にしたタプルを追加することはできない。(主キーの制約)
<P65>
16
図4・4のリレーション
・図4・4のリレーション「支店」の場合
第一正規形だけでは、最適なリレーションが得られない
↓
高次の正規化を行う必要がある
・図4・4のリレーション「社員」の場合
入社日は、単純な定義域から構成されており、安定したリレーションになって
いる。
17
第二正規形
P65~P67
H102002 安島澄人
H102005 有坂秀則
18
第一正規形
• 更新を行うと不整合が
生じる。
• タプルにデータの冗長
がある。
19
関数従属性(1)
• {支店名,課}
↓
{所在地,代表電話番号,
課長社員番号}
20
関数従属性(2)
• {所在地}or{代表電話
番号}は{支店名}だけで
決定可能
• {課長社員番号}は{支
店名,課}によって決定
↓
部分従属
21
リレーションスキーマの正規化
• 支店:
支店名
↓
{所在地,代表電話番号}
• 課:
{支店名,課}
↓
{課長社員番号}
22
第二正規形リレーション
• 図4・5のリレーションに比べデータに冗長がない
• 更新による不整合も生じない。
23
第二正規形
• リレーションの候補キー(主キーを含む)に部
分従属する非キー属性をリレーションから除
き、すべての非キー属性は候補キーに完全
従属するようなリレーションにすること
24
第三正規形
pp.68~70
作成者
河合慎太郎 小林弘晃
25
第二正規形は安定しているか?(1)
• 図4-9は、属性が主キーに完全従属しているから第
二正規形である
26
第二正規形は安定しているか?(2)
• 情報更新した場合の不具合
– 属性の内容変更 →
– タプルの消去
→
全てを変更しなければならない
重要なデータの損失
27
不具合の原因
図4・9
• 属性は主キーに完全従属している、しかし他に関数
従属性が発生している
• 図4・9のように推移されて導出された関係従属性を
推移従属性
28
不具合への対処
• 推移従属性を取り除く
– 属性は候補キーに完全従属させる
– 全ての属性に推移従属が存在しないように分解する
29
第三正規形
• 属性が候補キーに全て完全従属し、かつ推移従属
性が存在しないリレーションを第三正規形という
30
BCNF・第四正規形
P.70
作成者
河合慎太郎 小林弘晃
31
第三正規形の安定性
• 第三正規形でもまだ完全とは言えない
• 不整合が生じるケース
– 以下3つの属性からなるリレーション「R」
A:社員名
B:Aが担当する製品名
C:製品の担当責任の課長
32
各属性の条件
A 社員名はそれぞれ独立したもの
B 一人の社員が複数の製品を担当
C 同一製品は複数の課長が責任をもつこと
がある
一人の課長は複数の製品の責任をもつこ
とはない
33
リレーション「R」の性質
図1 リレーション「R」のイメージ
• AによりBとCが定まる
• CによりBが定まる
34
(ボイス・コッド正規形)BCNF
R
図2 第三正規形をBCNFに正規化
• 図2のように正規化することをBCNFとよぶ
35
BCNFも完全ではない
• 一つのリレーション中の属性間に多値従属性
が存在すると不整合が生じる
• 多値従属性を除いたものを第四正規形
36
4章データベースの設計
4・3データベース設計の段階
P71~73
作成者 H102039 小池泰晴
H102077 塚田駿
37
データベース設計の段階
• 現実世界のデータ抽
象化は、概念レベル、
内部レベル、外部レ
ベルの三つからとらえ
ることができる
• データベースの設計
は、概念設計、論理
設計、物理設計の三
段階から行う
38
概念設計
• 概念設計:概念スキーマを作成すること
• 概念スキーマ:企業や組織体が興味を持つ現実世
界のデータを記述したもの(特定の業務処理や応用
処理に依存しないデータの構成、意味、関連)
• 概念スキーマは、データベースを直接実現するた
めに使用するのではなく、データベースを実現する
特定のDBMSから独立したデータモデルで記述する
39
論理設計
• 論理設計:概念スキーマをもとに、特定のDBMS
が提供するデータモデルに依存した内部スキー
マと外部スキーマを作成すること
• 実装依存よりDBMSのデータモデルに依存した
論理的な設計を行う
• 実装のためのデータベース全体のデータ構成
(内部スキーマ)と、特定の業務処理や応用処理
のためのデータ構成(外部スキーマ)を設計する
40
物理設計
• 物理設計:特定のDBMSが提供する物理的な実装レ
ベルの構成を記述した内部スキーマを設計すること
• 物理設計は、実装の記憶構造を記述する
• 記憶構造は、データへのアクセスを効率よく行うため
の索引(インデックス)付けや、データの格納方法や配
置法などの記述が含まれる
これらの機能と指定の仕方はDBMSに依存する
41
データベースの物理特性(P73)
作成者 H102039 小池泰晴
H102077 塚田 駿
42
データベースの物理特性(1)
データベースは、二次記憶装置である磁気ディスク装置
に格納される
DBMSは、アプリケーションからのデータベースアクセス
要求に対し、磁気ディスク装置からデータを主記憶装置
に読み出し処理を行う
アプリケーション
ア
ク
セ
ス
要
求
二次記憶装置
データベース
デ
ー
タ
読
み
出
し
処
理
主記憶装置
43
データベースの物理特性(2)
• 半導体メモリで構成されている主記憶装置のアクセス速度
はナノ秒の単位で、回転機構をもつ磁気ディスク(二次記憶
装置)はミリ秒の単位である
• 主記憶装置は、処理速度は望ましいが電源を切ると内容が
失われてしまう(揮発性)ことや、容量とコストの問題があるた
め、電源を切っても内容が残り(不揮発性)、大容量な構成が
可能な磁気ディスク装置にデータベースを格納している
記憶媒体
アクセス速度
性質
半導体メモリ
ナノ秒
揮発性
二次記憶装置 磁気ディスク
ミリ秒
不揮発性
主記憶装置
44
データベースの物理特性(3)
• 必要なデータだけに直接アクセスすれば、入出力
回数を最小にすることができる
方法:DBMSのデータへの索引(インデックス)付け
• 一度読み込んだデータが再び必要になったとき、
データが主記憶に保持されていれば処理効率を
向上することができる
そのためにDBMSは領域(バッファ)を用意し、入出
力の管理を行う
45
P74-76
本田清大
宮原智弘
46
4.4 データベースシステム開発方法論
47
48
開発ステージの特徴
• データベース管理プラットフォーム構築とアプ
リケーションプラットフォーム構築は独立ある
いは並行する
• すべての開発ステージを通して、データ分析と
設計は先行する
• すべての開発ステージを通して、設計情報は
リポジトリに蓄積する
• 企業活動の成長、拡大、変革とともに繰り返し
実行できる
49
4章 データベースの設計
4・4 データベースシステム開発方法論
発表者
H102036 北原 良一
H102084 東条 健志
P76-78 発表日11月5日
50
概念データモデリングステージ
• 概念データモデリングステージは、データ
ベースシステム開発方法論の中核となるもの
で、成果物はエンタプライズ概念スキーマで
ある
• 企業内のエンタプライズ概念スキーマは、企
業活動において使用するすべての実体型と
その関連を記述したものである
51
概念データモデリングステージ
• データ分析フェーズ
 データベース化に必要なデータの分析を行う
 エンタプライズ概念スキーマにより、すでに実体
型があるかどうかを分析する
 実体型がなければ概念データ設計フェーズを実
施する
 既存の外部スキーマの中に必要な外部データ
があるかを分析する
 外部データがなければアプリケーションプラット
ホーム構築ステージに移り、外部データ設計を 52
実施する
概念データモデリングステージ
• 概念データ設計フェーズ
データベースの概念設計を実施し、その結果
はエンタプライズ概念スキーマである
概念設計では正規化した実体型と関連を設
計する
53
概念データモデリングステージ
• ネーミング設計フェーズ・コード設計フェーズ
データ名称の命名基準と名前、コードの付与
基準と値の設計を実施する
企業標準
54
データベース管理
プラットフォーム構築ステージ
• データベース管理プラットホーム構築ステー
ジは、データベース管理プラットホームの実
装設計・構築を行う
• 実装設計・構築は、システムコスト、性能条件、
運用条件を考慮して行う
55
データベース管理
プラットフォーム構築ステージ
• 分散設計フェーズ
データの分散配置の戦略に基づく分散設計を
実施する
エンタプライズ概念スキーマは、複数のローカ
ル概念スキーマを統合・複数のローカル概念
スキーマに分割するための概念レベルのデー
タビューを表現する
エンタプライズ概念スキーマはグローバル概
念スキーマの位置付けでもあり、ローカル概
念スキーマに関連した分散配置情報の記述を
56
含む
データベース管理
プラットフォーム構築ステージ
• ローカル概念データ設計フェーズ
データベース管理プラットフォームに実際に
配置するデータベースの概念設計を行う
結果
ローカル概念スキーマ
57
データベース管理
プラットフォーム構築ステージ
• ローカル内部データ設計フェーズ
データベースの論理・物理設計を実施する
結果
ローカル内部スキーマ
ローカル内部スキーマは特定のDBMSのデー
タモデルで表される
58
データベース管理
プラットフォーム構築ステージ
• 構築フェーズ
データベース管理プラットフォームの生成と試
験を行う
59
アプリケーション
プラットフォーム構築ステージ
• アプリケーションプラットフォーム構築ステージは、
アプリケーションプラットフォームの実装設計・構築
を行う
• 外部データフェーズ
 アプリケーションに依存するデータベースの外部設
計を実施する
結
外部スキー
マ
果
60
アプリケーション
プラットフォーム構築ステージ
• 画面・帳票設計フェーズ
画面・帳票の設計を実施する
• トランザクション設計フェーズ
データベースへの操作においてデータの一貫
性を保障するためのトランザクションの設計を
実施する
• 構築フェーズ
アプリケーションプログラムの生成・データ
ベース管理プラットフォームとの接続試験を
61
実施する