Linguaggi per Basi di Dati - 1. Algebra Relazionale. Algebra Relazionale. Linguaggi per Basi di Dati - 2. Operatori Insiemistici.

Documenti analoghi
Equivalenza di Espressioni Algebriche

Linguaggi per basi di dati e SQL

Linguaggi per basi di dati. Linguaggi per basi di dati e SQL. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Il theta-join, espresso come prodotto cartesiano seguito da una selezione, è il tipo di join operativamente più generale. Infatti:

Modulo 2 Data Base 3

Dichiarativi : specificano le proprietà del risultato ("che cosa") Procedurali specificano le modalità di generazione del risultato ("come")

Linguaggi per basi di dati

Lezione 6. Algebra e Calcolo Relazionale

Fondamenti di Teoria delle Basi di Dati

Parte III. L algebra relazionale

Parte III L algebra relazionale

Modulo 2 Data Base 2

Algebra Relazionale.

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Corso di Basi di Dati

Operatori derivati dagli insiemi. Algebra Relazionale. Unione. Operatori derivati dagli insiemi

Equivalenze di espressioni. Equivalenze. Equivalenze. Atomizzazione delle selezioni ( F 2 (E)) Idempotenza delle proiezioni

Interrogazioni (Query) Esempi. Esempi. Esempi

Proiezione. Proiezione. Join. Operatore monadico Produce un risultato che

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Basi di dati. Linguaggi di interrogazione

ALGEBRA'RELAZIONALE'

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

Aggiornamenti e Interrogazioni

Dati una relazione r(x) e un sottoinsieme Y di X, la proiezione di r su Y si indica con

Basi di Dati. prof. Letizia Tanca. Linguaggi formali di interrogazione per il Modello Relazionale dei Dati

Lezione 5. Algebra relazionale

Vincoli di Integrità Referenziale

Algebra Relazionale.

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

Algebra relazionale: operazioni

Scopo. Informatica. Sistema informativo. Sistema informatico

Algebra relazionale D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/13

Equivalenza di espressioni. Equivalenze. Equivalenze. Due espressioni sono equivalenti se: Atomizzazione delle selezioni σ F1 F2 (E) σ F1 (σ F2 (E))

Scopo Laboratorio di Informatica

Il modello relazionale

3 Algebra Relazionale

Structured Query Language

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

Linguaggi di interrogazione. linguaggi interrogazione 1

ALGEBRA RELAZIONALE. L algebra relazionale

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Operatori derivati dagli insiemi

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Informatica II Basi di Dati (07/08) Parte 2. 4 Accesso ai dati di un DB. Accesso ai dati di un DB. Accesso ai dati di un DB

QL (Query Language) Alice Pavarani

Informatica. per laurea triennale di area non informatica. 1 Le basi di dati

Operatori di base. σ F (r) = {t t r. F(t) = true} SELEZIONE σ F (r)

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Basi di dati (database)

Basi di Dati Spaziali

Algebra e Calcolo relazionale. Algebra e calcolo relazionale (parte 1)

ALGEBRA RELAZIONALE. DB -Algebra Relazionale 1

Operatori aggregati. Operatori aggregati. Interrogazioni con raggruppamento. Interrogazioni con raggruppamento

Basi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni

ALGEBRA RELAZIONALE. Linguaggi di interrogazione relazionale

Logica booleana. Bogdan Maris ( )

MODULO Il sistema azienda. Sistema Informativo e Informatico Requisiti dei dati

La gestione delle interrogazioni

Operazioni. Lezione 8. Operazioni Relazionali. Operazioni insiemistiche Intersezione: Operazioni insiemistiche Unione:

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. SQL come Data Manipulation Language - (SELECT FROM WHERE ORDER BY)

Join (naturale) Join. Join. Join

Algebra Relazionale. Concetti Fondamentali

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Interrogazioni di tipo insiemistico. Select. Interrogazioni di tipo insiemistico. Interrogazioni nidificate

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

SQL - Sottointerrogazioni correlate

IL MODELLO RELAZIONALE

Corso sul linguaggio SQL

L algebra relazionale

Il linguaggio SQL: le viste

L algebra relazionale

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica I Modulo Basi di dati a.a

SQL QUERY: Le interrogazioni del database

Algebra relazionale (versione formale )

Basi di Dati: Corso di laboratorio

Join. il Join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse 20/03/2006 1

Basi di Dati. Concetti Avanzati

Corso di Informatica

Basi di dati 8 novembre 2010 Prova parziale Compito A

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Operazioni Relazionali. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Linguaggi per basi di dati

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Basi di dati - Laboratorio

Basi di Dati: Corso di laboratorio

Linguaggi per basi di dati ALGEBRA RELAZIONALE. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Prof. Alberto Postiglione Dipartimento di Scienze della Comunicazione Università degli Studi di Salerno

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Interrogazioni in SQL SQL1 1

Linguaggi di interrogazione

Basi di dati Algebra relazionale Figure ed esempi

BASI DATI: algebra relazionale INFORMATICA APPLICATA E SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Interrogazioni complesse. SQL avanzato 1

Interrogazioni. L istruzione base per le interrogazioni è select

Corso di. Basi di Dati I. 4. Algebra relazionale

L algebra relazionale

Transcript:

Linguaggi per Basi di Dati - 1 Università degli Studi di Trieste Corso di Laurea in Informatica D. Gubiani marzo 2008 Distinguiamo due classi di linguaggi per basi di dati : - linguaggi di definizione, o definition data language (DDL), utilizzati per definire gli schemi logici e le autorizzazioni per l accesso - linguaggi di manipolazione dei dati, o data manipulation language (DML), utilizzati per l interrogazione e l aggiornamento delle istanze di basi di dati D. Gubiani 1 D. Gubiani 2 Linguaggi per Basi di Dati - 2 Inoltre, distinguiamo tra - linguaggi dichiarativi, che specificano unicamente le proprietà del risultato (SQL, QBE) - linguaggi procedurali, che specificano le modalità di generazione del risultato (algebra relazionale) È un linguaggio di interrogazione dei dati di tipo procedurale basato su concetti di tipo algebrico L algebra relazionale mette a disposizione un insieme di operatori che agiscono su relazioni producendo relazioni (proprietà di chiusura dell algebra relazionale, che garantisce la composizionalità degli operatori) Dato uno schema di base di dati R, un interrogazione può essere vista come una funzione che, per ogni istanza r R, produce una relazione su un dato insieme di attributi D. Gubiani 3 D. Gubiani 4 Operatori Binarie (o insiemistiche): unione, intersezione (operazione derivata), differenza, prodotto cartesiano Unarie: selezione, proiezione, rinomina Derivate: join (join naturale, theta-join) Le relazioni sono insiemi: l algebra relazionale mette a disposizione gli operatori insiemistici (binari) di base (unione, differenza prodotto cartesiano e intersezione) Ogni operatore riceve in input due relazioni e restituisce in output una relazione (eventualmente vuota) È possibile applicare le operazioni di unione, intersezione e differenza solo a relazioni definite sugli stessi attributi È possibile applicare l operazione di prodotto cartesiano solo a relazioni definite su attributi diversi D. Gubiani 5 D. Gubiani 6

Unione Intersezione r 1 r 2 = {t t r 1 t r 2 }. Unione laureati e quadri r 1 r 2 = {t t r 1 t r 2 }. Determinare i laureati che sono anche quadri D. Gubiani 7 D. Gubiani 8 Differenza Prodotto Cartesiano - 1 r 1 r 2 = {t t r 1 t r 2 }. Determinare i laureati che non sono quadri Operazione insiemistica Prende in ingresso due relazioni e restituisce in uscita una relazione che contiene tutte le possibili combinazioni di tuple Intersezione: A B = A - (A - B) D. Gubiani 9 D. Gubiani 10 Prodotto Cartesiano - 2 Prodotto Cartesiano - 3 Cardinalità del risultato del prodotto cartesiano: card(risultato) = card(tabella1) card(tabella2) Possono sorgere conflitti fra i nomi: in tali casi occorre la rinomina degli attributi D. Gubiani 11 D. Gubiani 12

Selezione - 1 Sono operatori che prendono in input una relazione (e restituiscono in output una relazione) Due operatori più uno: - selezione - proiezione - rinomina Prende in ingresso una relazione e seleziona il sottoinsieme delle istanze che soddisfano una data condizione Sintassi: σ condizione (r) CONDIZIONI ELEMENTARI: nome attributo operatore confronto nome attributo nome attributo operatore confronto valore costante CONDIZIONI COMPLESSE: si ottengono dalle condizioni elementari utilizzando i connettivi logici D. Gubiani 13 D. Gubiani 14 Selezione - 2 Selezione - 3. Selezionare tutti gli impiegati che afferiscono al dipartimento 4 σ DNO=4 (Impiegato) Grado del risultato della selezione: grado(risultato) = grado(operando) Cardinalità del risultato della selezione: card(risultato) card(operando) Indice di selettività della operazione: indice di selettività = card(risultato) card(operando) D. Gubiani 15 D. Gubiani 16 Proiezione - 1 Proiezione - 2. Determinare matricola, cognome e stipendio di ogni impiegato Prende in ingresso una relazione e restituisce la porzione di tale relazione relativa al sottoinsieme di attributi specificati in input Sintassi: π <listaattributi> (r) π Matricola,Cognome,Stipendio (Impiegato) D. Gubiani 17 D. Gubiani 18

Proiezione - 3 Selezione e Proiezione Grado del risultato della proiezione: grado(risultato) grado(operando) - il caso = non è, però, significativo Selezione e proiezione - sono operazioni complementari (ortogonali) - possono essere eseguite in sequenza. π Matricola,Cognome (σ Stipendio>50 (Impiegati)) Cardinalità del risultato della proiezione: card(risultato) card(operando) D. Gubiani 19 D. Gubiani 20 Osservazione Rinomina Può essere utile assegnare un nome alle relazioni intermedie. (vedi testo in precedenza) - r 1 σ Stipendio>50 (Impiegato) - r 2 π Matricola,Cognome (r 1 ) È spesso utile (alle volte necessario) rinominare gli attributi Sintassi: ρ B1...B n A 1...A n (r). r 2 ρ Matr50 Cognome50 Matricola Cognome (π Matricola,Cognome (r 1 )) D. Gubiani 21 D. Gubiani 22 Operatori derivati Join Componendo le operazioni di base, si possono ottenere nuove operazioni (operazioni derivate): - Join - Divisione - Semi-join L operatore di join permette di collegare dati contenuti in relazioni diverse, confrontando i loro valori Esistono due tipi fondamentali di join: - θ-join - Natural-Join D. Gubiani 23 D. Gubiani 24

θ-join - 1 θ-join - 2 L operazione di θ-join: combinazione fra prodotto cartesiano e selezione σ cond (r X s) = r cond s dove ogni condizione elementare in cond coinvolge un attributo di R ed un attributo di S D. Gubiani 25 D. Gubiani 26 θ-join ed Equi-Join Natural-Join Sintassi: r condizione join s Assumendo che r R(A 1...A n ) e s S(B 1...B m ), la condizione di join condizione join ha la forma: condizione join cond 1 and...and cond k dove cond i = attr. di R op. confronto attr. di S ; Se cond 1...cond k sono tutte condizioni di uguaglianza, il join è detto Equi-Join Versione dell operazione di Join in cui si confrontano tutti e soli gli attributi con lo stesso nome Sintassi: R S o, equivalentemente, R S D. Gubiani 27 D. Gubiani 28 Osservazioni Semi-Join In genere, nella condizione di join non viene utilizzato il connettivo OR che può essere sostituito dall operazione UNION L operazione di natural-join è ovviamente possibile solo nel caso in cui gli attributi abbiano un nome La relazione vuota è una relazione L operazione di θ-join senza condizioni e l operazione di Natural-Join senza attributi con lo stesso nome degenerano entrambe nel prodotto cartesiano Proiezione del risultato di un Natural-Join sugli attributi di una relazione Sintassi: R S π R (R S) R S π S (R S). Determinare tutti gli impiegati che lavorano ad almeno un progetto r IMPIEGATI LAVORAINPROGETTO con r R(Matricola,Cognome,DNum,Salario) D. Gubiani 29 D. Gubiani 30

Divisione - 1 Divisione - 2. Determinare il cognome degli impiegati che lavorano a tutti i progetti cui lavora Rossi Soluzione 1: ROSSI σ cognome=rossi (IMPIEGATI) R PROG ROSSI LAVORAINPROGETTO R P π progetto (R PROG) IMP LAVORAINPROGETTO R P R π cognome (IMP IMPIEGATI) D. Gubiani 31 D. Gubiani 32 Divisione - 3 Soluzione 2: CANDIDATI π matricola (IMPIEGATI) CONDIZIONI CANDIDATI R P NO GOOD CONDIZIONI LAVORAINPROGETTO CANDIDATI CATTIVI π matricola (NO GOOD) R MATR CANDIDATI CANDIDATI CATTIVI R π cognome (R MATR IMPIEGATI) Esiste una serie di operazioni addizionali che non possono essere ricavate dalle operazioni di base: - Funzioni aggregate - Join esterno - Unione esterna D. Gubiani 33 D. Gubiani 34 Funzioni Aggregate - 1 Funzioni Aggregate - 2 Operano su un insieme di dati e restituiscono come risultato un dato aggregato (una relazione contenente un solo valore) Sintassi: F OPERATORE Attributo (r). Determinare il numero di impiegati dell azienda, il loro stipendio medio, lo stipendio massimo e l ammontare complessivo degli stipendi D. Gubiani 35 D. Gubiani 36

Funzioni Aggregate - 3 Join Esterno - 1 Si possono usare anche più funzioni aggregate: F SUM salario, AVERAGE salario (IMPIEGATI) Il nome dell attributo del risultato è la combinazione operatore attributo (è possibile la rinomina) Esiste la possibilità di eseguire preliminarmente una partizione delle tuple in modo che la funzione venga eseguita separatamente sugli elementi di ciascuna classe -. Determinare il numero di impiegati per ogni dipartimento R1 DNO F COUNT matricola (IMPIEGATI) Consente di gestire dei casi non coperti dal Join tradizionale Esistono tre tipi di Join esterno: - Destro - Sinistro - Completo D. Gubiani 37 D. Gubiani 38 Join Esterno - 2 Unione Esterna. Determinare il cognome dei dipendenti con eventualmente i progetti a cui lavorano R π Cognome,Progetto (IMPIEGATI left join LAVORAINPROGETTO). Determinare l unione delle relazioni Facoltà(Nome,SSN,Dipartimento,Rank) Studenti(Name,SSN,Dipartimento,Advisor) R FacoltàUnione Esterna Studenti dove R(Nome,SSN,Dipartimento,Rank,Advisor) Realizza l unione fra relazioni non compatibili rispetto all unione Gli attributi non comuni assumono il valore NULL nelle tuple per le quali non hanno un valore D. Gubiani 39 D. Gubiani 40 Equivalenza Dipendente dallo Schema L algebra relazionale permette di formulare espressioni fra loro equivalenti Diversi tipi di equivalenza: - equivalenza dipendente dallo schema - equivalenza assoluta E 1 R E 2 se E 1 (r) = E 2 (r) per ogni r R. π A,B (R 1 ) π A,C (R 2 ) R π A,B,C (R 1 R 2 ) Se e solo se R 1 ed R 2 hanno in comune il solo attributo A D. Gubiani 41 D. Gubiani 42

Equivalenza Assoluta (Non Dipendente dallo Schema) Ottimizzazione Algebriche - 1 E 1 E 2 se E 1 R E 2 per ogni R. Per qualsiasi schema R, è facile vedere che π A,B (σ A>0 (R)) σ A>0 (π A,B (R)) L ottimizzazione algebrica ha lo scopo di trovare un espressione che sia equivalente all espressione data e possa essere eseguita in modo più efficiente D. Gubiani 43 D. Gubiani 44 Ottimizzazione Algebriche - 2 Infatti, in fase di esecuzione delle interrogazioni (specificate in SQL) vengono tradotte in algebra relazionale e viene valutato il costo - il costo dell esecuzione di un interrogazione può essere valutato in termini delle dimensioni dei risultati intermedi In presenza di alternative equivalenti viene scelta l espressione con costo minore Le trasformazioni di equivalenza sono operazioni che sostituiscono un espressione con un altra a essa equivalente - interessanti se riducono il costo Alcune trasformazioni: - atomizzazione delle selezioni - idempotenza delle proiezioni - anticipazione della selezione rispetto al join - anticipazione della proiezione rispetto al join D. Gubiani 45 D. Gubiani 46 Atomizzazione delle Selezioni Idempotenza delle Proiezioni Una congiunzione di selezioni può essere sostituita da una sequenza di selezioni atomiche σ F1 F 2 (E) σ F1 (σ F1 (E)) Successive applicazioni permettono di operare su condizioni atomiche Una proiezione può essere trasformata in una sequenza di proiezioni che eliminano i vari attributi in varie fasi π X (E) π X (π X,Y (E)) Nota. E è un espressione definita su un insieme di attributi che contiene X e Y. Nota. E è una qualsiasi espressione. D. Gubiani 47 D. Gubiani 48

Anticipazione della Selezione Rispetto al Join Anticipazione della Proiezione Rispetto al Join Anticipazione della selezione rispetto al join (pushing selections down) σ F (E 1 E 2 ) E 1 σ F (E 2 ) Anticipazione della proiezione rispetto al join (pushing projections down) π X1,Y 2 (E 1 E 2 ) E1 π Y2 (E 2 ) Nota. Con E1 è definita su X1, E2 è definita su X2, Y2 X2 e (X1 X2) Y2 (gli attributi di X2 Y2 non sono coinvolti nel join). Nota. Se la condizione F coinvolge solo attributi della sottoespressione E2. Combinata con l idempotenza delle proiezioni, permette di eliminare subito da ciascuna relazione gli attributi che non compaiono nel risultato e non sono coinvolti nel join D. Gubiani 49 D. Gubiani 50 Altre - 1 Altre - 2 Inglobamento di una selezione in un prodotto cartesiano σ F (E 1 E 2 ) E 1 F E 2 Distributività della selezione rispetto all unione σ F (E 1 E 2 ) σ F (E 1 ) σ F (E 2 ) Distributività della selezione rispetto alla differenza σ F (E 1 E 2 ) σ F (E 1 ) σ F (E 2 ) Distributività della proiezione rispetto all unione π X (E 1 E 2 ) π X (E 1 ) π X (E 2 ) Trasformazioni basate sulla corrispondenza tra operatori insiemistici e selezioni complesse: σ F1 F 2 (R) σ F1 (R) σ F2 (R) σ F1 F 2 (R) σ F1 (R) σ F2 (R) σ F1 (R) σ F2 (R) σ F1 (F 2)(R) σ F1 (R) σ F2 (R) Proprietà distributiva del join rispetto all unione E (E 1 E 2 ) (E E 1 ) (E E 2 ) Osservazione. La proiezione non è distributiva rispetto alla differenza. D. Gubiani 51 D. Gubiani 52-1 - 2. Dato lo schema {DIPARTIMENTO(dNumero, dnome, manager), IMPIEGATO(matricola, nome, cognome, dip, stipendio)}, trovare i nomi dei dipartimenti il cui manager guadagna più di 80000 euro. Soluzione non ottimizzata: π dnome (σ matricola=manager stipendio>80000 (IMPIEGATO DIPARTIMENTO)) Si può riscrivere come: π dnome (σ matricola=manager (σ stipendio>80000 (IMPIEGATO DIPARTIMENTO))) D. Gubiani 53 D. Gubiani 54

- 3 Si può riscrivere come: π dnome (σ stipendio>80000 (IMPIEGATO) matricola=manager DIPARTIMENTO) Si può riscrivere come: π dnome (π matricola (σ stipendio>80000 (IMPIEGATO)) matricola=manager DIPARTIMENTO) D. Gubiani 55