1 / 49

Multimedia Datenbankprodukte

Multimedia Datenbankprodukte. Dr. Harald Kosch ITEC at Universität Klagenfurt. Inhalt LUT1. Multimedia in Datenbanken durch Erweiterung von objekt-relationalen Datenbanksystemen Überblick über gängige Systeme: Informix DataBlades IBM DB2 Extenders Oracle inter Media – genauer später.

Download Presentation

Multimedia Datenbankprodukte

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  3. Inhalt LUT2 • Einführung in die interMedia Multimedia Datenbank von Oracle 9i • Allgemeine Merkmale und Architektur

  4. Inhalt LUT3 • Bildverwaltung mit Hilfe des ORDImage Datentypes • Datentyp Definition und Methoden • Realisierung der Suchfunktionalität • Komplettes Anwendungsbeispiel

  5. Inhalt LUT4 • Forschungsprodukte • MIRROR Datenbank • DISIMA Datenbank • MARS Datenbank • SMOOTH Datenbank • Beschreibung des Oracle Multimedia Data Cartridge

  6. LUT1: Kommerzielle Produkte - Überblick

  7. 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 Motivation und Einleitung

  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

  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

  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).

  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.

  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.

  13. LUT2: Oracle interMedia – eine kommerzielle Multimediadatenbank

  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).

  15. interMedia Architektur

  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.

  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.

  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

  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).

  20. LUT3: Oracle interMedia praktisch

  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

  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 ...

  23. ORDImage – Create Table - Beispiel der Benutzung von ORDImage CREATE TABLE fotos( foto_id INTEGER, fotograph VARCHAR2(64), annotierung VARCHAR2(255), foto ORDSYS.ORDImage);

  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>;

  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

  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.

  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 ( )

  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.

  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

  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

  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

  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)

  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

  34. Wie inhaltsbasiertes Retrieval funktioniert ( 2 ) Textur am nützlichsten für Bilder mit kompletter Textur (wie Kataloge aus Holzmaserungen, Marmor, Sand, Steine) • Abbildung a zeigt zwei ähnliche Arbeitsmuster (Punktzahl=4.1)

  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.

  36. Wie Ähnlichkeitssuche funktioniert ( 1 ) Gewicht • Grad der Ähnlichkeit / Verschiedenheit zwischen zwei Bildern. • Werte des Gewichtes • Positive reelle Zahlen • Addiert zu 100%

  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 ]

  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.

  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

  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.

  41. interMedia : komplettes Beispiel • Beispiel : Bücherdatenbank • Erstellung des Bildverzeichnisses für die Bücherdatenbank (Benutzer: system) CREATE DIRECTORY IMGDIR AS 'C:\';

  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 );

  43. Einfügeprozess (1/2) • Einfügen eines Buches und Initiierung des Bildelements DECLARE img ORDSYS.ORDImage; sig ORDSYS.ORDImageSignature; ctx RAW(4000):= NULL; BEGIN INSERT 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() );

  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;

  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;

  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;

  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;

  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;

  49. LUT4: Forschungsprodukte

More Related