Multimedia Database Systems: casi d uso



Documenti analoghi
DBMS (Data Base Management System)

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Corso sul linguaggio SQL

XML e Sistemi per la Gestione di Basi di Dati Relazionali

Informatica per le discipline umanistiche 2 lezione 10

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Archivi e Basi di Dati

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

La struttura: DTD. Laura Farinetti Dip. Automatica e Informatica Politecnico di Torino. laura.farinetti@polito.it

Lezione 8. Metadati, Viste e Trigger

Dati relazionali e XML

Capitolo 13. Interrogare una base di dati

Informatica I per la. Fisica

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Architettura MVC-2: i JavaBeans

Introduzione. Dicom in Oracle 11g: gestione e vantaggi

Organizzazione degli archivi

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Al giorno d oggi, i sistemi per la gestione di database

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

GERARCHIE RICORSIVE - SQL SERVER 2008

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

Laboratorio di Basi di Dati e Web

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Corso sul linguaggio SQL

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

User Tools: DataBase Manager

Dispensa di database Access

2104 volume III Programmazione

Sistemi per la gestione di database: MySQL ( )

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Basi di Dati: Corso di laboratorio

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Corso di Basi di Dati Multimediali

Esercitazione sulle libpq - libreria C per PostgreSQL

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

Laboratorio di Tecnologie Web Laurea in Scienze e Tecnologie Multimediali

CMDBuild: un progetto open source di supporto alla gestione ICT (e non solo) Approfondimenti Tecnici. Francesco Zanitti Tecnoteca S.r.

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Lezione V. Aula Multimediale - sabato 29/03/2008

Lezione 9. Applicazioni tradizionali

Laboratorio di Basi di Dati

Una metodologia di progettazione di applicazioni web centrate sui dati

Sistemi Mobili e Wireless Android - Dati persistenti: SQLite

Introduzione a MySQL

extensible Markup Language

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Il BACKUP è disponibile in

Progettazione di Basi di Dati

PROGRAMMA DI CLASSE 5AI

L architettura di un DBMS

Gestione delle tabelle

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

HTML e Linguaggi. Politecnico di Milano Facoltà del Design Bovisa. Prof. Gianpaolo Cugola Dipartimento di Elettronica e Informazione

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Volumi di riferimento

Database e reti. Piero Gallo Pasquale Sirsi

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Inizializzazione, Assegnamento e Distruzione di Classi

Concetti fondamentali dei database database Cos'è un database Principali database

Linee di evoluzione dei Database

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

DATABASE.

Database. Francesco Tapparo Informatica e Bioinformatica /16

SQL/OLAP. Estensioni OLAP in SQL

Le query. Lezione 6 a cura di Maria Novella Mosciatti

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

Corso di Sistemi di Elaborazione delle informazioni

MySQL Database Management System

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

RDBMS: panorama attuale. RDBMS: panorama attuale

19. LA PROGRAMMAZIONE LATO SERVER

Progettazione : Design Pattern Creazionali

SQL - Tipi di dato Il linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

Librerie digitali. Introduzione. Cos è una libreria digitale?

Corso su LINQ Lezione 16. Introduzione

Caratteristiche principali. Contesti di utilizzo

Introduzione al mondo della persistenza. Dott. Doria Mauro

Base di dati e sistemi informativi

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

Simple & Efficient.

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Base Dati Introduzione

SQL Server Integration Services. SQL Server 2005: ETL - 1. Integration Services Project

Introduzione all Architettura del DBMS

Basi di Dati e Microsoft Access

Linguaggio SQL. Structured Query Language

Transcript:

Multimedia Database Systems: casi d uso

Un Multimedia Database Management System (MMDBMS) deve fornire supporto a tipi di dati multimediali oltre che le tradizionali funzioni DBMS MMDBMS commerciali sono ancora poco popolari e spesso poco supportati es. IBM DB2 AIV extenders non sono più supportati dalla versione DB2 9.1

Database relazionali In alcuni casi non è necessario usare un MMDBMS Es.: quando non è necessario usare un indice basato su dati multimediali Caso d uso: sistema di riconoscimento di trademark in video sportivi Obiettivo: determinare gli istanti temporali in cui appare un marchio Soluzione: memorizzare su DBMS l istante di apparizione (e la posizione) dei marchi

Media Integration and Communication Center Caso d uso: riconoscimento di marchi in video sportivi Per determinare la presenza di un marchio si analizzano i frame del video e se ne estraggono gli interest points (es. SIFT). I dati relativi ai punti (vettori ad alta dimensionalità) si salvano su DBMS relazionale (es. MySQL)

L operazione di matching dei marchi richiede l analisi di tutti i frame del video l indice è creato sul timecode

I risultati del riconoscimento di un marchio (tempo e posizione) sono memorizzabili in una semplice tabella... Trademark SIFT keypoints

Database relazionali e XML I metadati relativi a oggetti multimediali possono essere comodamente rappresentati usando XML: i dati sono facilmente interscambiabili (es. in ambiente distribuito) struttura gerarchica che si adatta bene a molti tipi di dati multimediali (es. le possibili suddivisioni di un video) consente di rappresentare facilmente strutture di dati come alberi, liste e record

Caso d uso: sistema di annotazione di video sportivi ASSAVID Obiettivo: annotare a diversi livelli sintattici e semantici video sportivi, in ambiente distribuito Soluzione: definizione di un formato XML comune per l annotazione dei video. Mappatura della fusione dei dati XML su DBMS (PostgreSQL). Le tabelle del DBMS sono create dal programma Java responsabile della fusione dei dati.

<?xml version="1.0" encoding="utf-8"?> <!ELEMENT document (summary?, annotation*)> <!ELEMENT summary (#PCDATA)> <!ELEMENT annotation (timecode, category, value*)> <!ELEMENT timecode EMPTY> <!ELEMENT category EMPTY> <!ELEMENT value (#PCDATA)> <!ATTLIST document name CDATA #REQUIRED date CDATA #IMPLIED > name (Cue Description Sport Image Audio Shot.Change Text Rati <!ATTLIST subname (Event value Personality New.Speaker Music Sounds Caption On. > kind (string image time frames University integer float) of #IMPLIED Florence <!ATTLIST > value kind (string image time frames integer float) #IMPLIED > Fig. 1. ASSAVID XML DTD Fig. 1. ASSAVID XML DTD version CDATA #IMPLIED author CDATA #REQUIRED producer CDATA #REQUIRED producerip CDATA #IMPLIED > il DTD usato in ASSAVID Fig. 2. Automatic annotation: shot changes, visual and audio conten Fig. tion 2. Automatic annotation: shot changes, visual and audio content, p vista delle tabelle tion <!ATTLIST timecode time CDATA #IMPLIED frames CDATA #IMPLIED > <!ATTLIST category name (Cue Description Sport Image Audio Shot.Change Text Rating) #REQUIRED subname (Event Personality New.Speaker Music Sounds Caption On.Screen) #IMPLIED > <!ATTLIST value kind (string image time frames integer float) #IMPLIED > Fig. 3. Automatic and manual annotation: playfield position and so Fig. 3. Automatic and manual annotation: playfield position and socce 3 Previous work 3 Previous work The problem of detection and recognition of highlights in sport vid The research problemtopic. of detection Among sports and recognition that haveof been highlights analyzed in sport so far, video we

DB relazionali per XML Alcuni DBMS sono in grado di importare ed esportare XML in modo nativo es.: IBM DB2, Oracle, MS SQL, MySQL, Oracle Berkeley DB XML in importazione i documenti XML possono essere rimappati in tabelle, o inseriti in una colonna

Colonne XML è bene usare memorizzare i documenti XML in colonne (VARCHAR o CLOB) se: si vogliono archiviare interi documenti XML si aggiornano poco frequentemente i dati XML si leggono molto frequentemente i dati XML tipicamente si accede ai nodi XML con XPath le possibilità di indicizzazione dipendono dal DB usato es. DB2 side tables

Colonne XML: esempio MySQL CREATE TABLE x (doc VARCHAR(150)); INSERT INTO x VALUES (' <book> <title>a guide to the SQL standard</title> <author> In MySQL 5.1.5 c è un supporto iniziale all importazione di XML. Esempio di tabella con colonna che contiene dati XML: <initial>cj</initial> <surname>date</surname> </author> </book> '); INSERT INTO x VALUES (' <book> <title>sql:1999</title> <author> <initial>j</initial> <surname>melton</surname> </author> </book> ');

Per accedere/modificare i nodi si usano Extractvalue / UpdateXML: mysql> select UpdateXML(doc,'/book/author/initial','!!') from x; +----------------------------------------------------------+ UpdateXML(doc,'/book/author/initial','!!') +----------------------------------------------------------+ mysql> SELECT EXTRACTVALUE(doc,'/*/*/initial') FROM x; +----------------------------------+ EXTRACTVALUE(doc,'/*/*/initial') +----------------------------------+ CJ J +----------------------------------+ 2 rows in set (0.01 sec) <book> <title>a guide to the SQL standard</title> <author>!! <surname>date</surname> </author> </book> <book> <title>sql:1999</title> mysql> SELECT extractvalue(doc,'/book/child::*') FROM x; +---------------------------------------------+ extractvalue(doc,'/book/child::*') +---------------------------------------------+ A guide to the SQL standard SQL:1999 +---------------------------------------------+ 2 rows in set (0.00 sec) <author>!! <surname>melton</surname> </author> </book> +----------------------------------------------------------+ 2 rows in set (0.00 sec)

Collezioni An XML collection is a set of relational tables that contain data that is mapped to L alternativa alla memorizzazione in una colonna è la rimappatura di un documento XML in tabelle di un DB relazionale, ed è bene usarla se: i dati si aggiornano frequentemente si vogliono salvare i dati si vogliono comporre documenti XML a partire dalla tabelle documents. The access and storage method allows you to compose an XML doc from existing data, to decompose an XML document and to use XML as an interc method. DAD is used to define the mapping of DTD to relational tables and colum use XSLT and XPath syntax for specifying the transformation and the location pa tags in an XML column, tags in an XML collection are not stored in the column of tables. Stored procedures are provided for storing, retrieving, updating, searching deleting data in an XML collection. XML document Text extender DB2 Table 2 Content Table 1 TXhandle XML collection Table 2 Price Table n Figure 2. Overview of an XML document stored as an XML collection. Date

In DB2 si deve definire un Document Access Definition (DAD) file che specifica come rimappare attributi ed elementi sulle tabelle il processo è anche automatizzabile:

In DB2 si deve definire un Document Access Definition (DAD) file che specifica come rimappare attributi ed elementi sulle tabelle il processo è anche automatizzabile:

In DB2 si deve definire un Document Access Definition (DAD) file che specifica come rimappare attributi ed elementi sulle tabelle il processo è anche automatizzabile:

In DB2 si deve definire un Document Access Definition (DAD) file che specifica come rimappare attributi ed elementi sulle tabelle il processo è anche automatizzabile:

DB XML nativi Definiscono il documento XML come unità (logica) fondamentale di memorizzazione, come i DB relazionali usano una tupla Non definiscono necessariamente nessun modello di storage fisico

DB XML nativi: text based Conservano l XML come testo, per es. sotto forma di: BLOB/CLOB file system formato proprietario usano indici specifici per raggiungere le varie parti del XML

DB XML nativi: PDOMs I DB basati su persistent DOM implementano il DOM su uno storage persistente: il DOM è live, per cui i cambiamenti si riflettono nel DB, a differenza di altri approcci in cui il DOM modificato deve essere esplicitamente aggiornato nello storage hanno il ruolo dei OODBMS per i linguaggi ad oggetti...

DB XML nativi: model-based si memorizza il modello del documento in uno DB relazionale o ad oggetti la performance, specie nel retrieval, dipende dal DB sottostante non sono molti, vedi: XML Database Products http://www.rpbourret.com/xml/xmldatabaseprods.htm

DB2 e Oracle hanno funzioni per la gestione di XML nativo, in aggiunta alle funzioni di rimappatura viste prima in generale i DB XML non sono ancora particolarmente maturi un problema è lo standard XQuery che non consente l update (in pratica è solo l equivalente di SELECT); XQuery Update è attualmente working draft

Object-Relational DB Sono DB che uniscono le caratteristiche dei DB relazionali con quelli ad oggetti. PostgreSQL è un DB object-relational si sfrutta le funzioni object oriented per definire tipi di dati ed operazioni

Per es. si può rappresentare un histo di colore come un vettore CREATE TABLE image ( name larghezza varchar(30), integer, ); altezza integer, vettore float[] L operazione di comparazione tra histo (per trovare immagini simili) può essere scritta come funzione C/ C++ richiamabile da SQL, o anche in PL/pgSQL CREATE FUNCTION name( ) RETURNS AS Corpo della funzione o LANGUAGE ; nome assoluto della libreria dinamica. Linguaggio utilizzato (SQL, C, ) Tipo di ritorno Tipi dei parametri passati alla Funzione, separati da virgola

/* Calcola la distanza fra due immagini espresse tramite i loro istogrammi * di colore. */ float64 distance(arraytype *record, ArrayType *query) { int i, j, h,v; float64 ret, appo; /* Valore di ritorno e di appoggio. */ float64 diff, start_diff; /* Differenza fra i vettori. */ float64 temp, start_temp; /* Vettore di appoggio. */ Si deve tenere conto che PL/ pgsql non è molto indicato per lavorare su matrici e vettori tipicamente usati per rappresentare dati multimediali meglio usare C/C++ la funzione può essere usata nelle SELECT } /* Numero di elementi degli array passati. */ int4 nitems_record = (int4) getnitems(arr_ndim(record), ARR_DIMS(record)); int4 nitems_query = (int4) getnitems(arr_ndim(query), ARR_DIMS(query)); /* Restituisce il puntatore all'area dati di ArrayType e li casta a float64. */ float64 data_record = (float64) ARR_DATA_PTR(record); float64 data_query = (float64) ARR_DATA_PTR(query); /* Alloco un float64 per il valore di ritorno e un di appoggio. */ ret = (float64) palloc(sizeof(float64data)); appo = (float64) palloc(sizeof(float64data)); /* Alloco un float64 per la differenza fra i due vettori. */ diff = (float64) palloc(sizeof(float64data)*num_color); start_diff = diff; /* Salvo il punto iniziale. */ /* Alloco un float64 per il vettore di appoggio. */ temp = (float64) palloc(sizeof(float64data)*num_color); start_temp = temp; /* Salvo il punto iniziale. */ /* Faccio alcuni controlli. */ if ((nitems_record!=totelementi) (nitems_query!=totelementi)) { return NULL; } *ret = 0; for (v=0 ; v<vlength ; v++) { for (h=0 ; h<hlength ; h++) { } } return ret; /* Ripristino i puntatori */ diff = start_diff; temp = start_temp; /* Calcolo la differenza fra i due vettori. */... *ret += sqrt(*appo)*pesi[v][h];

Oracle intermedia è una estensione objectrelational specializzata per il multimedia supporta lo StillImage standard di SQL/MM crea signature basate su colore, texture, forma per immagini

Object-relational mapping è una tecnica di programmazione per convertire dati tra sistemi di tipi incompatibili come linguaggi object-oriented a database in pratica si crea un database a oggetti virtuale il problema è riuscire a convertire in modo trasparente gli oggetti in un formato accettabile per il DB, ma conservando tutte le relazioni e le proprietà

Hibernate è uno dei più famosi ORM per Java Hibernate si pone tra il modello ad oggetti che si ricava dalla logica della nostra applicazione e l insieme delle tabelle, chiavi primarie e vincoli relazionali. Uno o più file di configurazione stabiliscono la corrispondenza tra gli oggetti della nostra applicazione e le tabelle del db.!"#$%&'&&(")

Hibernate: classi persistenti Si deve seguire un modello di programmazione Plain Old Java Objects (POJO) public class Cat { private String id; private String name; private char sex; private float weight; public Cat() { } public String getid() { return id; } private void setid(string id) { this.id = id; } public String getname() { return name; } public void setname(string name) { this.name = name; } public char getsex() { return sex; } public void setsex(char sex) { this.sex = sex; } public float getweight() { return weight; } public void setweight(float weight) { this.weight = weight; } }

Hibernate: mapping Si definisce in un file XML il mappaggio tra classe e relazioni Hibernate può anche genereare l SQL necessario per la creazione della tabella <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="net.sf.hibernate.examples.quickstart.cat" table="cat"> <!-- A 32 hex character is our surrogate key. It's automatically generated by Hibernate with the UUID pattern. --> <id name="id" type="string" unsaved-value="null" > <column name="cat_id" sql-type="char(32)" not-null="true"/> <generator class="uuid.hex"/> </id> <!-- A cat has to have a name, but it shouldn' be too long. --> <property name="name"> <column name="name" length="16" not-null="true"/> </property> <property name="sex"/> <property name="weight"/> </class> </hibernate-mapping>

Persistenza RDF Jena è una libreria per parsing, serializzazione e processamento di modelli RDF offre anche persistenza su diversi tipi di DB relazionali Jena supporta anche il linguagio di query RDF SPARQL

// load the the driver class Class.forName(M_DBDRIVER_CLASS); // create a database connection IDBConnection conn = new DBConnection(M_DB_URL, M_DB_USER, M_DB_PASSWD, M_DB); // create a model maker with the given connection parameters ModelMaker maker = ModelFactory.createModelRDBMaker(conn); // create a default model Model defmodel = maker.createdefaultmodel();... // Open existing default model Model defmodel = maker.openmodel(); // or create a named model Model nmmodel = maker.createmodel("mynamedmodel");... // or open a previously created named model Model prvmodel = maker.openmodel("anexistingmodel");

SPARQL PREFIX abc: <http://mynamespace.com/exampleontologie#> SELECT?capital?country WHERE {?x abc:cityname?capital.?y abc:countryname?country.?x abc:iscapitalof?y.?y abc:isincontinent abc:africa. }

Compiti Leggere Multimedia Database Systems: where are we now?, H. Kosch, M. Doller, IASTED-DBA Conference, Feb. 2005 http://www-itec.uni-klu.ac.at/~harald/

Riferimenti A DB2 UDB still image extender IBM DeveloperWorks http://www.ibm.com/developerworks Jena2 Database Interface http://jena.sourceforge.net/db/ Oracle InterMedia http://www.oracle.com/technology/documentation/intermedia.html The GiST indexing project http://gist.cs.berkeley.edu/