multimedia datenbankprodukte dr. harald kosch itec at universität klagenfurt

49
Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

Upload: kriemhilde-wessler

Post on 05-Apr-2015

105 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

Multimedia Datenbankprodukte

Dr. Harald KoschITEC at Universität Klagenfurt

Page 2: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

2

Inhalt LUT1

Multimedia in Datenbanken durch Erweiterung von objekt-relationalen Datenbanksystemen

Überblick über gängige Systeme: Informix DataBlades IBM DB2 Extenders Oracle interMedia – genauer später

Page 3: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

3

Inhalt LUT2

Einführung in die interMedia Multimedia Datenbank von Oracle 9i Allgemeine Merkmale und Architektur

Page 4: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

4

Inhalt LUT3

Bildverwaltung mit Hilfe des ORDImage Datentypes Datentyp Definition und Methoden Realisierung der Suchfunktionalität

Komplettes Anwendungsbeispiel

Page 5: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

5

Inhalt LUT4

Forschungsprodukte MIRROR Datenbank DISIMA Datenbank MARS Datenbank SMOOTH Datenbank

Beschreibung des Oracle Multimedia Data Cartridge

Page 6: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

6

LUT1: Kommerzielle Produkte - Überblick

Page 7: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

7

Motivation und Einleitung Multimedia Anwendungen benötigen spezielle Datentypen

und Funktionen in der Datenbank, welches das Basissystem üblicher kommerzieller (Oracle, IBM, Informix) Datenbanken nicht zur Verfügung stellt, unter anderem:

Speicherung und Verwaltung von Bild-, Audio- oder Video-Daten Speicherung von beschreibenden Daten dieser Medien (wie Grösse,

Format, etc.) Ähnlichkeitssuche Physikalische Indexe für den Zugriff und der Suche von

Mediendaten

-> Erweiterung des Datenbanksystems um neue Funktionalität, aber ein DBS kann nicht alle möglichen Erweiterungen vorhersehen

Lösungen, die gängige Datenbanksysteme realisiert haben:

Offene (erweiterbare) Datenbanksysteme Anpassung je nach Bedarf

Page 8: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

8

Ebenen der Erweiterbarkeit Erweiterung des Typsystems um

anwendungsspezifische Datentypen Räumliche, zeitliche, sowie Bild-, Audio- und Videodatentypen Angereichertes Typsystem allein bietet noch keine allgemeine

Lösung Typsystem muss an spezielle Bedürfnisse anpassbar sein

Erweiterung der Anfragesprache um neue Operationen Neue Resultattypen in der SELECT-Klausel Neue Prädikate in der WHERE-Klausel

Erweiterung um passende Methoden des physischen Datenbankentwurfs

Indextypen für benutzerdefinierte Datentypen Erweiterung der Anfrageoptimierung um neue Regeln

Selektivitäts- und Kostenfunktionen für benutzerdefinierte Funktionen und Indexe

Kombination von Indexen

Page 9: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

9

Erweiterungsmodule Serverseitige Pakete,

die Funktionalität für bestimmte Anwendungen bieten – Insellösungen.

Kommerzielle Module: Informix DataBlades, Oracle Cartridges, IBM Extenders) beinhalten:

Spezielle Multimedia-Datentypen

Indexmethoden Anfrageoptimierung

Page 10: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

10

Multimedia in Informix durch DataBlades DataBlade ist ein:

Software-Paket, das die Funktionalität des Datenbankservers erweitert

Besteht aus SQL-Anweisungen und Code, in SPL (Stored Procedure Language) oder einer externen Programmiersprache geschrieben

Kann spezielle Zugriffsmethoden definieren und Funktionen für den Aufbau, die Verwaltung und Verwendung von Indexen bereitstellen

Kann Selektivitäts- und Kostenfunktionen für den Anfrageoptimierer bereitstellen

Verfügbare Multimedia Ausprägungen: Excalibur Image DataBlades Video DataBlades

Erster am Markt (seit über 5 Jahren operationell).

Page 11: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

11

Multimedia in Oracle durch Cartridges

Oracle Data Cartridge ist ein: Software-Paket, das die Funktionalität des Datenbankservers

erweitert Besteht aus benutzerdefinierten Datentypen und Methoden Code-Implementierung in PL/SQL, C, C++, JAVA Kann eigene Zugriffsmethoden definieren und Funktionen

für den Aufbau, die Verwaltung und die Verwendung spezieller Indexstrukturen bereitstellen

Kann Selektivitäts-und Kostenfunktionen enthalten, die bei der Verarbeitung Cartridge-definierter Operationen vom Anfrageoptimierer benutzt werden

Verfügbare Multimedia Cartridges interMedia (Text, Audio, Bilder, Video, Dokumente)

Wird später im Detail vorgestellt

Robustes System – viele Anwendungen durch Oracle`s technet Webportal gefördert.

Page 12: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

12

Multimedia in IBM durch Extenders

IBM Extender ist ein: Software-Paket, das die Funktionalität des Datenbankservers

erweitert Besteht aus benutzerdefinierten Datentypen und Funktionen Kann Zugriffsmethoden mit Funktionen für den Aufbau, die

Verwaltung und Verwendung spezieller Indexstrukturen bereitstellen

Kann Selektivitäts- und Kostenfunktionen für die Anfrageoptimierung definieren

Verfügbare Multimedia Extenders Image, Audio, Video, Text Extender

System mit der höchsten angebotenen Funktionalität. Integriert das beste Bildretrievalsystem QBIC.

Wenig präsent in offener Anwendungsentwicklung.

Page 13: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

13

LUT2: Oracle interMedia – eine kommerzielle Multimediadatenbank

Page 14: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

14

Oracle’s 9i interMedia Oracle interMedia stellt eine Reihe von

Services zur Speicherung, Verwaltung und Suche in multimedialen Daten zur Verfügung: Verwaltung von Meta- und Mediendaten Speicherung und Suchfunktionalität, die

Suchfunktionalität beschränkt sich auf Bilder Unterstützung aller populären Formate

Oracle interMedia ist eine Multimedia-Datenbank welche in das Oracle Datenbankmanagementsystem (DBMS) integriert ist.

Basiert auf der Cartridgetechnologie von Oracle, welche es ermöglicht, spezielle DBMS zu entwerfen (siehe vorherige Lerneinheit).

Page 15: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

15

interMedia Architektur

Page 16: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

16

interMedia – Verwaltung der Inhalte

Oracle interMedia unterstützt Speicherung, Suche, and Verwaltung von:

Binary Large Objects (BLOBs): werden im DBMS gespeichert (lokale Speicherung). Sie unterliegen der Grössenbeschränkung eines BLOBS. Alle Arten von multimedialen Inhalten können so gespeichert werden.

File-based Large Objects (BFILEs): werden in externen Dateisystemen gespeichert und von der Datenbank referenziert. Sie können natürlich über DB-Operationen ausgelesen und gespeichert werden.

URLs, welche multimediale Daten referenzieren. Streaming Audio oder Video: Daten, die in

spezialisierten Medienservern gespeichert sind und von dort kontinuierlich übertragen werden.

Page 17: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

17

ORD*

Oracle interMedia benützt OR(Objekt-Relationale)-DB Typen um multimediale Daten zu verwalten. Die Datentypen sind:

ORDAudio, ORDImage, ORDVideo und ORDDoc Jeder dieser Typen führt eine Reihe von Attributen (u.U

mit Meta-Dateninformationen) und Methoden ein. Medien-Daten sind Audio, Bild, Video und die

Kombination dieser (ORDDoc). Metadaten sind Daten über die Mediendaten, sowie die

Größe, Art der Komprimierung, Format, etc. Methoden sind Prozeduren und Funktionen welche die

Objekte verwalten, wie z.B. getProperties( ) und setProperties( ) zur Abfrage der Eigenschaften der Mediendaten.

Es gibt auch noch den Texttyp auf den wir hier nicht genauer eingehen können, der interessierte Leser wird auf technet.oracle.com verwiesen.

Page 18: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

18

Datentypen Oracle 9i: Gesamtübersicht

Built-in Datentypen Character_data types: CHAR, VARCHAR2, NCHAR, NCHAR2 Number_data types: NUMBER(p,s) Long_and_row_data types: LONG, LONG RAW, RAW Date time_data types: DATE, TIMESTAMP, INTERVAL Large_object_data types: BLOB, CLOB, NCLOB, BFILE Rowid_data types: ROWID, UROWID

Building Block Typen Building block: Object Types, REFs, Varrays, Nested Tables

ANSI SQL unterstütze Datentypen Die meisten ANSI SQL-Typen werden von Oracle unterstützt,

ausser: GRAPHIC, VARGRAPHIC, LONG VARGRAPHIC, TIME, TIMESTAMP

Cartridge Datentypen any_types: SYS.AnyType, SYS.AnyData, SYS.AnyDataSet XML_types: SYS.XMLType, SYS.UriType spatial_types: MDSYS.SDO_Geometry media_types: ORDSYS.ORDAudio, ORDSYS.ORDImage, ORDSYS.ORDVideo,

ORDSYS.ORDDoc

Page 19: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

19

ORDImage in weiterer Folge

ORDImage stellt als einziger Datentyp (bisher) Suchfunktionalität zur Verfügung. Der Unterschied liegt in der Ähnlichkeitssuche, denn über die Inhalte der Attribute eines Datentyps kann natürlich immer gesucht werden.

ORDVideo and ORDAudio haben ähnliche Methodenschnittstellen (ausgenommen die Suche wie ORDImage).

Page 20: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

20

LUT3: Oracle interMedia praktisch

Page 21: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

21

Oracle InterMedia Image

Oracle InterMedia Image bietet die Grundfunktionalität zur Manipulation, Speicherung und zum Laden digitaler Bilder

und Ähnlichkeitssuche in Bilddaten, welche sich auf

Farbe, Kontur und Textur beziehen.

Zentraler Datentyp: ORDImage

Der ORDImage OR-DB Type stellt zur Verfügung: Höhe / Breite / Größe des Bildes Dateityp / Format Kompression Format MIME-Typ

Page 22: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

22

OrdImage - Definition

- Definition von ORDImage

CREATE OR REPLACE TYPE ORDImage AS OBJECT(-- TYPE ATTRIBUTES

source ORDSource, height INTEGER, width INTEGER, contentLength INTEGER, fileFormat VARCHAR2(4000), contentFormat VARCHAR2(4000), compressionFormat VARCHAR2(4000), mimeType VARCHAR2(4000),-- METHOD DECLARATION

...

Page 23: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

23

ORDImage – Create Table

- Beispiel der Benutzung von ORDImage

CREATE TABLE fotos(foto_id INTEGER, fotograph VARCHAR2(64), annotierung VARCHAR2(255), foto ORDSYS.ORDImage);

Page 24: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

24

ORDImage - Insert

INSERT INTO fotos (foto_id, fotograph, annotierung, foto) VALUES(1, 'John MacIvor', 'red plaid',

ORDSYS.ORDImage.init('file','ORDIMGDIR','redplaid.gif'));

Das sourceLocation Argument 'ORDIMGDIR' von ORDSYS.ORDImage.init() muss ein lokales Verzeichnis sein.

CREATE DIRECTORY ORDIMGDIR AS '<MYIMAGEDIRECTORY>'; GRANT READ ON DIRECTORY ORDIMGDIR TO <user-or-role>;

Page 25: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

25

Retrieval visueller Informationen

Retrieval visueller Informationen Index anlegen / verwenden Inhaltsbasiertes Retrieval durchführen

basierend auf visuellen Attributen des Bildes (Farbe, Struktur, Textur)

[ ex ] Gib mir alle Informationen über rote Autos

Page 26: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

26

Visuelle Informationen - Methoden/Operationen

( 1 ) Signatur und Ähnlichkeit ORDImageSignature Typ ORDSYS.ORDImageSignature.init(); Anlegen einer Signatur, die auf Farbe, Textur,

Struktur des Bildinhalts basiert

IMGSimilar ( ):Vergleich der Signatur zweier Bilder. Ermittelt wird, ob die Bilder einer vom Benutzer eingegeben Menge von Kriterien entsprechen.

Page 27: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

27

Visuelle Informationen - Methoden /Operationen

( 2 ) Eigenschaften von Bildern extrahieren setProperties ( ):

wichtige Eigenschaften des Bildes aus den Bilddaten herauslesen.

vgl. “get” – wird verwendet, um individuell gespeicherte Attribute des Bildes abzufragen, etwa über die Höhe oder Breite in Pixel.

getHeight ( ) , getWidth ( )

Page 28: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

28

Visuelle Informationen - Methoden /Operationen

( 3 ) Eigenschaften des Bildes überprüfen checkProperties ( ):

Überprüfen, ob die Eigenschaften, die in den Attributen eines Bildobjektes gespeichert sind, mit den tatsächlichen Eigenschaften des Bildes übereinstimmen

( 4 ) Bilder modifizieren Process ( ) / processCopy ( ):

Konvertierung und Komprimierung des Bildformats, grundlegende Funktionen zur Bearbeitung, einschließlich Skalieren und Cutting.

Page 29: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

29

Visuelle Informationen - Methoden /Operationen

( 5 ) Bilder verschieben / kopieren copy ( ) / processCopy ( ) export ( ) / import ( ) / importFrom ( ):

nützlich, um Bilder zwischen Datenbanken und externen Datenquellen zu transferieren.

( 6 ) Bildmerkmale manuell festlegen setProperties ( ):

Bestimmte Merkmale explizit bestimmen

Page 30: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

30

Inhaltsbasiertes Retrieval - Konzepte

Wie inhaltsbasiertes Retrieval funktioniert Definition / Erklärung der visuellen Attribute.(globale Farben, lokale Farben, Textur, Struktur)

Ähnlichkeitssuche mittels festgelegter Vergleichsbilder Die Gewichtung der visuellen Attribute bestimmt

den Grad der Ähnlichkeit zwischen Bildern.

Verwendung von Indexen, um die Suche zu beschleunigen

Page 31: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

31

Wie inhaltsbasiertes Retrieval funktioniert

Inhaltsbasiertes Retrieval-System Verarbeitung der Informationen, die in den

Bilddaten enthalten sind Jedes in die Datenbank eingefügte Bild wird

analysiert. Eine Repräsentation des Inhalts wird in einem Signaturvektor gespeichert.

Signatur enthält alle Informationen über die Merkmale der visuellen Attribute: Globale Farben : Verteilung der Farben im Gesamtbild Lokale Farben : Farbverteilungen / wo sie in einem Bild

auftreten Textur : Low-level Muster and Texturen im Bild Struktur : Formen, die im Bild vorkommen

Page 32: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

32

Wie inhaltsbasiertes Retrieval funktioniert

( 1 ) Globale Farben and Lokale Farben

Globale Farben : vollständige Ähnlichkeit (Punktzahl=0.0)

Lokale Farben : keine Ähnlichkeit (Punktzahl=100)

Page 33: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

33

Wie inhaltsbasiertes Retrieval funktioniert

Abbildung a sehr ähnlich (Punktzahl=0.0) bezüglich globaler Farben.

Abbildung b sehr ähnlich (Punktzahl=0.02461) bezüglich lokaler Farben.

Abbildung a

Abbildung b

Page 34: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

34

Wie inhaltsbasiertes Retrieval funktioniert

( 2 ) Texturam nützlichsten für Bilder mit kompletter Textur

(wie Kataloge aus Holzmaserungen, Marmor, Sand, Steine)

Abbildung a zeigt zwei ähnliche Arbeitsmuster (Punktzahl=4.1)

Page 35: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

35

Wie inhaltsbasiertes Retrieval funktioniert

( 3 ) Struktur Streng beschränkt auf bestimmte Größen

oder Positionen Nützlich um Objekte zu erfassen, wie zum

Beispiel Horizontlinien in Landschaften. Nützlich um Abfragen auf einfache Formen

durchzuführen.

(Abbildung a) sehr ähnlich in Struktur.

Page 36: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

36

Wie Ähnlichkeitssuche funktioniert

( 1 ) Gewicht Grad der Ähnlichkeit /

Verschiedenheit zwischen zwei Bildern.

Werte des Gewichtes Positive reelle Zahlen Addiert zu 100%

Page 37: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

37

Wie Ähnlichkeitssuche funktioniert

( 2 ) Berechnung der Ähnlichkeit Grad der Ähnlichkeit hängt von einer

gewichteten Summe ab, die die Gewichtung und die Entfernung aller vier visuellen Attribute des Vergleichbildes und des Testbildes reflektiert

[ Gewichtung ]

Page 38: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

38

Wie Ähnlichkeitssuche funktioniert

Wenn Gewichtungssumme Grenzwert Dann Treffer

Hauptziel inhaltsbasiertes Retrieval, um unwichtige

Bilder zu eliminieren Man kann sich auf die Bilder

konzentieren, die den gesuchten Inhalt beinhalten.

Page 39: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

39

Wie Ähnlichkeitssuche funktioniert

( 3 ) Grenzwert Beim Matchen der Bilder wird ein Grenzwert zugewiesen.

DECLARE t_bild ORDSYS.ORDImage; i INTEGER; bild_sig ORDSYS.ORDImageSignature; query_signatur ORDSYS.ORDImageSignature; BEGIN SELECT foto_id, foto, foto_sig INTO i, t_bild, bild_sig FROM fotos WHERE

ORDSYS.IMGSimilar(foto_sig, query_signatur, 'color="0.2" texture="0.1" shape="0.5"

location="0.2"', 25) = 1; END;

Generierte Signatur

Page 40: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

40

Indexunterstützung zum Signaturvergleich

Für bessere Performanz mit großen Bilddatenbanken Erstellen und Verwenden eines Index, um die

Bildsignaturen zu durchsuchen. CREATE INDEX bildindex ON fotos(foto_sig) INDEXTYPE IS

ORDSYS.ORDImageIndex PARAMETERS(' ORDIMG_FILTER_TABLESPACE = ordimage_idx_tbs_1, ORDIMG_INDEX_TABLESPACE = ordimage_idx_tbs_2');

Wie bei jedem Index muss der Tablespace (ordimage_idx_tbs_1 and ordimage_idx_tbs_2) zuerst erstellt werden.

IMGSimilar()-Abfragen verwenden diesen Index.

Page 41: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

41

interMedia : komplettes Beispiel

Beispiel : Bücherdatenbank

Erstellung des Bildverzeichnisses für die Bücherdatenbank (Benutzer: system)

CREATE DIRECTORY IMGDIR AS 'C:\';

Page 42: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

42

Erstellung der Bildtabelle

CREATE TABLE buecher (id INTEGER PRIMARY KEY,isbn INTEGER,titel VARCHAR2(30),autor VARCHAR2(30),preis INTEGER,inhalt VARCHAR2(200),foto ORDSYS.ORDImage,foto_sig ORDSYS.ORDImageSignature);

Page 43: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

43

Einfügeprozess (1/2)

DECLARE img ORDSYS.ORDImage; sig ORDSYS.ORDImageSignature; ctx RAW(4000):= NULL; BEGININSERT INTO buecher (id, isbn, titel, autor, preis, inhalt, foto, foto_sig) VALUES(1, 3544651, 'Java, die Referenz', 'David Flanagan', 60, 'Java-Klassen', ORDSYS.ORDImage.init('file', 'IMGDIR', 'Sample.jpg'), ORDSYS.ORDImageSignature.init() );

Einfügen eines Buches und Initiierung des Bildelements

Page 44: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

44

Einfügeprozess (2/2)

Laden des Bildes und die Generierung der Signatur

SELECT B.foto, B.foto_sig INTO img, sig FROM buecher B WHERE B.id = 1 FOR UPDATE;

img.import(ctx); sig.generateSignature(img);

UPDATE buecher B SET B.foto = img, B.foto_sig = sig WHERE B.id = 1; END;

Page 45: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

45

Überprüfung der Metadaten

DECLARE buch_id Integer; bild ORDSYS.ORDImage; buchtitel varchar2(30); getData BOOLEAN;

BEGIN SELECT id, titel, foto INTO buch_id, buchtitel, bild FROM buecher WHERE id = 1; dbms_output.put_line(' Id : ' || buch_id || ' - Titel : '|| buchtitel);

getData := bild.checkProperties(); IF getData THEN dbms_output.put_line('Höhe: '|| bild.getHeight()); dbms_output.put_line('Breite: '|| bild.getWidth()); dbms_output.put_line('MIME-Typ: '|| bild.getMimeType()); dbms_output.put_line('Dateiformat: '|| bild.getFileFormat()); dbms_output.put_line('Größe: '|| TO_CHAR(bild.getContentLength())); END IF;END;

Page 46: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

46

Ähnlichkeitssuche (1/2)

Deklarierung eines CURSORs

DECLARE grenzwert NUMBER; vergleich_sig ORDSYS.ORDImageSignature; ergebnis_foto ORDSYS.ORDIMAGE; id_foto INTEGER; titel_foto VARCHAR2(30); CURSOR rech_fotos IS SELECT B.id, B.foto FROM buecher B WHERE ORDSYS.IMGSimilar(B.foto_sig, vergleich_sig, 'color="0,6" texture="0,2" shape="0,1" location="0,1"', grenzwert)=1;

Page 47: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

47

Ähnlichkeitssuche (2/2)

BEGIN -- Auswahl des Bildes, das als Vergleichsbasis dient SELECT B.foto_sig INTO vergleich_sig FROM buecher B WHERE B.id = 1;

grenzwert := 30.0; -- Ähnlichkeitssuche OPEN rech_fotos; LOOP FETCH rech_fotos INTO id_foto, ergebnis_foto; EXIT WHEN rech_fotos%NOTFOUND; -- Ausgabe des Ergebnisses dbms_output.put_line(id_foto); END LOOP; CLOSE rech_fotos;END;

Page 48: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

48

Kombinierte Abfrage

SELECT Q.id, Q.titel, Q.foto.getCompressionFormat() FROM buecher Q, buecher E WHERE E.id=1 AND ORDSYS.IMGSimilar(Q.foto_sig, E.foto_sig, 'color=1', 50.0)=1 AND Q.foto.getWidth() > 32 AND Q.foto.getContentLength() > 10000;

Page 49: Multimedia Datenbankprodukte Dr. Harald Kosch ITEC at Universität Klagenfurt

49

LUT4: Forschungsprodukte