Algoritmo di Query Optimization

Slides:



Advertisements
Presentazioni simili
Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
Advertisements

DB -Algebra Relazionale
Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
Calcolo Relazionale.
DBMS (DataBase Management System)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Nana Mbinkeu Rodrigue Carlos 1 DB unimo OTTIMIZZAZIONE DI QUERY IN MOMIS Università degli studi di Modena e Reggio Emilia Relatore: Prof. Sonia.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
SQL Dati i seguenti schemi relazionali:
Operazioni Relazionali
Basi di Dati - 3 Dati su più tabelle. Informatica 1 SCICOM - a.a. 2010/11 2 Separare i dati su più tabelle Quando è necessario? – Empiricamente, quando.
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Basi di Dati)
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
SQL: Lezione 7 Nataliya Rassadko
DB -Algebra Relazionale
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.
Esercitazione.
Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJCapo (SELStipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Equivalenza di espressioni
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Join e proiezioni: problemi ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto.
DBMS ( Database Management System)
Basi di dati Claudia Raibulet
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Il Modello Relazionale
SQL: Structured Query Language
Basi di Dati - 3 Dati su più tabelle Informatica 1 (SAM) - a.a. 2010/11.
Progettare un database
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Corso di Laurea in Conservazione e Restauro dei Beni Culturali
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Microsoft Access Query (II), filtri.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
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.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Microsoft Access Query (III).
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Progettazione di una base di dati relazionale Vincoli.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
Vincoli interrelazionali
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 =
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
L’Algebra Relazionale
Operazioni Relazionali
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.
SQL Linguaggio per l’interrogazione di una base dati.
Access Breve introduzione. Componenti E’ possibile utilizzare Access per gestire tutte le informazioni in un unico file. In un file di database di Access.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
Laurea Magistrale in Informatica Architetture basi di dati A.A Docente: Prof. Carlo Batini Query Optimization nei DDBMS.
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Transcript della presentazione:

Algoritmo di Query Optimization

Espressione Algebrica di Query L’Algebra Relazionale può essere utilizzata come linguaggio per interrogare una base di dati. Giugno-Pulvirenti AA 2006-2007

Equivalenza di espressioni Due espressioni sono equivalenti se producono lo stesso risultato qualunque sia l'istanza attuale della base di dati L'equivalenza è importante in pratica perché i DBMS cercano di eseguire espressioni equivalenti a quelle date, ma meno "costose" Giugno-Pulvirenti AA 2006-2007

Un'equivalenza importante Push selection (se A è attributo di R2 ) SEL A=10 (R1 JOIN R2) = R1 JOIN SEL A=10 ( R2) Riduce in modo significativo la dimensione del risultato intermedio (e quindi il costo dell'operazione) Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Esempio di Query Consideriamo l’esempio del database degli studenti costituito dalle tre tabelle Studenti, Esami, Corsi. Supponiamo che vogliamo trovare tutti i professori che hanno dato a Mario Rossi piu’ di 27. ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti Esami  Corsi) Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Query Optimization La stessa query PNome=‘Mario Rossi’& Voto>27 (Studenti  Esami  Corsi) può essere espressa come P (Nome=‘Mario Rossi’Studenti  ( Voto>27 Esami  Corsi)) Che risulta essere molto più efficiente! Giugno-Pulvirenti AA 2006-2007

Regole per la query optimization Anticipare l’applicazione delle proiezioni e delle restrizioni rispetto al prodotto (e quindi alle giunzioni), in modo da ridurre la dimensione delle tabelle a cui applicare il prodotto (e le giunzioni). Le seguenti regole possono essere utilmente utilizzate per l’ottimizzazione di espressioni: Giugno-Pulvirenti AA 2006-2007

Regole sulla restrizione Raggruppamento di restrizioni C(X) (C(Y)(E))=C(X)&C(Y)(E) Commutativita’ di  e  C(X)(Y(E))=Y(C(X)(E)) ,se XY; Y(C(X)(XY(E)))=Y(C(X)(E))se X  Y. Giugno-Pulvirenti AA 2006-2007

Restrizione e Prodotto Anticipazione di  rispetto a . C(X)(E  F)= C(X)(E)  F, se X attr(E). C(X)&C(Y)(E  F)= C(X)(E)  C(Y)(F), se X attr(E), Y attr(F). C(X)&C(Y)&C(Z)(E  F)= C(Z)( C(X)(E)  C(Y)(F)), se X attr(E), Y attr(F), Z attr(E) , Z attr(F) Giugno-Pulvirenti AA 2006-2007

Regole per la proiezione Raggruppamento di proiezioni. X(Y(E))= X(E) , se XY. Eliminazione di proiezioni superflue. X(E)=E , se X = attr.(E). Anticipazione della  rispetto a . XY(E  F)= X(E)  Y(F) , se Xattr(E), Yattr.(F). Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 L’ALGORITMO Si applicano le seguenti tre regole (per anticipare la selezione) finché è possibile Si anticipa  rispetto a  usando la 2.a C(X)(Y(E))=Y(C(X)(E)) ,se XY; Si raggruppano le restrizioni usando la 1 C(X) (C(Y)(E))=C(X)&C(Y)(E). Si anticipa l’esecuzione di  su  usando la 3. Giugno-Pulvirenti AA 2006-2007

Anticipazione delle proiezioni Si eliminano le proiezioni superflue usando la 5 X(E)=E , se X = attr.(E). . Si raggruppano le proiezioni mediante la regola 4 X(Y(E))= X(E) , se XY.. Si anticipa l’esecuzione delle proiezioni rispetto al prodotto usando ripetutamente la 2 [Commutativita’ di  e ] (quando E è un prodotto, da destra verso sinistra) e la 6 [Anticipazione della  rispetto a ]. Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Dato lo schema: impiegato(i_id, i_nome, eta, stipendio); dipartimento(d_id, d_nome, budget, manager_id); lavora(i_id, d_id, perc_tempo); Per ogni impiegato indicare il nome di tutti i suoi manager. Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Indicare il nome di tutti i dipartimenti con più di 10 impiegati. Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Nome ed età di tutti gli impiegati che lavorano sia in Amministrazione che in Contabilità (Nota che possono lavorare anche in altri dipartimenti oltre i due indicati). Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Nome di tutti i manager che lavorano in più di un dipartimento ed indicare il numero di dipartimenti per cui lavorano. Giugno-Pulvirenti AA 2006-2007

Giugno-Pulvirenti AA 2006-2007 Nome di tutti i dipendenti che lavorano solo per un dipartimento Giugno-Pulvirenti AA 2006-2007