Daniel Stoilov Tesi di Laurea

Slides:



Advertisements
Presentazioni simili
Approximate Sequence Matching: Implementazione e Analisi Prestazionale
Advertisements

Come si fa a visualizzare una query? Attivato lelenco delle query, si fa doppio clic sullopzione Attivato lelenco delle query, si fa doppio clic sullopzione.
“Niente di Nuovo” Mercatino dell’Usato
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DBMS (DataBase Management System)
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
PHP.
Connessione con MySQL.
Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica – Nuovo Ordinamento Relatore:
DATAWAREHOUSE - Microstrategy
Esercitazione 5 MySQL Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Access: Query semplici
Corso di Laurea in Ingegneria per lAmbiente e il Territorio Informatica per lAmbiente e il Territorio Docente: Giandomenico Spezzano Tutor: Alfredo Cuzzocrea.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dellInformazione Applicazione.
Università degli studi di Modena e Reggio Emilia Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica Progetto e sviluppo.
DBMS ( Database Management System)
Basi di dati Claudia Raibulet
ARGONEXT Accesso Docente
SEZIONE STUDENTE HOMEPAGE STUDENTE Lo studente ha la sola facoltà di registrarsi e fare il test. Inizierà il suo lavoro cliccando su REGISTRATI (figura.
ACCESS Introduzione Una delle necessità più importanti in informatica è la gestione di grandi quantità di dati. I dati possono essere memorizzati.
Lezione 17 Riccardo Sama' Copyright Riccardo Sama' Access.
dell’Istituto G.Marconi
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
Introduzione alla programmazione web
EIPASS MODULO 5 Access 2007.
Macro 1 Una macro è un elenco denominato di istruzioni. Ciascuna istruzione viene chiamata ‘azione’. Le azioni vengono eseguite in modo sequenziale e,
Lavorare con le query Federica Scarrione 18/05/2009 fonte:
Informatica Parte applicativa Basi di dati - report Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Modulo 5 Modulo 5 Inizia Basi di dati Basi di dati Access Access Esci.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Interrogare il database
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
Università degli Studi di Modena e Reggio Emilia Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione Progetto.
Microsoft Access Query (II), filtri.
Introduzione P. Gallo - rielaborazione del prof. Roberto SPEDICATO
Percorso didattico per l’apprendimento di Microsoft Access Modulo 2
1 Macro 1 Una macro è un elenco denominato di istruzioni. Ciascuna istruzione viene chiamata ‘azione’. Le azioni vengono eseguite in modo sequenziale e,
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
1 Sistemi Informativi e Servizi in Rete Università degli Studi di Brescia Facoltà di Ingegneria Parsing di documenti XML Esercizi.
Le query in SQL Unità didattica sviluppata per l’ITIS “A. Volta” – Classe 5 sez. I Ing Domenico Liguori - Università degli studi di Napoli “Federico.
Pagine ASP parte 3 I data base Stefano Schacherl.
Laboratorio 4: PHP e MySQL
Microsoft Access Maschere (II).
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Microsoft Access Query (III).
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;
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 1.
Esercizio ODBC. Configurare il driver ODBC Start  Control Panel  Administrative Tools Aprire: Data Source(ODBC) User DSN  Add…. Selezionare il driver.
Esercitazione no. 4 EXCEL II Laboratorio di Informatica AA 2009/2010.
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Modulo 5 Uso delle Basi di dati Paola Pupilli
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Microsoft Access (parte 3) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Manuale Utente – i-Sisen Questionario dei Consumi
Manuale Utente – i-Sisen Questionario del Gas Naturale
Eprogram 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.
Approfondimenti SQL.
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
Microsoft Access (parte 4) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
0 Laboratorio Informatica - SAS – Anno Accademico LIUC Alcune indicazioni Dettaglio lezioni: Prima : Michele Gnecchi – Introduzione a SAS Guide.
SISTEMA GESTIONE TOMBINI
Programmazione Fondi Strutturali 2007/2013 Programma Operativo Nazionale: “Competenze per lo Sviluppo” finanziato con il Fondo Sociale Europeo Piano Integrato.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Modulo 5 – Database ACCESS LICEO SCIENTIFICO “ B. RESCIGNO COMPUTER SCUOLA PIANO INTEGRATO 2008/09 ESPERTO prof.ssa Rita Montella.
Microsoft Access 2007 Percorso didattico per l’apprendimento di Microsoft Access Modulo 2 Modulo 2 Microsoft Access 2007 Prof. Piero GALLO.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Transcript della presentazione:

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 dell’Informazione Progetto e Sviluppo di un'Applicazione Web per il Calcolo e la Visualizzazione di Piani di Accesso a Basi di Dati Daniel Stoilov Tesi di Laurea Relatore: Prof. Riccardo Martoglia Anno Accademico 2007/2008

Query Optimization Scopo di un DB Optimizer è di determinare mediante stime la migliore strategia di accesso per l’esecuzione di un’interrogazione SQL Tali moduli effettuano delle stime sulla base degli indici disponibili utili alla soluzioni dell’interrogazione La creazione di tutti e soli gli indici utili all’esecuzione delle interrogazioni spetta al progettista della base di dati, che ha anche la necessità di documentare le proprie scelte

Obiettivo della Tesi Necessità di avere uno strumento didattico in grado di facilitare il compito del progettista e di chi affronta lo studio di questi argomenti Scopo di questa tesi è la progettazione e realizzazione di uno strumento in grado di operare in un ambiente web dinamico eseguire automaticamente il parsing della query valutare i piani di accesso ottimali mediante un opportuno modello di costo suggerire i migliori indici e piani di accesso produrre un resoconto passo-passo, chiaro e dettagliato, dei calcoli effettuati

Progetto e Sviluppo di un Query Optimizer Analisi del Problema Progetto Implementazione

Analisi del problema Lo scopo del processo di ottimizzazione della query è produrre un "piano di esecuzione" il più efficiente possibile. Un "ottimizzatore” può produrre un piano di esecuzione "ottimale" per la maggioranza delle query. Il query optimizer realizzato dovrà essere in grado di effettuare i calcoli per i casi di interrogazioni più comuni essere di immediato e facile utilizzo, anche e soprattutto in un’ottica didattica

Ottimizzazione di query L'efficienza di una applicazione dipende dall'efficienza del sottostante database. L'efficenza del database dipende dall'efficenza delle query. Come ottimizzare una query? - verificare gli indici utili per migliorare l'efficienza di accesso ai dati Un indice è utile per una query solo se il costo di accesso con l’indice è minore del costo dell’accesso sequenziale cioè minore del numero di pagine per file

Ottimizzazione di query Verranno considerati e gestiti indici B+tree di due tipi: Indice non-clustered - contengono i riferimenti alle righe della tabella valorizzata con una determinata n-pla di valori in corrispondenza dei campi indicizzati Indice clustered - comporta il riordinamento dell'intera tabella in base al campo presente nell'indice. L'indice è più performante dal punto di vista delle richieste ma è il più pesante durante l'aggiornamento e l'inserimento

Problemi da risolvere Analizzare le query SQL Valutare tutti i piani di accesso più opportuni secondo un modello di costo Creare un'interfacca grafica per aiutare i progettisti e chi intende studiare questi argomenti Produrre una spiegazione dettagliata passo passo in output, analoga a quella che si trova nelle soluzioni dei relativi esercizi sui libri di testo

Scelte tecnologiche Applicazione dinamica Web-based - HTML - CSS - PHP Web server: Apache Tecnologie e strumenti: - HTML - CSS - PHP

Progetto e Sviluppo di un Query Optimizer Analisi del Problema Progetto Implementazione

Fasi della progettazione: Progetto Fasi della progettazione: Raccolta dei requisiti funzionali Analisi dello scenario: ottimizzatore di query Individuazione dei casi d'uso Realizzazione degli activity diagram

Scenario ottimizzatore di query L’utente specifica le dimensioni del form, aggiungendo delle righe Visione globale del ottimizzatore di query In caso di inserimento sbagliato, l’utente ha la possibilità di resettare il modulo Inserimento di una query nel form appena creato Dopo aver confermato l'inserimento sarà possibile specificare i dati necessari per il calcolo del costo Annulla dati inseriti

Activity Diagram: Inserimento Querry Diagramma delle attività per la funzione di inserimento di una query analizzata in dettaglio

Activity Diagram: Inserimento Query Diagramma delle attività per la funzione di calcolo del costo di accesso analizzata in dettaglio

Progetto e Sviluppo di un Query Optimizer Analisi del Problema Progetto Implementazione

AggiungiRiga.php: richiede la specifica delle righe del form. Studio degli script AggiungiRiga.php: richiede la specifica delle righe del form. InserimentoQuery.php: richiede l'inserimento di una query dall'utente. Controlla il corretto inserimento e in caso di sintassi sbagliata redireziona l’utente alla pagina AggiungiRiga.php. InserimentoFrom.php: righiede la specifica dei campi NT (numero di tuple del file) e NB (numero di pagine del file) per ogni tabella. Controlla se i dati richiesti sono specificati e in caso contrario da messaggio di errore.

Studio degli script InserimentoCalcolo.php: permette di selezionare per ogni attributo il valore di NK (numero di valori distinti della chiava), NF (numero di foglie dell'indice) ed il tipo di indice utilizzato: clustered, unclustered ordinato o unclustered disordinato. Controlla se i dati sono inseriti, controlla se l'indice clustered è utilizzato al più una volta per relazione. StampaRisultati.php: visualizza i risultati del calcolo.

Query optimizer: Aggiungi riga Query optimizer: specifica del numero di righe L'utente può richiedere facilmente ulteriori righe.

Query optimizer: Aggiungi riga Query optimizer: specifica del numero di righe Controllo sul campo obbligatorio: Aggiungi riga

Query optimizer: inserimento query Inserimento di una query Query inserita correttamente Menu a tendina filtro AND, OR, BETWEEN Controlli sui campi obbligatori: Select, From, Where

Query optimizer: inserimento From Inserimento valori di NT e NB per ogni tabella Visualizzazione della query inserita

Inserimento dati indici Specifica di NK e NF Specifica del tipo Possibilità di annullare il form

Query optimizer: Stampa risultati Questo script effettua i calcoli e visualizza i risultati La sequenza più conveniente è DIP => IMP Visualizzazione del costo di Join per la Sequenza IMP=>DIP Visualizzazione del costo di Join per la Sequenza DIP => IMP Viene mostrata la sequenza di accesso Visualizzazione del costo della scansione sequenziale Con l’accesso a IMP si ottengono Einp.nome=50 tuple che soddisfano imp.nome=“Rossi” quindi per 50 volte si accede a DIP per il predicato imp.qual=dip.qual Visualizzazione del costo di accesso con indice clustered

Obiettivi raggiunti creare un’applicazione web in grado di eseguire dei calcoli per il costo di accesso a interrogazioni sfruttare un modello di costo per prendere decisioni sull’ordinamento delle relazioni e quali indici costruire fornire uno strumento didattico in grado di aiutare chi intende studiare o capire meglio questi argomenti, grazie alla semplice interfaccia grafica e alla spiegazione dettagliata passo passo fornita in output, analoga a quella che si trova nelle soluzioni dei relativi esercizi sui libri di testo

Sviluppi futuri creazione di script PHP per estendere i calcoli di join a più di tre tabelle specifica in dettaglio dei valori degli attributi nei casi di operatori di minore o maggiore estensione degli script al fine di ottimizzare anche operazioni di modifica