15. データベースの応用,データ
ベースの種類
1
URL: https://www.kkaneko.jp/de/ds/index.html
金子邦彦
謝辞:この資料では「いらすとや」のイラストを使用しています
オープンデータ
2
オープンデータ
政府等が保有するデータがデジタルで公開
データカタログサイ
https://www.data.go.jp/
3
専門家の間でも、データの共有は当然
Kaggle のデータセットのペー
https://www.kaggle.com/datasets
機械学習、データサイエンス、人工知能研究等のため
4
データベースシステム
とその周辺分野
5
データベースシステ
6
データベー
スシステム
ネットワー
取引 記入 データ保
センサー連携
人工知能応用
・データベース管理システムは,データベースの管理等の機
能を持ったソフトエア
・オンラインでデータを共有するときに,特に適する
「データベースシステム」と周辺研究領域
7
データベース
システム
人工知能
情報システム
(知的情報、社会情報)
3次元コンピュータ
グラフィックス
セキュリティ
データベースシステムとAI(人工知能)の融合
人工知能の学習にはデータが必要
8
モーションキャプチャ実験(マーカーレス)
ナンバープレート自動読み取り実験 眼球運動、顔の動きの自動抽出実験
顔検出実験
データベースシステムと社会情報
データの収集,蓄積,活用で,データベース
システムが役に立つ
9
センサーからの交通密度プロット広域3次元地図の製作
車両観測システムの製作
ヴァーチャル・リアリ
ティ表示も可能
情報共有型地図アプリの製作
プライベートな
グループ向けアプリ
地図表示
位置表示
写真投稿
メッセージやり取り
リレーショナル
データベースシステムの歴史
10
リレーショナルデータベースシステムの歴史
1969年(E.F. Codd at IBM research)リレーショナル
データベースの提唱
1970年代前半から 実際のシステムが登場
従来のプログラミング言語や,他のデータベースシステムで
出来なかったことができるよになり,大きく普及.
いまも,リレーショナルデータベースは,データベースシス
テムの主流
11
12
リレーショナル
データベースシステム以前
リレーショナル
データベースシステム
デーブルはダイナミック
結合する
関係のあるレコード同士を
ポインタでつないでおく
大きな変化.データ管理が簡単に
データベースシステムの種類
13
データベースシステムの種
リレーショナルデータベースシステム
ドキュメント指向のデータベースシステム
XMLなどのドキュメントに特化.
キー・バリュー形式のデータベースシステムキー・バリュー・
ストア
その他さまざま 14
テーブル
ドキュメント
キー・バリュー
45343430
キー(鍵)
金子邦彦
バリュー(値)
リレーショナルデータベースと
オブジェクトの統合
15
オブジェクト
オブジェクトは、プログラムの中で扱データの
かたまり
16
オブジェクト
オブトは,構造持つ場合があ
構造体,集合,リスト,
ベクトル,行列,配列など
オブトには種類ある クラス」と
言ったりするする
オブトの種類ごに,振る舞い関連づ
ることができる =「メソッ」と言ったりする
リレーショナルデータベースとオブジェクト
18
オブジェクト
プログラム
SQL
リレーショナルデータベース
とオブジェクトの統合
オブジェクトのみ
オブジェクト
プログラム
リレーショナル
データベース
システムと
接続
リレーショナルデータベースとオブジェクト
19
Rシステムでの例
d はオブジェクト
d オブジェクト
d オブジェクト
SQL
リレーショナルデータベースとオブジェクト
20
data value
1
4
100
2
5
120
3
6
150
前ページのプログラムで行っていること
全体で
オブジェクト d
SQL も実行可能
select * from d;
select * from d where value > 100;
オブジェクト d が,テーブル d
にマッピングされている
オブジェクトとテーブル
21
リレーショナルデータベースの
テーブル
SQL
数値、文字列、日付、バイト列など
(単純な構造のデータに限定)
基本は
自動保存
リレーショナルデータベース管理システム
が、
データ管理のためのさまざまな機能
持つ
テーブルオブジェクト
プログラムの中で扱う
データのかたまり
プログラム
C, C++, Java, Python, R, ・・・
数値、文字列、日付、バイト列、
構造体、集合、リスト、ベクトル、行列、
配列
など
保存したいときは、
ファイルの読み書き
などを行う
プログラムを書く
データ管理は,自分で頑張る
(アルゴ
リズム、データ構造)
ここまでのまとめ
リレーショナルデータベースシステムのーブと,
オブジェクト指向のオブジェクト
テーブルオブジェクトマッピングにより,両
方に機能をあわせもつことに.
状況に応じて,良い方を使用
22
データの種類
テーブル
構造体,集合,リスト,ベクトル,行列,配列
などの構造をもったデータ
マルチメディア
テキスト/文書
静止画
動画
音声
グラフィックス
など
マルチメディア
24
マルチメディアのコンテンツ
画像、ビデオ
地図
グラフィックス
音声
音楽
付加情報
タイトル
説明文
感想,批評
レーティング(点数)
価格
制作日
制作者
など
付加情報は,
検索時の有効な手がかり
全体で,
1つのオブジェクト
として扱うことも
多い
マルチメディアデータベースシステム
の枠組み
マルチメディア
データ
空間データ
特徴抽出
近似表現
この上で検索
特徴量
(多次元ベクトル
等)
近似図形
いずれも
多次元データ
ドキュメント指向のデータベース
26
XML形式ドキュメント
27
OpenStreetMap の地図表示 データ XML形式)
XML は,タグでマークアップ
されたテキストファイル
地図,グラフィックス,書式付きの文書などは
XML で扱われることが多い
XML形式ドキュメント
28
データ XML形式)
XML は,タグでマークアップ
されたテキストファイル
国土地理院が公開している「基盤地図情報」
キー・バリュー形式のデータベース
29
キー・バリュー形式のデータの例
ID パスワード,氏名,住所
30
キー バリュー
キー・バリュー形式のデータの例
31
name price
0
apple
10
1
orange
20
0, name apple
キー バリュー
キー・バリュー形式のデータを扱つの方法
32
ファイル
JSON などの方法
キー・バリュー形式のデータベースシステム
JSON とは
タグ」と「」を並べるとを特徴とする
データ形式
33
Pythonで扱うことも簡単
JSON の例
{"name": "apple", "price": 10}
{タグ: , タグ: }
JSON ータ型
配列 [1, 2, 3]
数値 4.56
文字列 "hello" "」で囲む
ブール値 true false
null
34
タグ 必ず文字列
さまざまなデータ型でありえる.
JSON オブジェクトを値とすることも
{"name": "apple", "price": 10}
JSON での入れ
入れ子JSON オブジェクトになること
35
{"name":{"0":"apple","1":"orange"},"price":{"0":10,"1":20}}
JSON での入れ子
id name price
0
apple
10
1
orange
20
リレーショナルデータベースのテーブル
同じ意味
JSON とキー・バリュー形式のデータベー
システム Cloud FireStore の違い
36
Google
Firebase
オブジェクト
の種類
オブジェクト
コレクション
,ドキュメント
入れ子
OK
「値」の
種類
(string)
(number)
(boolean)
(array)
文字列
(string)
数値
(number)
ブール値
(boolean)
配列
(array)
null
日時
(timestamp)
geopoint
参照
(reference)