10. 中間まとめ,データベースの応用,データベースの種類

379 Views

January 12, 22

スライド概要

リレーショナルデータベースの基本(スライド資料とプログラム例)
https://www.kkaneko.jp/de/ds/index.html


ds-1. データベースとは,データベースシステムとは,情報とデータ
ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ)
ds-3. ER 図,関連,異状, テーブル分解
ds-4. 問い合わせ(クエリ)
ds-5. 集計・集約
ds-6. 並べ替え(ソート)
ds-7. 結合
ds-8. データベースの異状,分解と結合
ds-9. 主キー,参照整合性制約,従属
ds-10. 中間まとめ,データベースの応用,データベースの種類
ds-11. SQL のIN,副問い合わせ
ds-12. データベースの AND,OR,NOT
ds-13. データベース操作,トランザクション,リカバリ,ロック,同時実行制御
ds-14. 従属,正規形,正規化
ds-15. さまざまなデータベース

YouTube 再生リスト「リレーショナルデータベースの基本」
https://youtube.com/playlist?list=PLwoDcGBEg9WGKPP6dExr8DcUf9nV2kYGD

金子邦彦研究室ホームページ:
https://www.kkaneko.jp/index.html

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

10. 中間まとめ,データベースの応 用,データベースの種類 URL: https://www.kkaneko.jp/de/ds/index.html 金子邦彦 謝辞:この資料では「いらすとや」のイラストを使用しています 1

2.

アウトライン 番号 項目 10-1 10-2 10-3 10-4 データベースシステムとその周辺分野 リレーショナルデータベースの歴史 データベースシステムの種類 リレーショナルデータベースとオブジェ クトの統合 10-5 ドキュメント指向のデータベース 10-6 キー・バリュー形式のデータベース 今回は,説明 + 各自の復習 + 課題(レポートなど)としています 2

3.

10-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図, 異状, 従属, 正規化, 正規形 (太字は,第1~第9回で学習済みの部分) 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.

10-2. データベースシステム とその周辺分野 25

26.

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

27.

「データベースシステム」と周辺研究領域 3次元コンピュータ グラフィックス 人工知能 データベース システム 情報システム (知的情報、社会情報) セキュリティ 27

28.

データベースシステムとAI(人工知能)の融合 人工知能の学習にはデータが必要 モーションキャプチャ実験(マーカーレス) 顔検出実験 ナンバープレート自動読み取り実験 眼球運動、顔の動きの自動抽出実験 28

29.

データベースシステムと社会情報 データの収集,蓄積,活用で,データベース システムが役に立つ 情報共有型地図アプリの製作 車両観測システムの製作 プライベートな グループ向けアプリ • 地図表示 • 位置表示 • 写真投稿 • メッセージやり取り 広域3次元地図の製作 センサーからの交通密度プロット ヴァーチャル・リアリ ティ表示も可能 29

30.

10-3. リレーショナル データベースシステムの歴史 30

31.

リレーショナルデータベースシステムの歴史 • 1969年(E.F. Codd at IBM research)リレーショナル データベースの提唱 • 1970年代前半から 実際のシステムが登場 従来のプログラミング言語や,他のデータベースシステムで 出来なかったことができるようになり,大きく普及. いまも,リレーショナルデータベースは,データベースシス テムの主流 31

32.

関係のあるレコード同士を ポインタでつないでおく リレーショナル データベースシステム以前 デーブルはダイナミックに 結合する リレーショナル データベースシステム 大きな変化.データ管理が簡単に 32

33.

10-4. データベースシステムの種類 33

34.

データベースシステムの種類 ① リレーショナルデータベースシステム テーブル ② ドキュメント指向のデータベースシステム XMLなどのドキュメントに特化. ドキュメント ③ キー・バリュー形式のデータベースシステム(キー・バリュー・ ストア) キー(鍵) 45343430 バリュー(値) 金子邦彦 キー・バリュー その他さまざま 34

35.

10-5. リレーショナルデータベースと オブジェクトの統合 35

36.

オブジェクト • オブジェクトは、プログラムの中で扱うデータの かたまり 36

37.

オブジェクト ■ オブジェクトは,構造を持つ場合がある 構造体, 集合, リスト, ベクトル,行列,配列など ■ オブジェクトには種類がある 言ったりするする =「クラス」と ■ オブジェクトの種類ごとに,振る舞いを関連づけ ることができる =「メソッド」と言ったりする

38.

リレーショナルデータベースとオブジェクト プログラム プログラム SQL オブジェクト リレーショナル データベース システムと 接続 オブジェクト オブジェクトのみ リレーショナルデータベース とオブジェクトの統合 38

39.

リレーショナルデータベースとオブジェクト d はオブジェクト d はオブジェクト SQL d はオブジェクト R システムでの例 39

40.

リレーショナルデータベースとオブジェクト 前ページのプログラムで行っていること 全体で オブジェクト d 1 2 3 data 4月 5月 6月 value 100 120 150 SQL も実行可能 select * from d; select * from d where value > 100; オブジェクト d が,テーブル d にマッピングされている 40

41.

オブジェクトとテーブル オブジェクト テーブル プログラムの中で扱うデータのかたまり リレーショナルデータベースのテーブル プログラム C, C++, Java, Python, R, ・・・ SQL 数値、文字列、日付、バイト列など 数値、文字列、日付、バイト列、 構造体、集合、リスト、ベクトル、行列、 (単純な構造のデータに限定) 配列など 保存したいときは、ファイルの読み書き などを行うプログラムを書く 基本は自動保存 データ管理は,自分で頑張る (アルゴ リズム、データ構造) リレーショナルデータベース管理システム が、データ管理のためのさまざまな機能を 持つ 41

42.

ここまでのまとめ リレーショナルデータベースシステムのテーブルと, オブジェクト指向のオブジェクト • テーブルとオブジェクトのマッピングにより,両 方に機能をあわせもつことに. • 状況に応じて,良い方を使用 42

43.

データの種類 • テーブル • 構造体,集合,リスト,ベクトル,行列,配列 などの構造をもったデータ • マルチメディア • テキスト/文書 • 静止画 • 動画 • 音声 • グラフィックス など

44.

マルチメディア 付加情報は, 検索時の有効な手がかり 画像、ビデオ 地図 グラフィックス 音声 音楽 + マルチメディアのコンテンツ タイトル 説明文 感想,批評 レーティング(点数) 価格 制作日 制作者 など 全体で, 1つのオブジェクト として扱うことも 多い 付加情報 44

45.

マルチメディアデータベースシステム の枠組み いずれも 多次元データ 特徴抽出 特徴量 (多次元ベクトル 等) 近似表現 近似図形 マルチメディア データ 空間データ この上で検索

46.

10-5. ドキュメント指向のデータベース 46

47.

XML形式ドキュメント 地図,グラフィックス,書式付きの文書などは XML で扱われることが多い OpenStreetMap の地図表示 データ (XML形式) XML は,タグでマークアップ されたテキストファイル 47

48.

XML形式ドキュメント 国土地理院が公開している「基盤地図情報」 データ (XML形式) XML は,タグでマークアップ されたテキストファイル 48

49.

10-6. キー・バリュー形式のデータベー ス 49

50.

キー・バリュー形式のデータの例 ID キー パスワード,氏名,住所 バリュー 50

51.

キー・バリュー形式のデータの例 name apple 0 1 price 10 20 orange 0, name apple キー バリュー 51

52.

キー・バリュー形式のデータを扱う2つの方法 • ファイル JSON などの方法 • キー・バリュー形式のデータベースシステム 52

53.

JSON とは 「タグ」と「値」を並べることを特徴とする データ形式 {"name": "apple", "price": 10} {タグ: 値, タグ: 値} JSON の例 Pythonで扱うことも簡単 53

54.

JSON のデータ型 • 配列 例 [1, 2, 3] • 数値 例 4.56 • 文字列 例 "hello" ※ 「"」で囲む • ブール値 true false • null {"name": "apple", "price": 10} ・タグ 必ず文字列 ・値 さまざまなデータ型でありえる. JSON オブジェクトを値とすることも 54

55.

JSON での入れ子 入れ子: 値が JSON オブジェクトになること id 0 1 name apple orange price 10 20 リレーショナルデータベースのテーブル 同じ意味 {"name":{"0":"apple","1":"orange"},"price":{"0":10,"1":20}} JSON での入れ子 55

56.

JSON とキー・バリュー形式のデータベース システム Cloud FireStore の違い JSON Google Firebase オブジェクト の種類 JSONオブジェクト コレクション,ドキュメント 入れ子 OK OK 「値」の 種類 文字列 (string), 数値 (number), ブール値 (boolean), 配列 (array), null 文字列 (string), 数値 (number), ブール値 (boolean), 配列 (array), null, 日時 (timestamp), geopoint, 参照 (reference) 56