1. マルチメディアデータベー
ス序論
(マルチメディアデータベース序論,全6回)
1
金子邦彦
https://www.kkaneko.jp/de/multimediadb/index.html
Database System が必要となる理由
データの共有が簡単になる
無駄が減る
データを共有せずに,プログラムごとに
ファイルを持つ場合と比べて.
「トランザクション」の機能
銀行システム(振込み,現金引き出しな
どの機能)などのトランザクションを,確実に実
するための機能
2
メディア型
「古典的」なデータ
ファイル
Relation
オブジェクト
メディア型
テキスト/文書 (Text/Document
静止画像 Image)
動画像 (Video)
音声 (Audio)
3
マルチメディアデータベースシステム
に期待される機能
さまざまなメディア型
マルチメディアを簡単に扱えるようにするための
仕掛け
4
マルチメディア検索の特質
内容検索 属性による検索
条件による検索
「例示」による検索
類似検索 一致検索
等しい
より大きい
より小さい
「似ている」
など
5
マルチメディアでは意味がある
マルチメディアでは意味がある
マルチメディアデータベース
の枠組み
6
マルチメディア
データ
空間データ
特徴抽出
近似表現
この上で検索
特徴量
(多次元ベクトル
等)
近似図形
いずれも
多次元データ
マルチメディアの例
犯罪捜査のためのデータベース
動画像: 監視カメラ、車載カメラで得る
静止画像: 調査員が持つカメラで得る
文書: 別途付加された情報
Relational data 人口、住所、その他の背景情報
Geographic data 道、川、行政界、建物など座標に関
わる情報
7
オペレーション
入力 形状モデリング
出力 仮想現実表示 多重解像度表現,
プログレッシブメッシュ(Hoppe), 再分割接続性
編集
全件検索
索引付加
ハイパーリンク付加
Content 抽出と類似検索
8
マルチメディアデータベース
における質問処理
メディア依存の「属性」と「オペレーション」
属性とオペレーションはメディア依存であり、質問処
理もメディア依存にならねばならない
検索条件の多様さ
検索条件として,データの属性だけでなく、内容(
Content)や関連(Relationship)による検索が行われる
あいまい検索
「類似度(Similarity)」によるあいまい検索が重要にな
9
画像データの性質
画像には、「もの」が写っている
画像データの属性は:
場所
色、明るさ
色や明るさは、「画素」が持つ性質
しかし、「画素」は、直接扱うのは手間がかかる
「ものが写っている長方形領域(セル)」を単位として扱うと
、扱いやすい
10
画像データベースの
問い合わせ例(1/2)
ある捜査員 X氏は、Y氏の今までの写真を調べた
いと考えた
[問い合わせの例]
データベースの静止画像から、「Y氏」が写っ
ている全ての画像を得よ
名前(文字列)による検索
11
画像データベースの
問い合わせ例(2/2)
ある捜査員 X氏は、ある人の顔写真を撮った
X氏は、その写真が誰かを知りたいと考えた
[問い合わせの例]
データベースの静止画像から、この顔写真の人
が写っている全ての画像を得よ。
例示画像による検索
12
画像データベースにおける
「あいまい検索」
普通のデータベース
ユーザは、「問い合わせ」を入力し、答えとして検索
結果を得る
画像データベース
ユーザの手元に、1枚の写真(例示画像)があって、
「この写真に写っている人に似ている写真」を、デー
タベースの中から探す
普通のデータベースとは異なる
システムは、入力画像(例示画像)とデータベース内
の画像とのマッチングを行う
13
あいまい検索
あいまい検索
Similar to のような句が導入される
重み
各検索条件は、重要度に応じて重み付けされる
where “株式” 100% “破綻” 90% “信用秩序” 50%
14
select p
from p in Pictures
where p.similar_to example1
ビデオデータの特質
フレーム
あるフレームに,登場人物,登場物,振る舞いが写っ
ている
登場人物,登場物
登場人物,登場物には,「属性」がある
(例えば,名前,年齢など)
振る舞い
振る舞いにも,「属性」がある
(例えば,歌の名前,誰に話し掛けているかなど)
「属性」は,刻々と変わる
15
ビデオデータへの
OQL問い合わせの例
SELECT v[start, end]
FROM Videos v
WHERE v.segment(start, end) IN
v.FindVideoWithObject(Dennis)
16
時間的性質(上記の例では「start, end)
写っている「もの」の中身が考慮されねばならない
関係データベース
関係モデル
関係代数
Relational Calculus
SQL
オブジェクトデータベース
オブジェクト指向
OQL
OML
データベース
永続データ
データの共有
データモデル
データ検索言語,データ操作言
「トランザクション」の機能
17
関係データベース
関係データベースのデータの単位: テーブル
表の形式
テーブルの各行: タップル(tuple
1つのデータのまとまり
テーブルの各列:
同じタイプのデータ(属性)が並んでいる.
18
関係データベースの例
スキーマ例
(COMP, SSN, FNAME, LNAME, STREETNUM,
STREETNAME, CITY, STATE, ZIP)
19
COMP SSN FNAME LNAME STRE
ETNU
M
STREETN
AME
CITY STA
TE
ZIP
ABC Corp. 99278 John Simth 27 Canal St. Fairfax VA 22087
ABC Corp. 28745 Denia Jones 786 Baker St. Manassa
s
VA 22185
関係代数のオペレータ(2/3
20
Union Intersection Difference
Cartesian Product
c1 d1
c2 d2
a1 b1
a2 b2
a1 b1 c1 d1
a2 b2 c1 d1
a1 b1 c2 d2
a2 v2 c2 d2
関係代数のオペレータ(3/3
21
Selection Projection
Natural (Join)
b1 e1
b2 e2
a1 b1
a2 b2
a1 b1 e1
a2 b2 e2
Divide
a
b
c
a x
a y
a z
b x
x
z
x
SQL
典型的なSQL文の例
SELECT attr1, attr2, … , attrn
FROM R1<V1>, R2<V2>, … , Rk<Vk>
<WHERE F>
R1, R2, …, Rk: テーブル名
V1, V2, … , Vk タップル変数(省略しても
よい)
WHERE句は、省略してもよい
22
SQLでの更新,挿入,削除
テーブル 社員(氏名,自宅番号)に対して
挿入
INSERT INTO 社員(氏名,自宅番
号)
VALUES(“金子邦彦”,“092-642-4XXX”
更新
UPDATE 社員
SET 自宅番号=“092-643-0XXX”
WHERE 氏名=“金子邦彦”
削除
DELETE FROM 社員
WHERE 氏名=“金子邦彦”
23
オブジェクトデータベース
属性として,「構造をもったデータ」を扱える
record, set, list など
メソッド
クラスごとにメソッドを定義可能
OQLから呼び出し可能
24
クラス階層(1/2)
クラスとは: 同じタイプのデータの集まり
25
documents
image MS Word HTML raw.text
オブジェクトの属性
各々のオブジェクトは,属性を持つ
author: 文字列
date-created: 日付
admission-fee: 0以上の浮動小数点数
同じクラスのオブジェクトは,同じ属性を持つ
26
オブジェクト
オブジェクトには,固有の番号がついている
オブジェクトは,属性値の並びを含む
27
オブジェクトID 属性値の並び
オブジェクトの宣言(1/2)
データベースに格納すべきオブジェクトは,属性
値を使って,宣言されねばならない
declare b2
values [author = John Smith,
URL = http://www.somewhere
date-created = (15, Nov, 1996 ) ]
28
オブジェクトの宣言(2/2)
declare b3
values [author = John Smith,
URL = http://www.somewhere
date-created = (15, Nov, 1996 )
{[link = b1], [link = b2]} ]
29
データ型
オブジェクトの属性は型付けされている
単純型
float, int, bool, string など
構造をもった型
record, set, list など
30
データ型の例
author: string
URL: utltype
date-created: date
Links: Set<ObjectID>
31
クラスの親子関係の例
Museum クラス
address: string
director: string
departments: Set<string>
ArtMuseum クラス
address: string
director: string
departments: Set<string>
old-master-collection: Set<string>
modern-art-collection: Set<string>
32
オブジェクト定義言語
(Object Definition Language)
オブジェクトデータベースのスキーマ:
オブジェクトの持つ属性 (名前と型)
メソッド (名前,引数,返り値)
オブジェクト定義言語は,オブジェクトデータベ
ースのスキーマを記述するための言語
33
ODL の例
interface html: documents
{ extent html_documents
{ attribute string author;
attribute date date_created;
relationship Set<Person> author
inverse Person:written_work;
}
}
34
ODL
interface html: documents
クラス名は html
親クラスは documents
{ extent html_documents
htmlクラスのオブジェクトの集まりに
html_documents」という名前を付けよ
という意味
35
オブジェクト問い合わせ言語
(Object Query Language)
SQL
関係データベースのための問い合わせ言語
「テーブル」,「タップル」を扱う
OQL
オブジェクトデータベースのための問い合わ
せ言語
「クラス」,「オブジェクト」を扱う
SQLの上位互換
36
OQLの例 (1/2)
SELECT struct(field1:x.url, field2:x.link)
FROM HTMLs x
WHERE x.author = “John.Smith
HTMLクラスのオブジェクトについて,
author John.Smith” であるようなオブジェク
トを検索せよ
37
OQLの例 (2/2)
SELECT y.author
FROM
SELECT struct(field1:x.url, field2:x.link)
FROM MSWord x
WHERE x.author = “John.Smith ) y
OQL は,「入れ子」になることがある
38
おわりに
オブジェクトデータベースは「さまざまな種類」
のメディアを扱うデータベースの「核」となりえ
さまざまな技術
質問処理(メディア依存)
検索条件の多様さ(内容,関連)
あいまい検索
39