• Non ci sono risultati.

Progetto e Sviluppo di un'Applicazione Web per il Calcolo e la Visualizzazione di Piani di Accesso a Basi di Dati

N/A
N/A
Protected

Academic year: 2021

Condividi "Progetto e Sviluppo di un'Applicazione Web per il Calcolo e la Visualizzazione di Piani di Accesso a Basi di Dati"

Copied!
25
0
0

Testo completo

(1)

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

U

NIVERSITÀ DEGLI STUDI DI

M

ODENA E

R

EGGIO

E

MILIA

Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Scienze dell’Informazione

Relatore:

Prof. Riccardo Martoglia

Anno Accademico 2007/2008

(2)

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

(3)

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

(4)

Progetto e Sviluppo di un Query Optimizer

• Analisi del Problema

• Progetto

• Implementazione

(5)

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

(6)

Ottimizzazione di query

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

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

(7)

Ottimizzazione di query

Verranno considerati e gestiti indici B+tree di due tipi:

• 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

• Indice non-clustered

- contengono i riferimenti alle righe della tabella

valorizzata con una determinata n-pla di valori in

corrispondenza dei campi indicizzati

(8)

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

(9)

Scelte tecnologiche

Applicazione dinamica Web-based

Web server: Apache

Tecnologie e strumenti:

- HTML

- CSS

- PHP

(10)

Progetto e Sviluppo di un Query Optimizer

• Analisi del Problema

• Progetto

• Implementazione

(11)

Progetto

Fasi della progettazione:

• Raccolta dei requisiti funzionali

• Analisi dello scenario: ottimizzatore di query

• Individuazione dei casi d'uso

• Realizzazione degli activity diagram

(12)

Scenario ottimizzatore

di query

Visione globale del ottimizzatore

di query

L’utente specifica le dimensioni del

form, aggiungendo

delle righe Inserimento di

una query nel form appena

creato

In caso di inserimento sbagliato, l’utente ha

la possibilità di resettare il modulo Dopo aver confermato

l'inserimento sarà possibile specificare i dati necessari

per il calcolo del costo Annulla dati

inseriti

(13)

Activity Diagram:

Inserimento Querry

Diagramma delle attività per la funzione di inserimento di

una query analizzata in

dettaglio

(14)

Activity Diagram:

Inserimento Query

Diagramma delle attività per la funzione di calcolo del costo di accesso analizzata in

dettaglio

(15)

Progetto e Sviluppo di un Query Optimizer

• Analisi del Problema

• Progetto

• Implementazione

(16)

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.

(17)

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.

(18)

Query optimizer: Aggiungi riga

• Query optimizer: specifica del numero di righe

L'utente può richiedere facilmente

ulteriori righe.

(19)

Query optimizer: Aggiungi riga

• Query optimizer: specifica del numero di righe

Controllo sul campo

obbligatorio:

Aggiungi riga

(20)

Query optimizer: inserimento query

Inserimento di una query Controlli sui

campi

obbligatori:

Select, From, Where

Menu a tendina filtro

AND, OR,

BETWEEN

Query inserita correttamente

(21)

Query optimizer: inserimento From

Inserimento valori di NT e NB per ogni tabella

Visualizzazione della query inserita

(22)

Inserimento dati indici

Specifica di NK e NF

Specifica del tipo Possibilità di

annullare

il form

(23)

Query optimizer: Stampa risultati

Questo script effettua i calcoli e visualizza i risultati

Viene mostrata la sequenza di accesso

Visualizzazione del costo di accesso

con indice clustered 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 Join per la Sequenza IMP=>DIP Visualizzazione del costo di Join per la

Sequenza DIP => IMP

La sequenza più conveniente è DIP => IMP

(24)

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

(25)

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

Riferimenti

Documenti correlati

Per i soggetti autonomi, relativamente alla regolazione per l'anno precedente, l'applicazione presenta la sezione visualizzata nella Figura 3.11.. Figura 3.11 – Soggetti Autonomi

3.6 Soggetti Autonomi - Agevolazioni Regolazione per l'anno precedente Per i soggetti autonomi, relativamente alle agevolazioni per l’anno precedente, l'applicazione presenta

Nella pagina di dettaglio, il link Stampa riepilogo consente di aprire o salvare un file dettaglio.pdf contenente le ditte per cui sono state richieste la basi

L’utente selezionando la casella di spunta Unifica PDF per il download, presente sia nella pagina principale di ricerca che nella pagina di dettaglio della

L’utente può visualizzare il dettaglio di ognuna delle autorizzazioni di cassa, stampare l’autorizzazione di cassa o modificare i dati di un’autorizzazione cliccando direttamente

INFORMATIVA IN MATERIA DI TRATTAMENTO DEI DATI PERSONALI IN RELAZIONE AL PROCEDIMENTO DI GESTIONE DI DOMANDE DI ACCESSO DOCUMENTALE , CIVICO , CIVICO GENERALIZZATO E ALL ’

 anni di utilizzo “artigianale” di form elettroniche a supporto di processi amministrativi interni e pubblici, hanno consentito all’Azienda USL di Bologna di farsi trovare pronta

Per vericare l'esattezza dei tuoi procedimenti sul calcolo delle espressioni numeriche o algebriche e delle equazioni puoi utilizzarre il software Mini- math, gratuitamente