スライド 1 - 小林利臣のホームページ

データベース(1)
①デ-タベース方式
②データベースの設計(正規化)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
1
①データベース方式
(p228~)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
2
(1)DBの特徴-DBとは(例を用いて)
みなさんの「成績」
 個人別にどうなっているか
 教員にとっては
科目別、・・・
 大学運営の立場からは
教員別、・・・・
履修テーブル
学学科科科単教教成
生生目目目位員員績
番名番名区 番名
号 号 分 号
データはいろいろな角度から見たい
 データは1個所にまとめておきたい
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
3
(2)DBのモデル-DB構造の種類
①階層(Tree)型DB

1対多の親子関係
階層型
もはや使われない
②ネットワーク(網)型DB
N対M 高速
銀行オンラインなど
 DBMS例:IMS
ネットワーク型

③関係型DB(次のスライド)
表で管理する
 DBMS例:DB2、Oracle、Access、
Microsoft SQL Server データベース

『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
4
関係型DB(Relational DataBase)
列
表の集合(p236)
①行
Record
②列
Field
③表
Table
行
商品名 単価
PV60 123,000
BPR720 56,800
MO230 98,500
主キー(PrimaryKey)
 別の行と区別できる「識別列」
(一意、同じ値がない)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
5
キー(p236)
★他の表の主キーを参照している列
主キー
外部キー
社員番号 社員名 部署番号 年齢
34567 吉田太郎
330
45
34234 山野晶子
120
19
32456 後藤士郎
349
32
:リレーション)
これで「山野晶子」が
「営業課」であることがわかる
もう1つ
外部キー
があります
部署番号
120
330
349
主キー
『データベース』
部署名 部署長社員番号
営業課
23456
人事課
34567
総務課
32345
行
列
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
6
(3)データベース管理システム(DBMS
、p229)
データを蓄積するための枠組みと
検索の仕組みを
提供するソフトウェア
多くの人が
同時に
(直接)操作言語
プログラム
(操作言語)
データベース管理システム
(DBMS)
データベース
(大量)
挿入、更新、削除
検索
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
7
DBMSの機能(p229)
データベース定義(⑤データ構造の変更機能)

利用権限
データ操作(③データの取出し機能)

操作言語
トランザクション管理
詳細説明は
後で(次回も含めて)
(①同時実行制御機能、②データの一貫性保証機能)
リカバリ処理(④障害復旧機能)
運用管理

インデックスなど再編成
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
8
②データベースの設計
(ここでは「RDBの正規化」を中心に)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
9
(1)データベース設計の流れ
①データ分析(p231)
 データの洗い出し/データの整理
画面設計(第12回で)
ここは「流れ」を理解
②データ設計(p233)
 E-R図(後期第5回で)
③表の設計(p239)
・・・データ間の関係を明確に
・・・データを「関係表」で表す
 正規化(この後)
 制約/ビュー/インデックス/アクセス権(次回)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
10
(2)データベース設計ー正規化(p239)
データの重複、矛盾が起こらないように
適正に表を分割する
履修テーブル
まずデータを
“長い”「表」(テーブル)
で表現する
→
「表」
を正規化(分割)する
学 学 科 科 科 単 教 教 成
生 生 目 目 目 位 員 員 績
番 名 番 名 区
番 名
号
号
分
号
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
11
正規化の手順(1、履修テーブルを例にして)
成績は ← 学生番号、科目番号
キー
学
生
番
号
科 成
目 績
番
号
データ「成績」
を決めるキーは?
残りは
学 科 科 単 教 教
生 目 目 位 員 員
名 名 区
番 名
分
号
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
12
正規化の手順(2)
学 科 科 単 教 教
生 目 目 位 員 員
名 名 区
番 名
分
号
(残りのデータを対象に)
学生名は ← 学生番号
残りは
『データベース』
科 科 単 教 教
目 目 位 員 員
名 区
番 名
分
号
キ
ー
学 学
生 生
番 名
号
データ「学生名」
を決めるキーは?
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
13
正規化の手順(3)
科 科 単 教 教
目 目 位 員 員
名 区
番 名
分
号
(さらに残ったデータを対象に)
キー「科目番号」
で決まるデータは?
科目番号で →
科目名、科目区分、単位、教員番号
キ
ー
科 科 科 単 教
目 目 目 位 員
番 名 区
番
号
分
号
残りは
『データベース』
教
員
名
データ「教員名」は
キー「教員番号」で決まる
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
14
正規化の結果
主キー
学
生
番
号
科 成
目 績
番
号
「主キーだけ」で
決まる「列」ごとに
テーブル分割する
テーブル間の関係を
「外部キー」で表す
外
部
学 学
生 生
番 名
号
主キー
『データベース』
外部
科 科 科 単 教
目 目 目 位 員
番 名 区
番
号
分
号
主キー
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
教 教
員 員
番 名
号
主キー
15
正規化された実際のデータ(例)
学生番号 科目番号 成績
915110023
134
92
915110023
155
88
915110023
165
65
915310056
135
77
915310059
135
54
教員の担当変更があっても
1行のみの変更で
=「データの整合性維持」
(p240)
外
部
科目番号
科目名
科目区分 単位 教員番号
134
情報処理論
基幹A
2
201 →255
135
情報処理論
基幹A
2
255
155 応用情報処理論
基幹B
2
201
165 情報システム論
専門
2
201
外
部
学生番号
915110023
915110056
915110059
『データベース』
学生名
阿部
井上
岡部
外
部
正規化されていないと
科目番号134履修者の
全データ変更が必要
教員番号 教員名
201 小林
255 福永
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
16
正規化の練習:次のテーブルを正規化しなさい
売上テーブル
年 得 得 得
月 意 意 意
日 先 先 先
コ 名 支
ー
店
ド
コ
ー
ド
得
意
先
支
店
名
商 商 数 単
品 品 量 価
コ 名
ー
ド
(1)商品は得意先支店に売る。
(2)商品が決まれば単価も決まる。
(3)得意先支店が決まれば得意先は決まる。
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
17
売上テーブル
商品マスタ
年 得 商 数
月 意 品 量
日 先 コ
支 ー
店 ド
コ
ー
ド
商 商 単
品 品 価
コ 名
ー
ド
(2)商品が決まれば
単価も決まる
(1)商品は得意先支
店に売る
『データベース』
(3)支店が決まれば
得意先も決まる
(4)コードが決まれば
名称も決まる
支店マスタ (一般ルール)
得
意
先
支
店
コ
ー
ド
得
意
先
支
店
名
得
意
先
コ
ー
ド
得
意
先
名
支店マスタ
得意先マスタ
得
意
先
支
店
コ
ー
ド
得
意
先
コ
ー
ド
得
意
先
支
店
名
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
得
意
先
コ
ー
ド
得
意
先
名
18
End
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
19
データベース(2)
③データ操作(RDB前提)
④トランザクション処理
⑤データウェアハウス(DWH)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
20
③データ操作
データ抽出などの操作方法
(RDBを前提として)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
21
(1)関係型DBの操作言語(SQL/DML)
 Structured Query Language
 SELECT(p243)
選択
 射影
 結合

DBMSの機能(前回)
③データの取出し機能
 INSERT
 UPDATE
 DELETE
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
22
関係演算(select、p244)
商品名 売上月 数量
PV60
1月
13
BPR720 1月
18
MO230 1月
3
PV60
2月
15
BPR720 2月
20
MO230 2月
5
商品名 単価
PV60 123,000
BPR720 56,800
MO230 98,500
結合
Select * from 売上表
where 売上月 = “1月”
売上高
商品名 売上月 数量 単価
13 123,000 1,599,000
1月
PV60
18 56,800 1,022,400
BPR720 1月
3 98,500 295,500
MO230 1月
15 123,000 1,845,000
2月
PV60
20 56,800 1,136,000
BPR720 2月
5 98,500 492,500
MO230 2月
選択
商品名 売上月 数量 単価
売上高
PV60
1月
13 123,000 1,599,000
BPR720 1月
18 56,800 1,022,400
MO230 1月
3 98,500 295,500
Select 商品名 from 売上表
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
射
影
商品名
PV60
BPR720
MO230
23
集合演算(教科書にない)
積演算(AND)
和演算(OR)
商品名
PV60
BPR720
MO230
単価
123,000
56,800
98,500
『データベース』
商品名
BPR990
BPR720
MO230
PV60-N
単価
80,000
56,800
98,500
100,000
商品名
BPR720
MO230
単価
56,800
98,500
商品名 単価
PV60 123,000
BPR720 56,800
MO230 98,500
PV60-N 100,000
BPR990 80,000
こういう操作も
ときには必要
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
24
(2)関係型DBの定義言語(SQL/DDL)
DBMSの機能(前回)
⑤データ構造の変更機能
CREATE(p243)
 Table、View(p238)、Index(p238)
 Fieldを定義(型、長さ、・・・)
 キーには制約(p237)
非NULL制約
一意性制約(主キー)
参照制約(外部キー)
学生番号
915110023
915110056
915110059
学生名
阿部
井上
岡部
DBMSの機能(前回)
②データの一貫性保証機能
GRANT
 アクセス権(p238、第5回)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
25
④トランザクション処理
(p250~)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
26
(1)トランザクション(Transaction、p250)
依頼元(端末のプログラム)から
処理機構(サーバのプログラム)に
要求する1連の(途切れない)
処理単位
Bさんの残高を読み込む
3万円の入金処理を行う

処理が途中で中断されてしまうと
正しい処理が行われなくなる
Bさんの信用を更新する
Bさんの残高を書き出す
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
27
(2)排他制御(トランザクションを混線させない、p251)
Aさん
Aさん
Bさん
Bさん
Aさん
Bさん
一瞬遅い
使いたい
Lock
使いたい
使いたい
使いたい
Unlock
Lock
一瞬遅い
使いたい
Aと同時
待たせて
に処理し
てよいか
待たす
処理終わり
自動的に始まる
処理を重ねない
Bさん口座:+3万円
処理終わり
Unlock
Bさん口座:-5万円
Bさん口座:+3万円
Bさん口座:-5万円
DBMSの機能(前回)
①同時実行制御機能
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
28
占有ロック(exclusiveロック)
Lockにも2種類ある
 データの参照も許さない
共有ロック(shareロック)
 データの更新(削除)だけをロックする
効率は良いが・・・
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
29
(3)障害発生に備えたバックアップ
バックアップの考え方:第5回
データベース特有の障害対応
 ログファイル(p252)
ログファイル
更新処理
(ジャーナルファイル)
●更新前情報
●更新後情報
をDBMSが保存
※回復に利用する
『データベース』
定期的に
データベース
バックアップ
ファイル
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
(p202)
30
(4)リカバリ処理
ロールバック(動的回復、p252)
DBMSの機能(前回)
④障害復旧機能
 トランザクション開始前の状態に回復する
DBMSが自動的に行う
– ログファイルを使って
ロールフォワード(静的回復、p252)
 障害直前の状態に回復する
手動で行う
– バックアップデータと
ログファイルを使って
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
31
⑤データウェアハウス
(p72)
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
32
DWH(Data Warehouse、p72)
経営管理の意思決定を支援するデータ
の集合
顧客別、商品別、・・・
売上、コスト、・・・
 特徴
目的別のデータマート
基幹DB
データマート
(売上)
データマート
(経費)
ホスト・コンピュータ
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
33
DWHのイメージ
目的別に=>
DataMart
操作例
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
34
データマイニング(p72)
 種々の統計解析手法を用いて
大量のデータから
隠れた関係性や意味を見つけ出す手法
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
35
End
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
36
Link先
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
37
参照制約のデータ(例)
学生番号 科目番号 成績
915110023
134
92
915110023
155
88
915110023
165
65
915310056
135
77
915310059
135
54
(戻る)
教員333は存在しない
(参照制約指定があれば)
「応用情報処理論」行は
挿入できない
外
部
科目番号
科目名
科目区分 単位 教員番号
134
情報処理論
基幹A
2
201
135
情報処理論
基幹A
2
255
155 応用情報処理論 基幹B
2
333
165 情報システム論
専門
2
201
外
部
学生番号
915110023
915110056
915110059
『データベース』
学生名
阿部
井上
岡部
外
部
教員番号 教員名
201 小林
255 福永
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
38
DWHでの分析(Slice)
期間
(すべて)
合計 : 売上高
製品
ステレオ
テレビ
ビデオ
総計
地区
東部
南部
1980
1380
1680
5040
北部
1890
1290
1590
4770
1800
1300
1500
4600
総計
5670
3970
4770
14410
地域別・製品別の売上げ
期間
1月
合計 : 売上高
地区
東部
南部
北部
総計
製品
ステレオ テレビ
ビデオ
総計
360
160
260
780
330
130
230
690
300
200
200
700
990
490
690 2170
1月の地域別・製品別の売上げ
『データベース』
期間
2月
合計 : 売上高
地区
東部
南部
北部
総計
製品
ステレオ テレビ
ビデオ
総計
660
460
560 1680
630
430
530 1590
600
400
500 1500
1890
1290
1590 4770
2月の地域別・製品別の売上げ
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
39
Dice
製品
(すべて)
合計 : 売上高
地区
東部
南部
北部
総計
期間
1月
2月
3月
780
690
700
2170
1680
1590
1500
4770
2580
2490
2400
7470
総計
5040
4770
4600
14410
(すべて)
合計 : 売上高
製品
ステレオ
テレビ
ビデオ
総計
期間
1月
2月
990
490
690
2170
3月
1890
1290
1590
4770
(すべて)
合計 : 売上高
製品
ステレオ
テレビ
ビデオ
総計
地区
東部
南部
1980
1380
1680
5040
北部
1890
1290
1590
4770
1800
1300
1500
4600
総計
5670
3970
4770
14410
地域別・製品別の売上げ
地域別・期間別の売上げ
地区
期間
2790
2190
2490
7470
総計
5670
3970
4770
14410
期間別・製品別の売上げ
『データベース』
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
40
DrillDown
(戻る)
発注日と販売店の集計表
95年で関東地区の詳細内容
多層化した
データを
掘下げて分析の
視点を追求する
『データベース』
関東地区で95年第4四半期の詳細内容
(C)Copyright, Toshiomi KOBAYASHI,2009-2015
41