14. リレーショナルデータベースの特徴,データウエアハウス

198 Views

January 12, 22

スライド概要

(リレーショナルデータベースの基本)(全15回)
URL: https://www.kkaneko.jp/cc/ds/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

埋め込む »CMSなどでJSが使えない場合

各ページのテキスト
1.

14. リレーショナルデータベースの 特徴,データウエアハウス URL: https://www.kkaneko.jp/cc/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1

2.

アウトライン 番号 項目 説明時間の 目安 14-1 リレーショナルデータベースの特徴(総 まとめ) 20分 14-2 情報検索とデータベース,Access, MySQL を用いた実演・実習 8分 14-3 14-4 14-5 14-6 索引 オープンデータ 日時情報 データウエアハウス 5分 2分 3分 6分 2

3.

14-1. リレーショナルデータベース の特徴(総まとめ) 3

4.

データベースシステム ・データベース管理システムは,データベースの管理等の機 能を持ったソフトウエア ・オンラインでデータを共有するときに,特に適する 取引 記入 データ保 存 データベー スシステム ネットワー ク 人工知能応用 センサー連携 4

5.

データベースシステム データベースシステムは,データベースを扱う IT のシステム データベースシステム = データベース(データの集まり) + データベース管理システム(ソフトウエア) コンピュータ 利用者 利用者 ネットワーク 記憶 装置 データベース データベース 管理システム 利用者 データベースシステム 5

6.

リレーショナルデータベースシステム データベースシステムの一種 コンピュータ 記憶 装置 リレーショナル リレーショナル データベース データベース 管理システム たくさんのテーブルが格納される あわせて リレーショナルデータベースシステム 6

7.

リレーショナルデータベースシステムの特徴 他のデータベースシステムと比べて • 機能が豊富,便利 • 問い合わせ(クエリ)は SQL で簡単にできる • データの形はテーブル.データベース設計しやす い.テーブル定義は簡単.学びやすい • 普及度はナンバーワン • リレーショナルデータベース管理システムにはさ まざまある.MySQL, マイクロソフト Access, Oracle, SQL Server, PostgreSQL, SQLite3, Firebird な ど.(無料で使えるものもある) 7

8.

リレーショナルデータベースシステムの機能 テーブル定義 問い合わせ(クエ リ) データ操作 トランザクション 機能 テーブル定義 データ型 SQL のキーワード CREATE TABLE CHAR, TEXT, INTEGER, REAL, DATETIME, BIT, NULL オートナンバー AUTOINCREMENT 主キー PRIMARY KEY 参照整合性制約 FOREIGN KEY, REFERENCES 射影、選択、結合 SELECT FROM WHERE 重複行除去(分解でも) DISTINCT 比較,範囲指定,パター =, <, >, <>, !=, <=, >=, BETWEEN, ンマッチ,AND/OR LIKE, AND, OR, IS NULL, IS NOT NULL 集計・集約 GROUP BY, MAX, MIN, COUNT, AVG, SUM 並べ替え(ソート) ORDER BY 副問い合わせ IN 挿入、削除、更新 INSERT INTO, DELETE FROM WHERE, UPDATE SET WHERE 開始、コミット、ロール BEGIN TRANSACTION, COMMIT, バック ROLLBACK データベース設計の基礎: ER図, 異状, 従属, 正規化, 正規形 8

9.

テーブルの例 テーブル名:商品 ID 商品名 単価 1 みかん 50 2 りんご 100 3 メロン 500 9

10.

テーブルと属性 テーブル ID テーブル名:商品 商品名 単価 1 みかん 50 2 りんご 100 3 メロン 500 「ID」と「商品名」と「単 価」の属性 10

11.

属性のデータ型 ID 1 2 3 オートナンバー integer autoincrement 商品名 みかん りんご メロン 短いテキスト char 属性名 単価 50 100 500 整数 integer テーブル の本体 ← Access での 日本語表示 ← SQL のキーワード ※ マイクロソフト Access では,autoincrement それぞれの属性のデータ型 ※オートナンバーは,自動で 1,2,3 のよ うに通し番号が付くもの 11

12.

属性のデータ型 Access の主なデータ 型 SQL のキーワー ド 短いテキスト 長いテキスト 数値 NULL char text integer, real 日付/時刻 Yes/No datetime bit, bool 空値 文字列 文字列 整数や浮動小数 点数 日付や時刻など ブール値 ※ 整数は integer, 浮動小数点数(小数付きの数) は real ※ 短いテキストは半角 255文字分までが目安 それ以上になる可能性があるときは長いテキスト 12

13.

テーブルの例 テーブル名:社員 テーブル名:部 ID 氏名 住所 所属 ID 部名 所在地 1 x aaa 1 1 XX AAAAA 2 y bbb 2 2 YY BBBBB 3 z ccc 1 x と z は,XX に所属 y は,YY に所属 テーブル名:商品 ID 1 2 3 商品名 みかん りんご メロン 単価 50 100 500 13

14.

テーブル間の関連 • テーブルは互いに「関連」しあっている テーブル名:部 テーブル名:社員 1対多 テーブル名:商品 多対多 x と z は,XX に所属 y は,YY に所属 • テーブル社員の複数行が,テーブル部の1行と関 連 • テーブル部の複数行が,テーブル商品の複数行と 関連 14

15.

関連の種類 • 一対一 テーブルの1行が,別のテーブルの1行と関連 • 一対多 テーブルの1行が,別のテーブルの複数行と関連 • 多対多 テーブルの複数行が,別のテーブルの複数行と関連 15

16.

主キー 通し番号、学生番号のように、1つのテーブルの中で 同じ値が2回以上出ないと前もって分かっている属性 ID 1 2 3 名前 単価 みかん 50 りんご 100 りんご 150 主キー 16

17.

参照整合性制約のイメージ メニューから お選びください 枝豆はないんですか? あるテーブルのある属性に格納できるデータには制約がつく 場合がある 17

18.

参照整合性制約 参照整合性制約の DDDD 付いた属性 ◇ テーブル名:購入 ID 購入者 商品ID 数量 1 X 1 10 2 Y 2 5 ◇ テーブル名:メニュー 名前 単価 ID 1 みかん 50 2 りんご 100 テーブル「購入」の商品IDの値は、必ず、 3 りんご 150 テーブル「商品」のIDの中から選ぶ DDDD 参照整合性制約 DDDD 主キー 18

19.

テーブル定義の例 ◇ テーブル名:購入 ID 購入者 商品ID 数量 1 X 1 10 2 Y 2 5 DDDD 主キー 参照整合性制約 DDDD ◇ テーブル名:メニュー 名前 単価 ID 1 みかん 50 2 りんご 100 3 りんご 150 DDDD 主キー create table 購入 ( ID integer primary key, 購入者 text, 商品ID integer, 数量 integer, foreign key(商品ID) references メニュー(ID)); create table メニュー ( ID integer primary key, 名前 text, 単価 integer); 19

20.

問い合わせ(クエリ) • 「問い合わせ(クエリ)」とは、 データベースの検索、集計・集約、ソート(並べ替 え)を行うこと • リレーショナルデータベースでの問い合わせ(ク エリ)の結果は、テーブル形式のデータ 20

21.

問い合わせ(クエリ)の仕組み 問い合わせ(クエリ) の結果は,テーブル形式の データ 問い合わせ (クエリ) のコマンド リレーショナル データベースシステム データの種類ごとに分かれ た、たくさんのテーブル 21

22.

SQL による問い合わせの例 ① SELECT * FROM 商品; ② SELECT 名前, 単価 FROM 商品; ③ SELECT 名前, 単価 FROM 商品 WHERE 単価 > 80; SQLは簡潔で単純! 22

23.

SQL の特徴 • 豊富な機能 • 簡単簡潔 • リレーショナルデータベースシステムの標準言語 • コマンドなので、自動実行も簡単.あとからの確 認も簡単 23

24.

SQL の利用イメージ SQLの作成、 編集、実行 SQLプログラム1 SQLプログラム2 SQLプログラム3 SQLコマンドのプログラムを 準備しておくことも可能 SQLのことを意識しない ことも多い リレーショナル データベースシステム 24

25.

14-2. 情報検索とデータベース,Access, MySQL を用いた実演・実習 25

26.

Excel の検索機能の例 • name 属性の値に「AD」を含むもの 元データ 検索結果 26

27.

SQL による検索機能の例 • name 属性の値に「AD」を含むもの SELECT * FROM employee WHERE name like '*AD*'; SQL 元データ (employee テーブル) 検索結果 27

28.

実演・実習用のデータベースファイル • 実演・実習用の Access データベースファイル ※ セレッソの利用者は,セレッソからダウンロー ド可能 • 「コンテンツの有効化」のメッセージが出たとき は、確認のうえ、次にすすむ • つぎのような表示が出たときは、確認のうえ、 「はい」 28

29.

Access を用いた実演・実習 ① データベースファイルは、大学のセレッソよりダ ウンロードできる ② 次の SQL を実行 SELECT * FROM employee WHERE name like '*AD*'; ③ 結果を確認 29

30.

Paiza.IO を用いた実演・実習 ① URL は https://paiza.io/ja ② 「コード作成を試してみる」をクリック ③ 「MySQL」を選ぶ 次ページへ続く 30

31.

• 次の SQL を実行、結果を確認 31

32.

14-3. 索引(インデックス) 32

33.

索引(インデックス)とは • 各種データ処理の高速化のためのもの • 本体となるデータに対して作成される 見出し語 アセンブラ データベース マシンラーニ ング 場所 35 110 169 索引(インデックス) データ本体 33

34.

索引(インデックス)の作成 • SQL を用いて作成可能 • 作成時に、テーブル名と、属性名を指定 MySQL Access テーブル employee の属性名 dep_id を用いた検索が 高速に。 34

35.

索引(インデックス)の仕組み メモリ 索引は、ディスク から読み込まれる ディスク 索引は、データ本 体とは別れている 35

36.

14-4. オープンデータ 36

37.

オープンデータ • 政府等が保有するデータがデジタルで公開 データカタログサイト https://www.data.go.jp/ 37

38.

専門家の間でも、データの共有は当然 • Kaggle のデータセットのページ https://www.kaggle.com/datasets 機械学習、データサイエンス、人工知能研究等のため 38

39.

14-5. 日時情報 39

40.

現在日時 • MySQL での現在日時の取得: now() Paiza.IO での実行結果 • Access での現在日時の取得: now() Access での実行結果 40

41.

• 多くのリレーショナルデータベース管理システム (Access や MySQL など)では、now を用いて、 現在日時の取得ができる。 • 「日時」は、SQL では datetime 日時 41

42.

14-6. データウエアハウス 42

43.

データウエアハウスとは • データの問い合わせ(クエリ)、特に、集計・集 約に向いたシステム • レコード(行)の挿入は行える • レコード(行)の更新、削除は原則行わない 氏 名 XX YY 予約内 予約日 容 おせちA 2019/12/1 おせちB 2019/12/4 キャンセ ル日 ZZ ZZ おせちB 2019/12/5 おせちA 2019/12/6 2019/12/6 商品 おせちA おせちA おせちB 価格 価格改定日 12000 2019/11/10 10000 5000 2019/11/20 2019/11/10 価格テーブル 予約テーブル 43

44.

データウエアハウスの特色 • 過去データがシステム内に残り続ける • レコード(行)の更新、削除を原因とする異状は 考えなくてよい (更新、削除を行わないから) • 正規形、正規化を考えなくてよい 氏 名 XX YY 予約内 予約日 容 おせちA 2019/12/1 おせちB 2019/12/4 キャンセ ル日 ZZ ZZ おせちB 2019/12/5 おせちA 2019/12/6 2019/12/6 商品 おせちA おせちA おせちB 価格 価格改定日 12000 2019/11/10 10000 5000 2019/11/20 2019/11/10 価格テーブル 予約テーブル 44

45.

データウエアハウスと、普通のデータベースの比較 • 普通のデータベース:最新情報の保持 氏名 XX 予約内容 おせちA YY ZZ おせちB おせちA 商品 価格 おせちA おせちB 10000 5000 価格テーブル 予約テーブル • データウエアハウス:過去データをすべて残す 氏 名 XX YY 予約内 予約日 容 おせちA 2019/12/1 おせちB 2019/12/4 キャンセ ル日 ZZ ZZ おせちB 2019/12/5 おせちA 2019/12/6 2019/12/6 商品 おせちA おせちA おせちB 価格 価格改定日 12000 2019/11/10 10000 5000 2019/11/20 2019/11/10 価格テーブル 予約テーブル 45

46.

データウエアハウスの活用例 ① ◆大量の商品が出品され、購入されるオー クションサイト ・不正行動の監視 ・出品者、購入者が「どうすればより満 足するか」の分析 出品、購入の状況を丸ごと記録 eBay Web ページ http://www.ebay.co.jp/ 出典: Teradata 社 Web ページ http://jpn.teradata.jp/library/nyumon/ins_1904.html 46

47.

データウエアハウスの活用例 ② ◆「空席で飛ばすくらいなら、安値でも売 りたい」と思っている航空会社 ・満席になりそうか、空席はいくつにな りそうかを的確に予測 ・空席をぴったり埋めるために、ダイナ ミックに値下げ/値上げ 予約、キャンセルの状況を丸ごと記録 出典: Teradata 社 Web ページ http://jpn.teradata.jp/library/nyumon/ins_1904.html 47

48.

関連資料 • リレーショナルデータベース序論(全4回) 全体を知る. https://www.kkaneko.jp/cc/di/index.html • リレーショナルデータベースの基本(全15回) 基礎を学ぶ. https://www.kkaneko.jp/cc/ds/index.html • リレーショナルデータベース演習(全15回) 演習により修得する. https://www.kkaneko.jp/cc/de/index.html 48