1 / 23

Indici gerarchizzati per interrogazioni approssimate a database relazionali

Fabio Longo. 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. Tesi di laurea. Relatore: Ch.mo Prof. A. Ferro

gary-norris
Download Presentation

Indici gerarchizzati per interrogazioni approssimate a database relazionali

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. Fabio Longo UNIVERSITÀ DEGLI STUDI DI CATANIAFACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALICorso di Laurea in Scienze dell’Informazione Indici gerarchizzati per interrogazioni approssimate a database relazionali Tesi di laurea Relatore: Ch.mo Prof. A. Ferro Correlatore: Dott.ssa R. Giugno Anno Accademico 1999-2000

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

  3. RICERCA APPROSSIMATA d(ox,o1) d(ox,on) d(ox,o3) d(ox,o2) ………………... Funzione d(oi,oj) con i, j {1,2, …n} tale che renda (O,d) uno spazio metrico Problema: calcolare gli ok tali che d(ox,ok)t con t>0 k{1,2,3, …n}

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

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

  6. METODO DI K.OFLAZER Sia Z=Z1, …,Zp una generica vertex list sequence. Z[j] denota l’iniziale sottosequenza di j liste di vertici inclusa quella di posto 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 Xi e Yj differiscono solo per l’etichetta del nodo. min(dist(X[i-1],Y[j]),dist(X[i],Y[j-1]))+S Altrimenti dist(X[i],Y[j]) = Dove C = costo in caso di differenti etichette S = costo in caso di differenti strutture

  7. 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(L2logLk1/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.

  8. FORMALIZZAZIONE TEORICA DEL PROBLEMA Ri:{Ti} i=1, …,n schema relazionale Ri(A1:T1, A2:T2, …, Am:Tm) schema di relazione Vincoli d’integrità: • Y insieme di attributi NOT NULL • X insieme di attributi tale da essere una chiave primaria per Ri:{Ti} i=1, …,n. Vertex List Sequence formato da attributi di Ri:{Ti} i=1, …,n T = Natural join tra gli schemi di relazione fra i quali attributi ne figura almeno uno di Y.

  9. 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. • Applicazionedel metodo di Oflazer per ricavare tutti i VLS del • Trie che distanoda un dato VLS-query in input non oltre una • soglia t.

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

  11. ESEMPIO: una semplice istanza. • Creazione del VLS-query fissando i parametri: • ax{a1, a2, a3, … } • bx{b1, b2, b3, …} • cx{c1, c2, c3, … }

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

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

  14. VINCOLI GERARCHICI Definizione: 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. Utilità: fornire un criterio coerente, di cui un algoritmo non interattivo possa servirsi, per costruire il VLS che costituirà l’indice gerarchizzato.

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

  16. 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 lesue preferenze attraverso una semplice interfaccia.

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

  18. Esempio computazionale di ricerca approssimata

  19. Esempio computazionale di ricerca approssimata

  20. Esempio computazionale di ricerca approssimata

  21. Esempio computazionale di ricerca approssimata

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

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

More Related