QuOnto: Driver per SQLite e Derby e test su database di dimensione crescente A cura di: Francesco Menniti.

Slides:



Advertisements
Presentazioni simili
LA CERTIFICAZIONE ENERGETICA IN LIGURIA
Advertisements

XmlBlackBox La presentazione Alexander Crea 11 Aprile 2010 La presentazione Alexander Crea 11 Aprile 2010.
Accesso ai dati su Relational Database Management Systems LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento.
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Database MySql.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Nana Mbinkeu Rodrigue Carlos 1 DB unimo OTTIMIZZAZIONE DI QUERY IN MOMIS Università degli studi di Modena e Reggio Emilia Relatore: Prof. Sonia.
Progetto e realizzazione di un wrapper XML Schema per il sistema MOMIS
Obiettivo della tesi Percorso
Il sistema MOMIS Il progetto MOMIS (Mediator EnvirOnment for Multiple Information Sources) consiste nella realizzazione di un sistema intelligente di.
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.
Biglietti: schema E/R.
1 Biglietti: schema E/R. 2 Biglietti: albero degli attributi.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Basi di Dati prof. A. Longheu
4 – Progettazione – Introduzione e Modello E-R
XmlBlackBox La presentazione Alexander Crea 7 Giugno 2010 La presentazione Alexander Crea 7 Giugno 2010.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
MODALITÀ DI ACQUISIZIONE DEL SOFTWARE APPLICATIVO Paolo Atzeni Dipartimento di Informatica e Automazione Università Roma Tre 03/12/2008 (materiale da:
BPR: BUSINESS PROCESS REENGINEERING
SQL: Lezione 7 Nataliya Rassadko
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
architettura dei sistemi informatici
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Progettazione di una base di dati
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
Daniel Stoilov Tesi di Laurea
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
A.Natali DL Maggio1999 Oggetti Concetti fondamentali.
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Struttura dell’applicazione
Moodle International Conference Roma -21/22 ottobre Moodle come strumento per il Combat Teaching Tommasi Marco Università degli Studi di Udine.
DAGLI ARCHIVI AI DATABASE
Corso di Laurea in Informatica
Scienza Industria Tecnologia S.I.T. srl Novembre 2008
MODELLO LOGICO DEI DATI
USR Sardegna - Maggio Linee guida per i percorsi di Alternanza scuola lavoro Legge 53/03, art. 4 Decreto Legislativo 15 aprile 2005, n. 77 Legge.
Realizzato da Roberto Savino
Gerarchie Ricorsive Una gerarchia ricorsiva deriva dalla presenza di una ricorsione o ciclo (un anello nel caso più semplice) nello schema operazionale.
Anno accademico 2007/20081 Università degli studi di Roma Tre Progettazione e Realizzazione di un Ambiente per la Configurazione Avanzata di Reti Virtuali.
Anno accademico 2007/20081 Università degli studi di Roma Tre Progettazione e Realizzazione di un Ambiente per la Configurazione Avanzata di Reti Virtuali.
Anno accademico 2007/20081 Università degli studi di Roma Tre Progettazione e Realizzazione di un Ambiente per la Configurazione Avanzata di Reti Virtuali.
Presentazione best practices Tribunale Ordinario di Campobasso Potenziamento dei sistemi di comunicazione finalizzati a far crescere la customer satisfaction.
MP Lanno si accinge al capolinea e noi, fedeli alle nostre tradizioni, cercheremo di ricordare i fatti salienti che hanno dato colore a questo spumeggiante.
OBIETTIVI: Introduzione ai driver ODBC Creazione di alcune tabelle del database Creazione query Creazione report Lezione del 13/11/2009 Bray Francesco.
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Corso Di Programmazione Grafica aa 2007/2008
Antialiasing parzialmente tratto da: Han-Wei Shen Daniele Marini Corso Di Programmazione Grafica aa2007/2008.
Architettura di OGL e pipe-line Daniele Marini Corso Di Programmazione Grafica.
Display list e picking Daniele Marini Corso Di Programmazione Grafica e Laboratorio.
Corso di Programmazione Grafica e Laboratorio Prof. Daniele Marini.
Controllare le proiezioni Daniele Marini Corso Di Programmazione Grafica aa 2007/2008.
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
I DATABASE.
DAL WEB AL SEMANTIC WEB Aspetti teorici e tecnologici Carmagnola Francesca Dipartimento Informatica C.so Svizzera 185, Torino
Anno accademico 2007/20081 Università degli studi di Roma Tre Progettazione e Realizzazione di un Ambiente per la Configurazione Avanzata di Reti Virtuali.
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Progettazione di basi di dati: metodologie e modelli
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Transcript della presentazione:

QuOnto: Driver per SQLite e Derby e test su database di dimensione crescente A cura di: Francesco Menniti

Obiettivi Tesina Realizzare driver di QuOnto (“Querying Ontologies” ): Driver per Derby Driver per SQLite Realizzare guide all’uso dei DBMS usati: Guida all’uso di Derby Guida all’uso di SQLite Testare i driver Confronti tra i risultati 07/07/2008

Descrizione Derby e SQLite Derby è un motore Open Source Database Technology parte dell’ Apache DB Project SQLite è una libreria C che implementa un DBMS SQL incorporabile all'interno di applicazioni. 07/07/2008

Derby: obiettivi, caratteristiche, compatibilità e note I principali obiettivi di Derby sono: Conformità agli standard SQL! Portabilità (JAVA) ! Scritto interamente in Java e Open-Source Fornisce supporto JDBC (Java Batabase Connectivity) Può funzionare come DB embedded Deadlock detection, crash recovery, backup and restore ability, Multi-user, transactions API 07/07/2008

SQLite: obiettivi, caratteristiche, compatibilità e note Gli obiettivi di SQLite sono: Semplicità e leggerezza ! Efficienza su piccoli DB Portabilità (ANSI-C) Supporto mediante binding e wrapper E’ una libreria scritta in C ed è Open-Source Fornisce supporto JDBC (Java Batabase Connectivity) Può funzionare come DB embedded Non completa conformità allo standard SQL View di sola lettura, non si possono fare insert, delete, update Le FOREIGN KEYS sono riconosciute ma non implementate 07/07/2008

Strumenti ed interfacce Sia per Derby che per SQLite esistono interfacce che permettono di usare tali DB Derby: (ad es.) SQuirreLSQL Client Aqua Data Studio SQLite: (ad es.) SharpPlus Sqlite Developer Liteman SQLite3 (interfaccia a riga di camando) 07/07/2008

Valutazioni finali Derby: SQLite Completa compatibilità con lo standard SQL Possibilità di creare un driver per QuOnto SQLite Incompleta compatibilità con SQL 07/07/2008

Implementazione Esempi di alcune differenze implementative tra Derby e SQLite: Derby: comando per rimuovere una vista è "DROP VIEW + nomeVista“ Nella UNION il DISTINCT è di default SQLite: il comando per rimuovere una vista è "DROP VIEW IF EXIST + nomeVista“ Nella UNION il DISTINCT non è di default 07/07/2008

Implementazione …continua Esempi di alcune somiglianze implementative tra Derby e SQLite: Sia in Derby sia in SQLite l’operatore di concatenazione è “||” (String createFunctorConcatStatment(String,String[])) Sia in Derby sia in SQLite il comando per creare una vista è "CREATE VIEW " + name + " AS " + body 07/07/2008

Come avviene il test Stesso computer nelle stesse condizioni per i test Aboxes di dimensioni differenti (sia per SQLite che per Derby): 1, 5, 10, 30 università Realizzate off-line da un tool scritto in Java a partire dalle Aboxes della LUBM Output del test EXPANSION TIME EVALUATION TIME TOTAL TIME (tempi rappresentati nei grafici) NUMERO DI CQs DENTRO LA UCQ ESPANSA Numero di answers delle query 07/07/2008

Query usate nei test Per descrivere le query sono stati utilizzati i seguenti fattori: Grandezza input: misura la porzione delle istanze delle classi coinvolte nella query sul totale delle istanze delle classi (grande se input > 5%) Selettività: misura come la porzione stimata delle istanze delle classi coinvolte nella query soddisfano i criteri di selezione della query (alta se la porzione < 10%) Complessità: il numero di classi e di proprietà coinvolte nella query determina la complessità della stessa Assunzione di gerarchia: considera se informazioni provenienti da una gerarchia di classi o da una gerarchia di proprietà sono richieste per raggiungere la risposta completa (ampia se la profondità della gerarchia > 3) Assunzione di inferenza logica: considera se l’inferenza logica è richiesta per raggiungere la completezza della risposta 07/07/2008

Query usate nei test (cont.) 1. {x | GraduateStudent(x) AND takesCourse(x,”Dep0.Univ0/GraduateCourse0”)} (query con grande input, alta selettività, tale query riguarda una classe e una proprietà, non assume nessuna informazione gerarchica) 2. {x,y,z | GraduateStudent(x) AND University(y) AND Department(z) AND subOrganizationOf(z,y) AND memberOf(x,z) AND undergraduateDegreeFrom(x,y)} (query con pattern triangolare, riguarda 3 classi e tre proprietà, quindi molti join) 5. {x | Person(x) AND memberOf(x,”Dep0.Univ0”)} (Person e memberOf hanno una gerarchia molto ampia) 6. {x | Student(x)} (query con grande quantità in input, e una discreta gerarchia determinata da Student, tale query è relativa ad una sola classe; assume sia la SubClassOf esplicita della relazioni tra UndergraduateStudent e Student e quella implicita tra GraduateStudent e Student ) 07/07/2008

Query usate nei test (cont.) 7. {x,y | Student(x) AND Course(y) AND takesCourse(x,y) AND teacherOf(“Dep0.Univ0/AssociateProfessor0”,y)} (query simile alla precedente ma con selettività più alta, infatti è relativa a 2 classi e ad una proprietà) 8. {x,y,z | Student(x) AND Department(y) AND memberOf(x,y) AND subOrganizationOf(y,”Univ0”) AND emailAddress(x,z)} (query ancora più complessa della 7 con aggiunta di un’altra proprietà) 13. {x | Person(x) AND hasAlumnus(“Univ0”,x)} (query di verifica per relazioni inverse) 14. {x | UndergraduateStudent(x)} (è la query più semplice: grande quantità in input, bassa selettività, assenza di gerarchia, assenza di inferenza) 07/07/2008

Test SQLite 07/07/2008

Test Derby 07/07/2008

Esempio 1: query 4 {x,y1,y2,y3 | Professor(x) AND worksFor(x,”Dep0.Univ0”) AND name(x,y1) AND emailAddress(x,y2) AND telephone(x,y3)} (query con 3 attributi di concetto che interroga su proprietà multiple di una singola classe, ampia gerarchia per Professor, piccolo input e alta selettività) 07/07/2008

Esempio 2: query 7 {x,y | Student(x) AND Course(y) AND takesCourse(x,y) AND teacherOf(“Dep0.Univ0/AssociateProfessor0”,y)} (query con selettività alta, infatti è relativa a 2 classi e ad una proprietà) 07/07/2008

Esempio 3: query 12 {x,y | Chair(x) AND Department(y) AND worksFor(x,y) AND subOrganizationOf(y,”Univ0”)} (tale query richiede di inferire che professore è una istanza della classe Chair perché lui o lei sono a capo del dipartimento; query con piccolo input) 07/07/2008

Esempio 4: query 14 {x | UndergraduateStudent(x)} (è la query più semplice: grande quantità in input, bassa selettività, assenza di gerarchia, assenza di inferenza) 07/07/2008

Conclusioni Derby: SQLite: Si comporta molto meglio di SQLite per Aboxes di grandi dimensioni In via generale all’aumentare della dimensione della Abox i tempi di answering aumentano in modo pressoché lineare o quasi Estrema lentezza nel fare answering sulle query con grandi quantità di dati in ingresso e dove ci sono molti elementi da restituire Più veloce in query dove bisogna effettuare inferenza logica SQLite: si comporta meglio di Derby per Aboxes di dimensioni ridotte Limite: massimo numero di termini che possono essere messi in UNION, UNION ALL, EXCEPT, oppure INTERSECT è determinato da un parametro fisso e tale parametro di default è settato a 500 Su query con più di qualche attributo di concetto SQLite risulta più veloce rispetto a Derby indipendentemente dalla dimensione della Abox considerata Su query dove bisogna fare inferenza logica SQLite risulta più lento, perché non adotta ottimizzazioni particolari 07/07/2008