UNIVERSITÀ DEGLI STUDI DI CATANIA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Scienze dell’Informazione Indici gerarchizzati.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

DB - Modello relazionale dei dati
DBMS (DataBase Management System)
Estendere i linguaggi: i tipi di dato astratti
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
PHP.
Universita di Camerino
Query OQL e XQUERY a confronto
Re-engineering del wrapper XML Schema per il sistema MOMIS
Università degli Studi di Modena e Reggio Emilia
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica MOMIS: servizi di wrapping.
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e realizzazione.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea in Ingegneria Informatica Integrazione di WordNet Domains.
Biglietti e Ritardi: schema E/R
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
4 – Progettazione – Introduzione e Modello E-R
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Alberi binari di ricerca
Esercizi su alberi binari
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Università degli Studi di Cagliari
Algoritmi e Strutture Dati Alberi Binari di Ricerca.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Basi di dati Università Degli Studi Parthenope di Napoli
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Esercizi su alberi binari
Algoritmo di Query Optimization
Cristian Colli Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Corso di Laurea in Ingegneria Informatica Anno Accademico 2001/2002.
Daniel Stoilov Tesi di Laurea
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dellInformazione Applicazione.
Esercizio 1 Convertire il seguente DTD (esercizio 1 sui DTD) in XML Schema:
DBMS ( Database Management System)
Basi di dati Claudia Raibulet
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Programmazione ad oggetti per la simulazione numerica di strutture su grande scala dellUniverso di Daniele Giunchi Relatore: Prof. Antonio Messina.
INFORMATICA Corso Base Modulo G: I DataBase  Access.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
MODELLO LOGICO DEI DATI
Prof. Cerulli – Dott.ssa Gentili
Towards Robust Indexing for Ranked Queries aa 09/10 Candeloro D. Orlando M. Pedone A. Gruppo 5.
Algoritmi e Strutture Dati
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
SQL.
OBIETTIVI: Introduzione ai driver ODBC Creazione di alcune tabelle del database Creazione query Creazione report Lezione del 13/11/2009 Bray Francesco.
EIPASS MODULO 5 Access 2007.
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
DB- Sistemi Informativi
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
IV D Mercurio DB Lezione 1
Modulo 5 DataBase ACCESS. Informazioni e Dati INFORMAZIONI vengono scambiate con linguaggio scritto o parlato DATI rappresentazione di informazioni in.
I DATABASE.
Microsoft Access Maschere (II).
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
PROGETTO E REALIZZAZIONE DI UN COMPONENTE SOFTWARE PROGRAMMABILE PER LA PIANIFICAZIONE DI COMMISSIONI DI LAUREA FACOLTA’ DI INGEGNERIA Corso di Laurea.
Algoritmi euristici per l’ottimizzazione dell’offerta nella raccolta di rifiuti Tesi di laurea di Nicola Bindini Relatore: Chiar.mo Prof. Ing. DANIELE.
Capitolo 10 Tecniche algoritmiche Algoritmi e Strutture Dati.
Progettazione Logica Il prodotto della progettazione logica è uno schema logico che rappresenta le informazioni contenute nello schema E-R in modo corretto.
B IBLIO S ERVICE consultazione di articoli online Anna Riccioni Progetto per il corso di Reti di Calcolatori L-S Anno Accademico
Per un nuovo orientamento nella progettazione dei linguaggi di programmazione Tesi di Laurea di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà.
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
Cloud informatica V anno.
Università degli studi di Modena e Reggio Emilia Facoltà di Scienze Fisiche, Informatiche e Matematiche Corso di Laurea in Informatica Progettazione e.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Programmazione Fondi Strutturali 2007/2013 Programma Operativo Nazionale: “Competenze per lo Sviluppo” finanziato con il Fondo Sociale Europeo Piano Integrato.
BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Fabio Rinnone Matricola 667/ Università di Catania Facoltà di SS. MM. FF. NN. Dipartimento di Matematica e Informatica Corso di Laurea di Primo Livello.
Transcript della presentazione:

UNIVERSITÀ DEGLI STUDI DI CATANIA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Scienze dell’Informazione Indici gerarchizzati per interrogazioni approssimate a database relazionali Fabio Longo Relatore: Ch.mo Prof. A. Ferro Correlatore: Dott.ssa R. Giugno Anno Accademico Tesi di laurea

OBIETTIVI Creazione di un Web Server mSQL. Estensione dell’mSQL 2.0 con funzioni atte all’utilizzo completo di tali indici. Nuovo paradigma d’indicizzazione. - Ricerche approssimate - gerarchizzazione degli elementi coinvolti nella ricerca

RICERCA APPROSSIMATA ………………... Funzione d(o i,o j ) con i, j  {1,2, …n} tale che renda (O,d) uno spazio metrico d(o x,o n ) d(o x,o 2 ) d(o x,o 3 ) d(o x,o 1 ) Problema: calcolare gli o k tali che d(o x,o k )  t con t>0 k  {1,2,3, …n}

MODELLI DI RICERCA APPROSSIMATA GIA’ STUDIATI Modelli statici: FQ-tree (Fixed Query Tree) VP-tree (Vantage Point Tree) MVP-tree (Multiple Vantage Point Tree) Modelli dinamici: M-tree (Metric Tree) Indici gerarchizzati

METODO DI K.OFLAZER Notazione Vertex List Sequence: set di liste di vertici indicanti i singoli cammini dalla radice ad ognuna delle foglie dell’albero.

METODO DI K.OFLAZER Sia Z=Z 1, …,Z p una generica vertex list sequence. Z[j] denota l’iniziale sottosequenza di j liste di vertici inclusa quella di posto j dist(X[i],Y[j]) = j * S Se i=0 i * S Se j=0 min(dist(X[i-1],Y[j-1]+C,dist(X[i-1],Y[j]+S, dist(X[i],Y[j-1]+S) Se X i e Y j differiscono solo per l’etichetta del nodo. min(dist(X[i-1],Y[j]),dist(X[i],Y[j-1]))+S Altrimenti Dove C = costo in caso di differenti etichette S = costo in caso di differenti strutture

METODO DI K.OFLAZER Sforzo computazionale stimato per la ricerca di quei VLS che non distano da un altro VLS-query oltre un certa soglia t: O(L 2 logLk 1/ceiling(t/S) ) Dove L = numero di foglie in ogni albero k = numero degli alberi nella foresta t = tolleranza S = costo dell’aggiunta o cancellazione della foglia in un certo albero.

FORMALIZZAZIONE TEORICA DEL PROBLEMA R i :{T i } i=1, …,n schema relazionale R i (A 1 :T 1, A 2 :T 2, …, A m :T m ) schema di relazione Vincoli d’integrità: Y insieme di attributi NOT NULL X insieme di attributi tale da essere una chiave primaria per R i :{T i } i=1, …,n. Vertex List Sequence formato da attributi di R i :{T i } i=1, …,n T = Natural join tra gli schemi di relazione fra i quali attributi ne figura almeno uno di Y.

FORMALIZZAZIONE TEORICA DEL PROBLEMA  n-upla di una istanza di T si crei un VLS. Si immergano tutti i VLS generati in una struttura di tipo Trie. Applicazione del metodo di Oflazer per ricavare tutti i VLS del Trie che distano da un dato VLS-query in input non oltre una soglia t.

ESEMPIO: una semplice istanza. Natural join: T[XY] X chiave primaria Y={A 1, A 2, A 3 } VLS=( (A 1,A 2 ) (A 1,A 3 ) ) dove A 1, A 2, A 3  R i per certi i  {1,2,…,n}

ESEMPIO: una semplice istanza. Creazione del VLS-query fissando i parametri: a x  {a 1, a 2, a 3, … } b x  {b 1, b 2, b 3, …} c x  {c 1, c 2, c 3, … }

API per l’estensione dell’mSQL 2.0 (C ansi) Creazione del Trie createTrie() int createTrie ( sock, key, treeIndex) int sock ; char * key ; char * treeIndex Uso: costruisce il Trie relativo al database associato al proprio descrittore di socket sock, a partire dal VLS dato dalla stringa treeIndex, in cui tutti gli attributi ivi contenuti avranno la forma: “tabella.attributo”. Esecuzione della Ricerca Approssimata trieSelect() m_result * trieSelect ( query_tree, t, c, s) char * query_tree ; int t ; int c ; int s ; Uso: Calcola i VLS del trie creato da createTrie(), la cui distanza dall’VLS query_tree non eccede il valore della tolleranza t, e che tiene conto dei parametri c ed s. Cardinalità dell’output trieNumRows() int trieNumRows ( result ) m_result * result ; Uso: restituisce il numero delle righe coinvolte negli esiti di una ricerca approssimata, in base all’handle result di una precedente chiamata di trieSelect(). Fetch delle righe trieFetchRow() m_row * trieFetchRow ( result ) m_result * result ; Uso: serve per accedere ai singoli campi di una riga, in base all’handle result di una precedente chiamata di trieSelect().

COSTRUZIONE DI UN INDICE GERARCHIZZATO IDEA: Scegliere l’altezza dell’albero. Determinare quali dovranno essere gli attributi che andranno ad occupare ognuno dei livelli dell’albero. Determinare le parentele tra nodi di livelli differenti rispettando i vincoli gerarchici definiti.

VINCOLI GERARCHICI Definizione: Utilità: particolari restrizioni ai quali un albero è soggetto al momento di decidere, per un qualsiasi livello, chi dovrà essere il padre di un nuovo nodo tra quelli del livello soprastante. fornire un criterio coerente, di cui un algoritmo non interattivo possa servirsi, per costruire il VLS che costituirà l’indice gerarchizzato.

VINCOLI GERARCHICI Un vincolo gerarchico può essere espresso come una funzione discreta F tale che, su un attributo a: - F(a)=b Se b nella gerarchia definibile dev’essere necessariamente padre di a. - F(a)=NULL Altrimenti

APPLICAZIONE: gestione di un database di alberghi Scopo del progetto: Creazione di un sito Web nel quale un utente abbia la possibilità di scegliere un albergo in un database, definendo le sue caratteristiche preferenziali ed il loro grado d’importanza. Permettere all’utente di scegliere quale indice gerarchizzato utilizzare per la ricerca (visualizzato in forma opportuna e comprensibile), o di crearne uno nuovo secondo le sue preferenze attraverso una semplice interfaccia.

Espressivita’delle ricerche approssimate Possibilita’di definire: Citta’ e quartiere dell’albergo Presenza di strutture aggiuntive quali: piscina, shop store, campo da tennis, etc. Caratteristiche delle stanze singole, doppie e delle suite, quali: prezzo, vista, etc. Caratteristiche di eventuali strutture annesse all’albergo, quali: ristoranti, sale congressi, etc.

Esempio computazionale di ricerca approssimata

CONCLUSIONI Risultati: soddisfacenti Applicazione server testata su: - Pentium 133Mhz, 16 Mb RAM, linux nella sua distribuzione REDHAT AMD K6 333Mhz, 64 MB RAM, linux nella sua distribuzione Mandrake 5.3

CONCLUSIONI Algoritmo di creazione indici assenza di significativi limiti per quel che riguarda: l’altezza dell’albero Il numero di attributi coinvolti nella ricerca approssimata I vincoli gerarchici ai quali l’indice possa essere soggetto FINE