Sunteți pe pagina 1din 58

Capitolul 7 - Baze de date multimedia

Date i aplicaii multimedia Date multimedia i metadate Arhitectura bazelor de date multimedia Evoluia bazelor de date multimedia Oracle Multimedia
Modelul de memorare a obiectelor Oracle Multimedia Tipuri de date Oracle Multimedia: ORDAudio, ORDImage, ORDVideo, ORDDoc Aplicaii Oracle Multimedia
Baza de date Oracle Multimedia Serverul de aplicaii Oracle Biblioteca Oracle Multimedia Java classes

Standardul DICOM Digital Imaging and Communications in Medicine Standardele de aplicaii multimedia MPEG-7 i MPEG-21 Suport multimedia n alte SGBD-uri (MySQL, PostgreSQL, SQL Server)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 1

Multimedia la confluena multor domenii

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

Date multimedia
Bazele de date multimedia permit utilizatorilor s stocheze i s interogheze diferite tipuri de informaii multimedia:
Texte - pot fi formatate sau neformatate; textele formatate respect diferite standarde ca SGML (cu variante HTML, XML) Grafice desene sau ilustraii codate ntr-un standard descriptiv (PICT, VRML etc.) Imagini desene, fotografii etc., codate ntr-un format standard: bitmap, JPEG, MPEG, TARGA etc.; n JPEG i MPEG imaginile sunt comprimate Animaie secvene temporale de grafice sau imagini Video un set de imagini care se succed n timp la o rat specificat (de exemplu, 30 cadre/sec) Audio sunete digitizate i memorate ca iruri de bii

Cel mai frecvent tip de interogare este de a localiza o surs multimedia care conine anumite obiecte (trsturi) de interes Astfel de interogri se mai numesc i regsirea informaiei dup coninut (Content-Based Information Retrieval CBIR sau CBR)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 3

Aplicaii multimedia
Datele multimedia sunt folosite n tipuri de aplicaii ca:
Depozite de informaii ca imagini satelitare, imagini medicale, proiecte inginereti etc. Prezentri livrarea datelor multimedia cu anumite constngeri de timp Aplicaii colaborative realizarea proiectelor complexe prin colaborarea mai multor proiectani care prelucreaz date partajate

Astfel de aplicaii sunt necesare n numeroase domenii de activitate ca:


Sisteme de proiectare i producie asistate de calculator (Computer-aided design and manufacturing - CAD/CAM) Sisteme de diagnoz medical Sisteme de prelucrare a imaginilor Sisteme de studiere i prognoze climatice Sisteme de recunoatere a caracterelor i a obiectelor folosind inteligena artificial

Baze de date versus Information Retrieval Systems (IRS)


Tradiional, bazele de date memoreaz i interogheaz date simple, n timp ce sistemele IRS ofer o modelare flexibil dar complex Integrarea IR n baze de date provocare rezolvabil baze de date MM
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 4

Complexitatea datelor multimedia


Fiecare tip de obiect multimedia (monomedia sau document) este caracterizat de o mare varietate de trsturi care trebuie s fie reprezentate n bazele de date De exemplu, o imagine reprezentat ca un tablou bidimensional de bii, mai are i alte caracteristici globale ca distribuia de culori i texturi, obiecte identificate etc. ntr-un document multimedia interactiv (Interactive Multimedia Document IMD) o varietate de obiecte monomedia sunt ordonate n domeniul spaial i temporal, iar utilizatorul sau interaciuni interne pot modifica aceast ordonare n cursul prezentrii Aceste caracteristici impun ca bazele de date MM s organizeze n mod eficient stocarea i regsirea obiectelor printr-o arhitectur extensibil:
Extensibilitatea logic posibilitatea de adugare dinamic a unor noi tipuri de date definite de utilizator Extensibilitatea fizic posibilitatea de adugare de noi module, necesare pentru noile tipuri de date
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 5

Cerine pentru bazele de date multimedia


Bazele de date MM trebuie s asigure, ca i bazele de date tradiionale:
Integrarea datelor adic datele nu trebuie s fie duplicate pentru fiecare program n parte Independena datelor separarea datelor de programele de aplicaii Controlul concurenei care permite execuia concurent a tranzaciilor Persistena datelor adic datele sunt salvate i re-utilizate de diferite tranzacii Confidenialitatea i integritatea datelor Refacerea datelor- defectele necatastrofice nu trebuie s afecteze datele persistente

n plus, bazele de date multimedia trebuie s ofere:


Suport pentru interogarea uniform i eficient a datelor multimedia Suport pentru manevrarea i livrarea unor volume mari de date Suport pentru prezentare datelor multimedia n condiiile cerute de utilizator
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 6

Date multimedia i metadata multimedia


Fiind cunoscut faptul c multe din datele media (imagini, video, audio) prezint informaii redundante, au fost dezvoltate numeroase standarde de codare, decodare i compresie a datelor multimedia
Standardele MPEG (MPEG-1, MPEG-2, MPEG-4) pentru compresia video i audio Standardul AVI (Audio-Video Interleaved) introdus de Microsoft

Metadata multimedia descriu datele multimedia din diferite perspective:


Din perspectiva productorului: metadata ofer informaii bibliografice (titlu, autor, data creerii etc.) Din perspectiva furnizorului: descriptori ai formatului resursei, informaii semantice (de exemplu, numele juctorilor echipelor dintr-un video cu un meci de fotbal); aceste informaii ajut la cutri n aplicaiile multimedia Din perspectiva consumatorului: metadata care permit personalizarea modului de livrare (prin Internet) i de prezentare

Standarde pentru metadata: Dublin Core Standard, Metadata Dictionary SMPTE (Society of Motion Picture and Television Engineers), MPEG-7, and MPEG-21
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 7

Metadata multimedia
MPEG-7 este un standard foarte important pentru sistemele multimedia de regsirea pe baza coninutului (CBIR) Acest standard bazat pe XML specific elementele de descriere (metadata) pentru ntreg ciclul procesului multimedia: captur, analiz, filtrare, codare, livrare Standardul MPEG-21 specific organizarea infrastructurii de livrare a datelor multimedia MPEG-21 definete entitatea de distribuire (Digital Item), care poate fi schimbat ntre actori (utilizatori), modul de administrare a coninutului, managementul drepturilor de proprietate etc. Metadata sunt stocate n baza de date mpreun cu datele multimedia, sunt prelucrate i utilizate pentru interogri

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

Arhitectura bazelor de date multimedia

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

Etapele de dezvoltare a bazelor de date multimedia


Primele sisteme de baze de date MM comerciale au fost dezvoltate n anii 1990, implementate ad-hoc, cu mecanisme de inserare, actualizare i interogare a datelor special proiectate
Dintre acestea (MediaDB - actualmente MediaWay- JASMINE, ITASCA, ORION) puine mai sunt n funciune (de ex. MediaWay)

Al doilea val - Bazele de date MM dezvoltate prin extensia bazelor de date comerciale existente; s-au remarcat:
Baze de date OO ObjectStore (cu extensii pentru date multimedia) Baze de date obiect-relaionale: Oracle (9i, 10g, 11g), IBM DB2, IBM Informix

Al treilea val Sisteme integrate de baze de date MM i regsire dup coninut (Content-Based Retrieval)
Proiecte recent terminate sau n curs de finalizare cu capaciti puternice de regsire semantic, bazate pe standardele MPEG-7 i MPEG-21 Proiectul MARS (Multimedia Analysis and Retrieval System) - University of Illinois at Urbana-Champaign MPEG-7 Oracle Multimedia Data Cartridge
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 10

Oracle Multimedia
Oracle Multimedia (redenumire pentru Oracle interMedia) este o parte integrant din sistemul Oracle 11g care permite stocarea, gestionarea i regsirea datelor media (imagini, video, audio, documente IMD) Oracle Multimedia prevede:
Stocarea i regsirea datelor media Managementul metadata media i a celor ale aplicaiei Suport pentru cele mai cunoscute formate de date imagini, audio, video Interogri folosind datele relaionale asociate Interogri utiliznd metadatele extrase Interogri utiliznd coninutul media indexat cu indexri specializate

Pentru dezvoltarea aplicaiilor complexe, sunt prevzute:


Interfee de acces tradiionale i interfee Web Posibilitatea de comunicare cu servere streaming pentru livrarea datelor media n timp real
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 11

Tipuri de date Oracle multimedia


Tipurile de date multimedia n Oracle, definite n schema ORDSYS sunt:
ORDImage pentru reprezentarea imaginilor ORDAudio pentru reprezentarea audio ORDVideo pentru reprezentarea video ORDDoc pentru reprezentarea documentelor care conin combinaii de imagini, audio i video

Aceste tipuri (clase) definesc:


atribute care reprezint:
coninutul (media data - date imagine, video sau audio) metadata (dimensiunea datelor, tipul, formatul, metoda de compresie)

Metode care pot fi executate de obiecte (import, export, citire metadata, compresie, conversii de formate)

Instane ale acestor tipuri de date pot fi inserate ca obiecte n coloanele tabelelor bazei de date
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 12

Modelul de memorare a obiectelor multimedia (1)


Atributele de date (media data) ale obiectelor ORDImage, ORDAudio, ORDVideo, ORDDoc, pot fi memorate:
n baza de date, ca obiect BLOB, sub controlul tranzaciilor n afara bazei de date (fr controlul tranzaciilor); n acest caz n tabel este memorat o referin la datele media, care sunt memorate:
ntr-un fiier (BFILE - File-based large object ), sau la o adres URL, sau pe un server de date media definit de utilizator

Datele media memorate n afara bazei de date pot fi importate n obiecte BLOB, pentru controlul tranzaciilor

Metadata media sunt memorate n baza de date sub controlul tranzaciilor, indiferent dac datele media sunt memorate n baza de date sau n afara ei Oracle Multimedia gestioneaz metadata pentru toate tipurile media i le poate extrage automat pentru imagini, audio, video
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 13

Modelul de memorare a obiectelor multimedia (2)


Modelul de memorare Oracle Multimedia include i un set de operaii asupra coninutului multimedia cum sunt:
Operaii BLOB: ncrcare, extragere, tergere coninut multimedia Operaii externe: deschidere (open), nchidere (close), import/export ntre o surs extern i un obiect BLOB Alte operaii: extragerea multimedia metadata, memorarea metadata, manipularea datelor etc.

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

14

ncrcarea coninutului multimedia


ncrcarea coninutului multimedia n baza de date Oracle:
SQL*Loader: ncarc mari cantiti de coninut multimedia foarte eficient Proceduri PL/SQL de ncrcare, ca alternativ fa de SQL *Loader Replicare din alte baze de date Oracle Annotator: un toolset sofisticat care extrage metadata din coninutul multimedia i le memoreaz mpreun n baza de date Oracle Internet File System: un toolset de import/export coninut multimedia folosind interfee client

Metadata extrase de un toolset evoluat (ca Annotator) pot fi memorate ca:


atribute metadata n tabele documente XML, pentru prelucrare ulterioar
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 15

Atribute metadata
Metadata includ urmtoarele atribute:
Informaii privind modul de stocare a datelor audio, imagini, video, documente, incluznd tipul sursei de date, numele sursei de date, locaia, dac datele media sunt stocate intern sau extern Momentul de timp (timestamp) al actualizrii datelor media Descrierea datelor audio, video, imagini Tipul MIME (Multipurpose Internet Mail Extensions) Caracteristici audio: tipul de codare, numr de canale, frecvena de eantionare, dimensiunea eantioanelor, tipul de compresie, durata de redare Caracteristici imagini: dimensiunile imaginii(lime, nlime), formatul coninutului imaginii, mrimea coninutului imaginii Caracteristici video: dimensiunile cadrelor (lime, nlime), rezoluia cadre, numr de cadre, tipul compresiei, durata de redare

n plus, este prevzut un set minimal de metode de manevrare a imaginilor: conversia formatelor, compresie, scalare, copiere, oglindire, rotire, deplasare, ajustarea strlucirii
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 16

Livrarea coninutului multimedia


Oracle Multimedia ofer posibilitatea de regsire dup coninut (CBR) a imaginilor digitale
Regsirea dup coninut caut n baza de date imagini care seamn cu o imagine dat (adic au distribuii de culoare sau forme similare) Regsirea dup coninut nu permite recunoaterea de pattern-uri puternic specializate (recunoaterea amprentelor, a feelor sau a imaginilor medicale)

Modurile de livrare a coninutului multimedia:


Toate tipurile de date multimedia pot fi livrate direct din baza de date Oracle Multimedia mai ofer posibilitatea de livrare a coninutului multimedia prin intermediul unui server Web Pentru anumite formate video sau audio este posibil livrarea isochron n protocol RTSP (Real-time Streaming Protocol) prin intermediul unui server de streaming (ca de ex. RealNetworks), astfel nct s poat fi redat direct la utilizator
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 17

Tipurile de date Oracle Multimedia


Exemplele din acest capitol folosesc tabelul ONLINE_MEDIA din schema Product Media (PM), care folosete tipurile multimedia din schema ORDSYS: ORDSYS.ORDIMAGE, ORDSYS.ORDAUDIO etc.

Fiecare obiect multimedia (ORDAudio, ORDImage,ORDVideo, ORDDoc) conine un obiect imbricat (numit source) de tipul ORDSource Obiectul ORDSource permite accesul la o surs de diferite tipuri
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 18

Tabelul online_media
Datele iniiale din tabelul online_media sunt prezentate mai jos:

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

19

Obiectul imbricat ORDSource


Atributele obiectului imbricat ORDSource sunt:
localData: datele multimedia memorate local ca obiect BLOB cu dimensiunea de maxim 128 TB srcType: tipul sursei de date srcLocation: locaia sursei de date srcName: numele obiectului de date updateTime: momentul de timp al ultimei actualizri a datelor local: un flag care indic dac datele sunt locale (1) sau externe (0)

Multe din metodele comune tipurilor multimedia se refer la operaii legate de obiectul ORDSource, imbricat n fiecare dintre ele Metodele invocate la nivel ORDSource au ca prim argument ctx(RAW) care definete contextul de execuie:
nainte de apelul oricrei astfel de funcii, clientul trebuie s aloce structura ctx, s o iniializeze cu NULL i s invoce metoda openSource(); prin acest apel, modulul plug-in al sursei iniializeaz contextul pentru client Dup terminarea operaiilor, clientul trebuie s invoce metoda closeSource()

Tipul SQL Oracle raw(n) memoreaz un ir de bii de lungime maxim de 2000 octei (16.000 bii)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 20

Metodele comune ale tipurilor Oracle Multimedia


Metode comune ale tipurilor Oracle MM de tip selectori (get) i modificatori (set):
getBFile( ) RETURN BFILE getContent( ) RETURN BLOG getMimeType( ) RETURN VARCHAR2 getSource( ) RETURN VARCHAR2 getSourceLocation( ) RETURN VARCHAR2 getSourceName( ) RETURN VARCHAR2 getSourceType( ) RETURN VARCHAR2 getUpdateTime( ) RETURN DATE isLocal( ) setLocal( ) setMimeType( ) setSource( ) setUpdateTime( ) deleteContent()

Alte metode comune citesc sau scriu date n sursele de date:


readFromSource( ) writeToSource( )
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 21

Exemple de utilizare a metodelor comune (1)


Aflarea tipului datelor multimedia din tabelul online_media:
SELECT t.product_id id, t.product_photo.getMimeType() mimetype FROM pm.online_media t; SELECT t.product_id id, t.product_audio.getMimeType() mimetype FROM pm.online_media t; SELECT t.product_id id, t.product_video.getMimeType() mimetype FROM pm.online_media t;

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

22

Exemple de utilizare a metodelor comune (2)


Aflarea timpului de selecie/actualizare a unei date audio:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT p.product_audio INTO obj FROM pm.online_media p WHERE p.product_id = 1743; DBMS_OUTPUT.PUT_LINE('Update time is:'); DBMS_OUTPUT.PUT_LINE(TO_CHAR(obj.getUpdateTime(), 'MM-DD-YYYY HH24:MI:SS')); END;

La execuia acestui bloc PL/SQL se obine rezultatul afiat

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

23

Exemple de utilizare a metodelor comune (3)


Setarea unei surse externe de date:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT p.product_audio INTO obj FROM pm.online_media p WHERE p.product_id = 1743 FOR UPDATE; DBMS_OUTPUT.PUT_LINE( 'setting and getting source'); obj.setSource('file','FILE_DIR','audio.au'); DBMS_OUTPUT.PUT_LINE( obj.getSource()); UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1743; END;

Dac sursa este un fiier, locaia acestuia trebuie s fie un director Oracle definit cu sys as sysdba:
CREATE OR REPLACE DIRECTORY FILE_DIR AS 'd:/Oracle/media_data'; Commit; GRANT READ,WRITE ON DIRECTORY FILE_DIR TO pm; Commit;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 24

Tipul de date multimedia ORDAudio


Tipul de date ORDAudio permite stocarea, managementul i manipularea datelor audio; atributele tipului ORDAudio sunt:
-- TYPE ATTRIBUTES description VARCHAR2(4000), source ORDSource, format VARCHAR2(31), mimeType VARCHAR2(4000), comments CLOB, -- AUDIO RELATED ATTRIBUTES encoding VARCHAR2(256), numberOfChannels INTEGER, samplingRate INTEGER, sampleSize INTEGER, compressionType VARCHAR2(4000), audioDuration INTEGER

Iniializarea obiectelor ORDAudio se poate face prin metode statice init(), care seteaz valorile (unele implicite) ale unei instane Aceste metode au rol de constructori, dei n programarea obiectorientat constructorii au aceeai denumire cu clasa (tipul) dat
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 25

Iniializarea obiectelor ORDAudio


Metoda init( ) RETURN ORDAudio - iniializeaz toate atributele obiectului cu NULL, cu urmtoarele excepii:
source.updateTime este setat la SYSDATE source.local - este setat la 1 (local) source.localData - este setat la valoarea empty_blob Metoda: init (srcType IN VARCHAR2, srcLocation IN VARCHAR2, srcName IN VARCHAR2) RETURN ORDAudio; -iniializeaz toate atributele cu NULL, source.updateTime - este setat cu SYSDATE source.local - este setat la 0 source.localData - este setat cu empty_blob source.srcType, source.srcLocation, source.srcName - sunt setate cu valoarea de intrare a argumentului respectiv

cu urmtoarele excepii:

Exemple de iniializare:
BEGIN INSERT INTO pm.online_media (product_id, product_audio) VALUES (1729, ORDSYS.ORDAudio.init()); END; / BEGIN INSERT INTO pm.online_media (product_id, product_audio) VALUES (1733, ORDSYS.ORDAudio.init('FILE', 'FILE_DIR','speaker.au')); END;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 26

Metodele specifice tipului de date ORDAudio


Cele mai multe dintre metode specifice tipului ORDAudio sunt selectori (get()) sau modificatori (set()) pentru diferitele atribute:
getAllAttributes( ) getAttribute( ) getAudioDuration( ) getCompressionType( ) getContentLength( ) getContentInLob( ) getDescription( ) getEncoding( ) getFormat( ) getNumberOfChannels( ) getSampleSize( ) getSamplingRate( ) setAudioDuration( ) setCompressionType( ) setDescription( ) setEncoding( ) setFormat( ) setKnownAttributes( ) setNumberOfChannels( ) setSampleSize( ) setSamplingRate( )

Pe lng acestea, mai exist:


metode de import a coninutului media (import(), importFrom()) metoda de verificare a proprietilor obiectului (checkProperties()) metoda de prelucrare (processAudioCommand())
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 27

Exemplu pentru tipul ORDAudio (1)


Setarea i citirea atributelor unui obiect ORDAudio:
DECLARE obj ORDSYS.ORDAudio; BEGIN SELECT p.product_audio INTO obj FROM pm.online_media p WHERE p.product_id = 1743 FOR UPDATE; obj.setFormat('AUFF'); obj.setEncoding('MULAW'); obj.setNumberOfChannels(1); obj.setSamplingRate(8); obj.setSampleSize(8); obj.setCompressionType('8BITMONOAUDIO'); obj.setAudioDuration(16); DBMS_OUTPUT.PUT_LINE('format: ' || obj.getFormat()); DBMS_OUTPUT.PUT_LINE('encoding: ' || obj.getEncoding()); DBMS_OUTPUT.PUT_LINE('channels: ' || TO_CHAR(obj.getNumberOfChannels())); DBMS_OUTPUT.PUT_LINE('samplingRate: ' || TO_CHAR(obj.getSamplingRate())); DBMS_OUTPUT.PUT_LINE('sampleSize: ' || TO_CHAR(obj.getSampleSize())); DBMS_OUTPUT.PUT_LINE('compressionType : ' || obj.getCompressionType()); DBMS_OUTPUT.PUT_LINE('audioDuration: ' || TO_CHAR(obj.getAudioDuration())); COMMIT; END;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 28

Exemplu pentru tipul ORDAudio (2)

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

29

Importul datelor audio din surse externe


Metodele de import sunt:
import(ctx IN OUT ROW) - transfer datele audio de la o surs extern de date audio n variabila localData a obiectului ORDSource imbricat; parametrul ctx este contextul de informaii al modulului plug-in al sursei importFrom(ctx IN OUT RAW, source_type IN VARCHAR2, source_location IN VARCHAR2, source_name IN VARCHAR2) - transfer datele audio de la sursa extern specificat n variabila localData a obiectului ORDSource imbricat

Exemplu:
DECLARE obj ORDSYS.ORDAudio; ctx RAW(64) :=NULL; BEGIN SELECT p.product_audio INTO obj FROM pm.online_media p WHERE p.product_id = 1729 FOR UPDATE; obj.importFrom(ctx,'file','FILE_DIR',Canary.wav'); -- display size DBMS_OUTPUT.PUT_LINE('Length is ' || TO_CHAR(obj.getContentLength(ctx))); UPDATE pm.online_media p SET p.product_audio = obj WHERE p.product_id = 1729; END;
Cap. 7 - Baze de date multimedia

Prof. Felicia Ionescu

30

Tipul de date multimedia ORDImage


Tipul de date ORDImage permite stocarea, managementul i manipularea imaginilor; atributele tipului de date ORDImage sunt:
-- TYPE ATTRIBUTES source ORDSource, -- sursa continutului de date height INTEGER, -- inaltimea imaginii in numar de pixeli width INTEGER, -- latimea imaginii in numar de pixeli contentLength INTEGER, -- dimensiunea in bytes ocupata de imagine pe disc fileFormat VARCHAR2(4000), -- formatul fisierului (TIFF, JPEG etc.) contentFormat VARCHAR2(4000), -- tipul imaginii (monocroma etc) compressionFormat VARCHAR2(4000),-- formatul de compresie mimeType VARCHAR2(4000), -- tipul MIME

Metodele de iniializare (cu rol de constructori) sunt similare cu cele ale tipului ORDAudio: init() RETURN ORDImage i init(srcType IN VARCHAR2, srcLocation IN VARCHAR2, srcName IN VARCHAR2) RETURN ORDImage Exemplu de iniializare a unui obiect ORDImage:
BEGIN INSERT INTO pm.online_media (product_id, product_photo) VALUES (3515, ORDSYS.ORDImage.init('FILE', 'FILE_DIR',Garden.jpg')); END;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 31

Metodele specifice tipului ORDImage


checkProperties( ) copy( ) getCompressionFormat( ) getContentFormat( ) getContentLength( ) getDicomMetadata( ) getFileFormat( ) getHeight( ) getMetadata( ) getWidth( ) import( ) importFrom( ) process( ) processCopy( ) putMetadata( ) setProperties( )

Exemplu: crearea unei copii a unei imagini


DECLARE image_1 ORDSYS.ORDImage; image_2 ORDSYS.ORDImage; BEGIN -- Initialize a new ORDImage object where the copy will be stored: INSERT INTO pm.online_media (product_id, product_photo) VALUES (3091, ORDSYS.ORDImage.init()); -- Select the source object into image_1: SELECT product_photo INTO image_1 FROM pm.online_media WHERE product_id = 1743; -- Select the target object into image_2: SELECT product_photo INTO image_2 FROM pm.online_media WHERE product_id = 2400 FOR UPDATE; image_1.copy(image_2); -- Copy the data from image_1 to image_2: UPDATE pm.online_media SET product_photo = image_2 WHERE product_id = 2400; END;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 32

Tipul de date multimedia ORDVideo


Tipul de date ORDVideo suport stocarea i managementul datelor video; atributele acestui tip sunt:
-- TYPE ATTRIBUTES description VARCHAR2(4000), source ORDSource, format VARCHAR2(31), mimeType VARCHAR2(4000), comments CLOB, -- VIDEO RELATED ATTRIBUTES width INTEGER, height INTEGER, frameResolution INTEGER, frameRate INTEGER, videoDuration INTEGER, numberOfFrames INTEGER, compressionType VARCHAR2(4000), numberOfColors INTEGER, bitRate INTEGER

Metodele de iniializare (cu rol de constructori): init() RETURN ORDVideo i init(srcType IN VARCHAR2, srcLocation IN VARCHAR2, srcName IN VARCHAR2) RETURN ORDVideo
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 33

Metodele specifice tipului ORDVideo


checkProperties( ) getAllAttributes( ) getAttribute( ) getBitRate( ) getCompressionType( ) getContentInLob( ) getContentLength( ) getDescription( ) getFormat( ) getFrameRate( ) getFrameResolution( ) getFrameSize( ) getNumberOfColors( ) getNumberOfFrames( ) getVideoDuration( ) import( ) importFrom( ) processVideoCommand( ) setBitRate( ) setCompressionType( ) setDescription( ) setFormat( ) setFrameRate( ) setFrameResolution( ) setFrameSize( ) setKnownAttributes( ) setNumberOfColors( ) setNumberOfFrames( ) setProperties( ) setVideoDuration( )

Exemplu: citirea rezoluiei de cadru a unui obiect video


DECLARE obj ORDSYS.ORDVideo; res INTEGER; BEGIN SELECT p.product_video INTO obj FROM pm.online_media p WHERE p.product_id =1743; DBMS_OUTPUT.PUT_LINE(Duration : ' ||TO_CHAR(obj.getVideoDuration())); END;
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 34

Tipul de date multimedia ORDDoc


Tipul de date ORDDoc permite stocarea i managementul oricrui tip de date multimedia, incluznd imagini, date audio i date video; atributele acestui tip sunt:
-- TYPE ATTRIBUTES source ORDSource, format VARCHAR(80), mimeType VARCHAR(80), contentLength INTEGER, comments CLOB,

Metodele de iniializare (cu rol de constructori):


init() RETURN ORDDoc init(srcType IN VARCHAR2, srcLocation IN VARCHAR2, srcName IN VARCHAR2) RETURN ORDDoc

Metodele specifice tipului ORDDoc:


getContentInLob( ) getContentLength( ) getFormat( )
Prof. Felicia Ionescu

import( ) importFrom( ) setFormat( ) setProperties( )


Cap. 7 - Baze de date multimedia 35

Aplicaii Oracle Multimedia


Aplicaiile multimedia se folosesc pentru colectarea, modelarea, stocarea i prezentarea datelor multimedia Aplicaiile Oracle Multimedia sunt aplicaii multi-tier care folosesc: Oracle Database, Oracle Application Server, biblioteci Java Oracle Database asigur:
Stocare, management, regsire imagini, audio, video Formatarea datelor, extragere metadate, metode de prelucrare a imaginilor Suport pentru comunicaia cu servere streaming

Oracle Application Server asigur:


Suport de dezvoltare a aplicaiilor bazate pe JSP, servlet, PL/SQL Servicii de adaptare a mediilor la transmiterea wireless JDeveloper (BC4J/UIX) i integrarea portalurilor

Biblioteci Java:
JAI (Java Advanced Imaging) JMF(Java Media Framework) JDBC (Java Database Connectivity)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 36

Arhitectura aplicaiilor Oracle Multimedia

OCI (Oracle Call Interface) RTP (Real-time Transport Protocol) RTSP (Real-time Streaming Protocol) Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 37

Serverul Oracle Database


n baza de date Oracle Database sunt coninute tabelele care conin coloane de obiecte multimedia; de asemenea pot exista date multimedia externe, referite din tabele Modulele Java media parser i media processor se evecut ntr-o JVM
Media parser preia i verific coninutul de date i metadata atunci cnd datele sunt inserate n baza de date Procesorul media (Media sau Image Processor) bazat pe biblioteca JAI (Java Advanced Imaging) permite prelucrri de imagini n baza de date

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

38

Serverul de Aplicaii Oracle


Serverul de aplicaii Oracle conine:
Mediul de dezvoltare a aplicaiilor JDeveloper, care poate fi folosit pentru dezvoltarea aplicaiilor Java care utilizeaz obiecte Oracle Multimedia Portalul de acces la serverul de aplicaii Biblioteca de tag-uri JSP pentru dezvoltarea aplicaiilor Web bazate pe Java Un container de componente business (BC4J Business Components for Java) care permit dezvoltarea de aplicaii Java Biblioteca Oracle Multimedia Java API

Biblioteca Oracle Multimedia Java API coninut n package-ul oracle.ord.im.* conine clase corespunztoare tipurilor de obiecte din Oracle Multimedia, care permit accesarea obiectelor multimedia din baza de date prin interfaa JDBC Aceste clase au denumiri asemntoare cu cele din Oracle Multimedia, dar respectnd conveniile Java: OrdAudio, OrdImage, OrdVideo, OrdDoc Folosind aceast bibliotec se pot dezvolta att aplicaii de tipul client (puternic), ct i aplicaii Web bazate pe Java, care acceseaz datele multimedia stocate ntr-o baza de date Oracle
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 39

Client Java pentru aplicaii Oracle Multimedia


Obiectele Oracle Multimedia pot i folosite (pentru ncrcare, interogare, sakvare) prin intermediul claselor corespunztoare din Oracle Multimedia Java API OrdAudio, OrdDoc,OrdImage, OrdVideo Conectarea la baza de date se face prin biblioteca JDBC prin care se pot trimite comenzi SQL de interogare:
String query = "select product_photo, product_audio,"+ " product_video, product_testimonials from" + " pm.online_media where product_id=3117"; PreparedStatement pstmt = conn.prepareStatement(query);

Rezultatul este returnat n structura rset:


OracleResultSet rset = (OracleResultSet)pstmt.executeQuery();

i apoi poate fi prelucrat:


if ( rset.next() ) { OrdImage imgProxy = (OrdImage)rset.getORAData( "product_photo", OrdImage.getORADataFactory()); OrdAudio audProxy = (OrdAudio)rset.getORAData( "product_audio", OrdAudio.getORADataFactory()); .. }
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 40

Aplicaii Web Oracle Multimedia bazate pe Java


Aplicaiile Web bazate pe Java constau din servlei i pagini JSP Un servlet este o clas Java care prelucreaz cererile HTTP i genereaz pagini HTML dinamice de rspuns O pagin JSP este un document text care conine cod Java:
codul Java se convertete ntr-un servlet care construiete partea dinamic de rspuns aceast parte se combin cu partea static din pagina JSP pentru a forma pagina HTML de rspuns ctre client

Clasele din Oracle Multimedia Servlets & JSP Java API (incluse n pachetul (oracle.ord.im.* ) permit regsirea datelor media n baza de date i ncrcarea lor n aplicaia Web Aceste clase sunt:
OrdHttpResponseHandler OrdHttpJspResponseHandler OrdHttpUploadFormData OrdHttpUploadFile OrdMultipartFilter OrdMultipartWrapper
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 41

Baze de date medicale - Standardul DICOM


Digital Imaging and Communications in Medicine (DICOM) este un standard pentru imagini medicale Acest standard a fost iniiat de American College of Radiology (ACR) i National Electrical Manufacturers Association (NEMA) pentru a permite interschimbul imaginilor i conectivitatea dispozitivelor radiologice
Imaginile medicale sunt componente de baz n nregistrrile medicale electronice (Electronic Medical Records - EMR) Stocarea i manevrarea sigur a imaginilor medicale prezint un mare interes tiinific aplicativ

Standardul DICOM permite stocarea mpreun a imaginilor i metadata i are 2 componente: modelul de date i protocolul de comunicaie
Modelul de date este obiect-orientat: imaginile sau formele de und captate de dispozitivele medicale sunt reprezentate prin:
obiecte de informaii operaii care pot fi executate asupra acestor obiecte (get, fiind, store) mpreun, obiectele i operaiile sunt denumite service object pair (SOP)

Protocolul de comunicaie definete sintaxa de transfer pentru trimiterea obiectelor prin reea sau pentru memorarea ntr-un sistem de fiiere
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 42

Oracle Multimedia DICOM


DICOM a fost introdus n Oracle ncepnd cu versiunea 10g, iniial ca extensie a tipului ORDImage n versiunea urmtoare (11g) s-a adugat tipul de date ORDDicom Datele DICOM sunt prezentate n tabele (ca i coloane ale acestora) i pot fi accesate pentru interogri Oracle Multimedia DICOM asigur securitatea i confidenialitatea datelor medicale prin criptarea acestora i prin controlul accesului (autentificare, autorizare) Metadata DICOM includ:
informaii despre pacient informaii despre medic (fizician) informaii privind seria i studiul medical n care se ncadreaz imaginile

Metadata DICOM se reprezint n format XML, cu posibilitatea de extindere i definire de ctre utilizator a informaiilor de interes pentru fiecare aplicaie
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 43

Tipul de date ORDDicom


Exemplu de tabel care include obiecte ORDDicom este tabelul MEDICAL_IMAGE_OBJ din setul de exemple Oracle Product Media Un obiect ORDDicom (1) este compus din:
(2) Atributele DICOM metadata reprezentate ca document XML: metadata XMLType (3) Coninutul DICOM, reprezentat ca obiect BLOB n baza de date sau ca referin la un fiier: source ORDDataSource (4) Atributele generale care memoreaz identificatori: SOP_INSTANCE_UID varchar2(128), SOP_CLASS_UID varchar2(64), STUDY_INSTANCE_UID varchar2(64), SERIES_INSTANCE_UID varchar2(64), (5) Atribute diverse utilizate de Oracle: contentLength INTEGER, flag INTEGER, extension BLOB
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 44

Construirea obiectelor ORDDicom


Obiectele ORDDicom pot fi construite folosind un constructor ORDDicom( ) ntr-o instruciune SQL sau ntr-un program PL/SQL Construirea unui obiect ORDDicom pornind de la un BLOB:
ORDDicom(SELF IN OUT NOCOPY ORDDicom, data IN BLOB, setproperties IN INTEGER DEFAULT 0) RETURN SELF AS RESULT

Construirea unui obiect ORDDicom pornind de la un obiect ORDImage:


ORDDicom(SELF IN OUT NOCOPY ORDDicom, data IN ORDImage, setproperties IN INTEGER DEFAULT 0) RETURN SELF AS RESULT

Construirea unui obiect ORDDicom pornind de la o surs:


ORDDicom( SELF IN OUT NOCOPY ORDDicom, source_type IN VARCHAR2 DEFAULT 'LOCAL', source_location IN VARCHAR2 DEFAULT NULL, source_name IN VARCHAR2 DEFAULT NULL, setproperties IN INTEGER DEFAULT 0 ) RETURN SELF AS RESULT

Exemplu crearea unui obiect ORDDicom dintr-un fiier i extragerea atributelor prin setarea flag-ului setProperties:
insert into medical_image_obj (id, dicom_src) values (2, ORDDicom('FILE', 'DICOMDIR', 'example.dcm', 1));
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 45

Metodele tipului de date ORDDicom


export( ) extractMetadata( ) getAttributeByName( ) getAttributeByTag( ) getContent( ) getContentLength( ) getSeriesInstanceUID( ) getSourceInformation( ) getSourceLocation( ) getSourceName( ) getSourceType( ) getSOPClassUID( ) getSOPInstanceUID( ) getStudyInstanceUID( ) import( ) isAnonymous( ) isConformanceValid( ) isLocal( ) makeAnonymous( ) processCopy( ) to BLOBs processCopy( ) to ORDDicom processCopy( ) to ORDImage setProperties( ) writeMetadata( )

Exemplu: scrierea de noi metadata ntr-un obiect DICOM:


declare obj_src orddicom; obj_dest orddicom; metadata xmltype; begin metadata := xmltype(bfilename('DICOMDIR', 'wm_meta.xml'), nls_charset_id('AL32UTF8'), select dicom_src, dicom_dest into obj_src, obj_dest from medical_image_obj where id = 1 for update; obj_src.writeMetadata(metadata, obj_dest); update medical_image_obj set dicom_dest = obj_dest where id = 1; end;
Cap. 7 - Baze de date multimedia

Prof. Felicia Ionescu

46

Arhitectura Oracle Multimedia DICOM


Oracle Multimedia DICOM permite stocarea, managementul i regsirea datelor DICOM n baze de date, de unde pot fi accesate n siguran de mii de utilizatori

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

47

Nivelul serverului de date Oracle DICOM


La nivelul serverului de date sunt memorate datele DICOM ca i coloane n tabele reprezentnd:
Imagini radiografice (X-ray), imagini ultrasunete, imagini de rezonan magnetic (RMN) Imagini miniatur JPEG (thumbnail) a imaginilor originale Forme de und Metadata ca documente XML care nsoesc imaginile

Maina virtual Java (JVM) gzduiete:


Un depozit DICOM (repository) - conine modelul de date al bazei de date Un parser DICOM extrage metadata din coninutul DICOM Un codor XMLDICOM convertete metadata n format XML Un validator de conforman DICOM - verific sintaxa i semantica datelor Un procesor de imagine bazat pe JAI (Java Advanced Imaging) care efectueaz operaii ca transformri de formate, generarea imaginilor de miniatur etc.
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 48

Modelul de date Oracle Multimedia DICOM (1)


Comportarea n timpul execuiei a sistemului Oracle Multimedia DICOM este determinat de modelul de date definit pentru domeniul aplicaiei i stocat n Repository (run-time model-based behavior) Modelul de date DICOM este o colecie de documente XML, care pot fi adugate sau terse n mod dinamic n cursul execuiei i sunt gestionate de administratori n figura urmtoare sunt prezentate elementele acestei comportri:
Deasupra liniei punctate sunt elementele de definire a modelului de date n cursul proiectrii; elementele:
(1) Dicionarul de date DICOM include definirea atributelor standardului DICOM (2) Document de mapping corespondena ntre atributele modelului i documentul XML de descriere a acestuia (3) Exemplu de schem metadata reprezentat n XML

Sub linia punctat sunt reprezentate operaiile de extragere a trsturilor n cursul execuiei:
(4) Coninutul DICOM este compus din elemente de date (5)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 49

Modelul de date Oracle Multimedia DICOM (2)


(6) Parserul gsete definiia unui atribut prin examinarea dicionarului de date DICOM (7) Codorul XML inspecteaz documentul de coresponden pentru a genera documentul XML (8) Documentul XML generat reprezint metadata (9) Validatorul de schem XML poate valida documentul pe baza schemei XML metadata
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 50

Extinderea capacitilor multimedia ale bazelor de date


Sistemele de baze de date actuale, n special cele obiect-relaionale, ofer posibiliti de stocare i management al datelor multimedia:
IBM DB2 - Universal Database Multimedia Extender extinde modelul obiectrelaional pentru obiecte de tip imagini, audio, video; se pot importa i exporta obiecte multimedia i se pot regsi obiecte dup atributele lor IBM Informix DataBlades Extender ofer capaciti funcionale de cutare i regsire a datelor multimedia similare cu DB2 Oracle Multimedia i Oracle Multimedia DICOM folosesc modelul obiectrelaional pentru implementarea modelului de date multimedia

Aceste tehnologii sunt destul de restrictive i, de aceea au fost studiate posibiliti de extindere a capacitilor bazelor de date multimedia Extensiile se pot realiza folosind cartue de date (data cartridge) pe baza standardelor MPEG-7 i MPEG-21 De exemplu, MPEG-7 Multimedia Data Cartridge (MDC) se poate adapta la capacitile de ncasetare a datelor (data cartridge) oferite de marii productori de baze de date (Oracle, IBM, Microsoft)
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 51

Standardele MPEG-7 i MPEG-21


MPEG-7 este un standard ISO/IEC (2002) dezvoltat de MPEG (Moving Picture Experts Group) pentru descrierea coninutului multimedia (numit i standardul Multimedia Content Description Interface) Standardul definte modul de descriere a coninutului multimedia prin:
Descriptori (D); un descriptor este o reprezentare a unei trsturi caracteristice a informaiei audio-vizuale Scheme de Descriere (Description Schemes - DS); o schem de descriptori identific legturile ntre descriptori

Att schemele de descriptori ct i descriptorii sunt definite n limbajul DDL (Description Definition Language) bazat pe XML Schema, extins prin noi tupuri de date MPEG-21 este un standard pentru definirea unui cadru deschis de lucru cu datele multimedia (open multimedia framework) MPEG-21 trebuie s acopere ntreg lanul de creare, producie, livrare, personalizare, consum, prezentare i comercializare a datelor multimedia
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 52

Exemplu de document MPEG-7 i arborele DOM

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

53

Oracle Data Cartridge


Data Cartridge grupeaz tipuri de date i a operaii specifice unui anumit domeniu ntr-un pachet (package) care extinde funcionarea serverului Oracle (de exemplu MPEG-7 Oracle Multimedia Data Cartridge) Data cartridges sunt executate pe server (server-based) (chiar integrate n server) dar permit operaii specifice domeniului respectiv (indexare, optimizare specfic domeniului etc.) Oracle Data Cartradge extinde urmtoarele caracteristici ale serverului:
Tipurile de date definite de utilizator pentru domeniul specific (de exemplu, tipuri de date pentru imagini) Capacitatea de execuie a serverului care va permite utilizarea rutinelor scrise n diferite limbaje (Java, C++) ca metode ale tipurilor nou definite Optimizarea interogrilor - folosirea funciilor de cost i a algoritmilor de optimizare specifici domeniului Indexarea datelor posibilitatea de mentenan a indexurilor n timpul ncrcrii i actualizrii datelor i de utilizare n cursul interogrilor
Prof. Felicia Ionescu
ORACLE 11g

Cap. 7 - Baze de date multimedia

54

MPEG-7 Oracle Multimedia Data Cartridge (MDC)


MDC const din dou pri: schema multimedia i modelul de indexare multimedia Schema multimedia const din metadata care descriu datele multimedia:
Este realizat pe baza caracteristicii de extensibilitate a mediului cartridge Se obine prin transpunerea schemei datelor multimedia din standardul MPEG-7 (MDS) n schema bazei de date multimedia, constnd din tipuri de date (object types) i tabele Schema conine att descriptori de nivel sczut (culoare, form, textur), ct i descriptori de nivel nalt (definii n partea structural i semantic a MPEG Aceasta permite regsirea datelor multimedia pe baza caracteristicilor semantice n combinaie cu trsturi de nivel sczut

Modelul de indexare multimedia (Multimedia Indexing Framework -MIF) ofer un cadru de indexare extensibil pentru regsirea datelor
Modelul de indexare este integrat cu limbajul de interogare i permite regsirea eficient a datelor multimedia Un set de biblioteci interne i externe permit accesul la datele multimedia i comunicaia cu MDC (query, insert, update, etc.).
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 55

Suport multimedia n alte SGBD-uri


MySQL (5.1), PostgreSQL (8.4) MS SQL Server (2008) nu ofer suport pentru date multimedia, dar utilizatorii pot memora diferite date media (imagini, date audio etc.) ca i obiecte CLOB sau BLOB sau alte tipuri De exemplu, n MS SQL Server 2008 sunt definite tipurile de date:
text ntext (national text) image

i mai multe instruciuni Transact-SQL cu astfel de date:


Readtext Writetext Updatetext

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

56

Bibliografie Baze de date multimedia


M. Piatini, O. Diaz (editors), Advanced Database Technology and Design, Artech House, 2005 Harald Kosch, Distributed Multimedia Database Technologies Supported by MPEG-7 and MPEG-21, Auerbach Publications, 2004 Mario Doller, Harald Kosch, An MPEG-7 Multimedia Data Cartridge, Institute of Information Technology, University Klagenfurt, 9020, Klagenfurt, Austria, 2003 Oracle 11g Documentation:
Oracle Multimedia Users Guide Oracle Multimedia Reference Oracle Multimedia DICOM Developers Guide Oracle Data Cartridge Developer's Guide

MySQL 5.1 Documentation PostgeSQL 8.4 Docuumentation Microsoft SQL Server 2008 Books Online
Prof. Felicia Ionescu Cap. 7 - Baze de date multimedia 57

Prof. Felicia Ionescu

Cap. 7 - Baze de date multimedia

58