L’Algebra Relazionale

Slides:



Advertisements
Presentazioni simili
DB -Algebra Relazionale
Advertisements

Algebra Relazionale 3 Università degli Studi del Sannio
Calcolo Relazionale.
Algebra e calcolo relazionale (parte 2)
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
Algebra relazionale Presentazione 12.1
Interrogazione di una base di dati relazionale Algebra relazionale.
1 Algebra Relazionale Eugenio Di Sciascio. 2 Introduzione Lalgebra relazionale è un linguaggio procedurale: le operazioni vengono specificate descrivendo.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Operazioni Relazionali
ESEMPI DI ARCHIVI DI DATI
Anno accademico Gli operatori e le espressioni in C.
Il linguaggio C Gli operatori e le espressioni C Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
DB -Algebra Relazionale
Algoritmo di Query Optimization
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.
Proiezione Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y si indica con Y ( r ) o PROJ Y ( r ) ed è linsieme di tuple su Y ottenute.
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.
Basi di dati Claudia Raibulet
INFORMATICA Corso Base Modulo G: I DataBase  Access.
L’algebra relazionale
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
LE BASI DI DATI E IL LINGUAGGIO SQL.
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
Sistemi di Elaborazione delle Informazioni Mod.I.
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
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.
Microsoft Access Maschere (II).
Algebra di Boole.
ALGEBRA RELAZIONALE. Algebra Relazionale2  Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati  E’ importante.
ALGEBRA E CALCOLO RELAZIONALE
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
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.
1 Il modello relazionale. 2 Introduzione Il modello relazionale, sebbene non sia stato il modello usato nei primi DBMS, e' divenuto lentamente il modello.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
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.
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.
Eprogram informatica V anno.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Informatica Introduzione alle basi di dati Lezione 7 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Approfondimenti SQL.
L’Algebra Relazionale
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
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.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
Transcript della presentazione:

L’Algebra Relazionale Corso di Basi di Dati L’Algebra Relazionale Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/

Algebra Relazionale L’algebra relazionale e’ un linguaggio (procedurale) di interrogazione per basi di dati relazionali. Altri linguaggi DML di interrogazione: SQL2/SQL3 (standard de facto, gia’ visto ..) Calcolo relazionale (linguaggio dichiarativo) Datalog (basato su Prolog)

Algebra Relazionale All’interno di un DBMS, le query SQL sono controllate ed eseguite da un interprete SQL. L’interprete spesso traduce l’SQL in un altro linguaggio procedurale (~algebra relazionale) per motivi di: Facilita’ d’esecuzione  e’ possibile scomporre query complesse in una sequenza di procedure da eseguire. Ottimizzazione  e’ possibile riscrivere (automaticamente) le query procedurali in modo da consumare meno memoria o tempo di esecuzione.

Algebra Relazionale Il linguaggio dell’algebra relazionale e’ costituito da una serie di operatori (algebrici) che: si applicano ad una relazione (definizione di relazione nel modello relazionale). producono in output una relazione. sono componibili, ossia e’ possibile utilizzarli in cascata per creare interrogazioni complesse. Gli operatori possono essere unari o binari.

Algebra Relazionale Interrogazione SQL Generata dall’utente/ applicazione Interrogazione SQL Traduttore SQL  Linguaggio Procedurale Interrogazione linguaggio procedurale Ottimizzatore di query Interrogazione ottimizzata Esecuzione DB INTERPRETE SQL DEL DBMS

Algebra Relazionale Il linguaggio dell’algebra relazionale e’ costituito da una serie di operatori (algebrici): Operatori su insiemi: unione, intersezione, differenza. Operatori su attributi: ridenominazione, selezione, proiezioni. Operatori intra-relazionali: join naturale, theta-join, equi-join, etc.

Algebra Relazionale Le relazioni sono insiemi  e’ possibile definire operatori insiemistici su di esse: Unione di r1(X) ed r2(X): Intersezione di r1(X) ed r2(X): Differenza di r1(X) ed r2(X): Le relazioni r1 ed r2 devono avere lo stesso schema!

Algebra Relazionale Nome Cognome Nascita Giuseppe Rossi 10/03/19769 CALCIATORI ALLENATORI Nome Cognome Nascita Giuseppe Rossi 10/03/19769 Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome Nascita Giovanni Bianchi 10/06/1980 Roberto 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome Nascita Giuseppe Rossi 10/03/19769 Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983 Giovanni 10/06/1980 Nome Cognome Nascita Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983

Algebra Relazionale CALCIATORI ALLENATORI Nome Cognome Nascita Giuseppe Rossi 10/03/19769 Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome Data Giovanni Bianchi 10/06/1980 Roberto 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome ??? Nome Cognome ??? Q. Cosa accade se le relazioni non hanno esattamente lo stesso schema, ma dispongono di attributi con nomi diversi?

Algebra Relazionale L’operatore di ridenominazione r consente di modificare i nomi degli attributi di una relazione. rB1,B2, … BM  A1, A2, .. AM (r) SEMANTICA: Modifica lo schema della relazione, ridenominando gli attributi A1, A2, …AM in B1, B2, BM senza alterare i dati della relazione. B1 B2 … BM A1 A2 … AM

Algebra Relazionale Nome Cognome Nascita Giuseppe Rossi 10/03/19769 CALCIATORI ALLENATORI Nome Cognome Nascita Giuseppe Rossi 10/03/19769 Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome Data Giovanni Bianchi 10/06/1980 Roberto 14/06/1982 Michele Verdi 17/08/1983 Nome Cognome Nascita Giuseppe Rossi 10/03/19769 Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983 Giovanni 10/06/1980 Nome Cognome Nascita Roberto Bianchi 14/06/1982 Michele Verdi 17/08/1983

Algebra Relazionale L’operatore di selezione sF(r) consente di selezionare un sottoinsieme delle tuple della relazione r, in base alla condizione specificata da F. Relazione r Relazione r’ A1 A2 … A5M A1 A2 … A5M sF(r) Insieme delle righe di r che soddisfano la condizione F

Algebra Relazionale L’operatore di selezione sF(r) consente di selezionare un sottoinsieme delle tuple della relazione r, in base alla condizione specificata da F. La condizione F e’ definita come insieme di predicati connessi da operatori logici. F= P1 Op P2 Op … PN Op e’ un operatore booleano (AND, OR, NOT)

Algebra Relazionale La condizione F e’ definita come insieme di predicati connessi da operatori logici. F= P1 Op P2 Op … PN Ogni predicato e’ del tipo AqB oppure Aqc, dove: q e’ un operatore di confronto (<,>,=,<>,<=,>=). A e B sono attributi di r, su cui ha senso l’operatore contiene una valore compatibile con il dominio di A.

Algebra Relazionale Nome Cognome Nascita Anni Societa’ Giuseppe Rossi CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo Roberto Bianchini 14/06/1982 33 Polisportiva Michele Verdi 17/08/1983 27 Giovanni Bianchi 10/06/1980 29 Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo

Algebra Relazionale Nome Cognome Nascita Anni Societa’ Giuseppe Rossi CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo Roberto Bianchini 14/06/1982 33 Polisportiva Michele Verdi 17/08/1983 27 Giovanni Bianchi 10/06/1980 29 Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo Giovanni Bianchi 10/06/1980 29

Algebra Relazionale Q. Cosa accade in presenza di valori nulli? Nome CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo Roberto Bianchini 14/06/1982 NULL Polisportiva Michele Verdi 17/08/1983 27 Giovanni Bianchi 10/06/1980 29 Q. Cosa accade in presenza di valori nulli?

Algebra Relazionale A. Come in SQL, si utilizza una logica a 3 valori: True (T), False (F), Unknown (U). NOT T F U AND T F U OR T F U Si utilizzano gli operatori IS NULL e IS NOT NULL per verificare se un certo attributo ha valore uguale a NULL o meno.

Algebra Relazionale Nome Cognome Nascita Anni Societa’ Giuseppe Rossi CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 NULL Dinamo Roberto Bianchi 14/06/1982 33 Polisportiva Michele Verdi 17/08/1983 27 Giovanni 10/06/1980 35 Nome Cognome Nascita Anni Societa’

Algebra Relazionale Nome Cognome Nascita Anni Societa’ Giuseppe Rossi CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 NULL Dinamo Roberto Bianchi 14/06/1982 33 Polisportiva Michele Verdi 17/08/1983 27 Giovanni 10/06/1980 35 Nome Cognome Nascita Anni Societa’ Giovanni Bianchi 10/06/1980 35 NULL

Algebra Relazionale L’operatore di proiezione pY(r) consente di selezionare un sottoinsieme degli attributi di r. Y=(A1,A5) A1 A2 A3 … A5 A1 A5 …

Algebra Relazionale L’operatore di proiezione pY(r) consente di selezionare un sottoinsieme degli attributi di r. Qual e’ la cardinalita’ di pY(r)? Nel caso generale, |pY(r)| <= |r| Se Y e’ superchiave di R, allora |pY(r)|= |r| Q. Vale anche il viceversa? (Se |pY(r)|= |r| allora Y e’ una superchiave di R?)

Algebra Relazionale Nome Cognome Nascita Anni Societa’ Giuseppe Rossi CALCIATORI Nome Cognome Nascita Anni Societa’ Giuseppe Rossi 10/03/19769 32 Dinamo Roberto Bianchi 14/06/1982 33 Polisportiva Michele Verdi 17/08/1983 27 Giovanni 10/06/1980 Nome Cognome Giuseppe Rossi Roberto Bianchi Michele Verdi Giovanni Anni 32 33 27

Algebra Relazionale E’ possibile scrivere espressioni complesse componendo gli operatori algebrici … PRESIDENTI CALCIATORI Nome Cognome Squadra Giuseppe Rossi Dinamo Roberto Bianchi Michele Verdi Polisportiva Nome Cognome Squadra Luciano Rossi Dinamo Michele Rosati Polisportiva Nome Cognome Squadra Luciano Rossi Dinamo Giuseppe Roberto Bianchi

Algebra Relazionale E’ possibile scrivere espressioni complesse componendo gli operatori algebrici … PRESIDENTI CALCIATORI Nome Cognome Squadra Giuseppe Rossi Dinamo Roberto Bianchi Michele Verdi Polisportiva Nome Cognome Squadra Luciano Rossi Dinamo Michele Rosati Polisportiva Cognome Rossi Bianchi

Algebra Relazionale L’operatore di join naturale consente di correlare dati tra relazioni diverse, sulla base di valori comuni in attributi comuni. CALCIATORI Nome Cognome Squadra Giuseppe Rossi Dinamo Roberto Bianchi Michele Verdi Polisportiva SQUADRE Squadra Punti Dinamo 12 Polisportiva 14 Nome Cognome Squadra Punti Giuseppe Rossi Dinamo 12 Roberto Bianchi Michele Verdi Polisportiva 14

La cardinalita’ del join e’ compresa tra 0 e |r1|*|r2|. Algebra Relazionale L’operatore di join naturale consente di correlare dati tra relazioni diverse, sulla base di valori comuni in attributi comuni. Data una relazione r1 su attributi X1, ed una relazione r2 su attributi X2: La cardinalita’ del join e’ compresa tra 0 e |r1|*|r2|.

Algebra Relazionale Se le due relazioni r1 ed r2 hanno lo stesso schema  la cardinalita’ del join e’ pari a quella dell’interserzione tra r1 ed r2 . IMPIEGATI Codice Nome Ufficio 123 Rossi A 345 Bianchi 167 Verdi B Codice Nome Ufficio 123 Rossi A RESPONSABILI_UFFICIO Codice Nome Ufficio 123 Rossi A 345 Michele C CASO SPECIALE 1

Algebra Relazionale Sia X l’attributo in comune tra X1 ed X2. Se X contiene una chiave di r2  il join ha cardinalita’ massima pari alla cardinalita’ di r1 (|r1|). SEDI IMPIEGATI Sede Mansione Bologna Sviluppo Milano Testing Codice Nome Sede 123 Rossi Bologna 345 Bianchi Milano 167 Verdi Id Nome Sede Mansione 123 Rossi Bologna Sviluppo 345 Bianchi Milano Testing 167 Verdi CASO SPECIALE 2

Algebra Relazionale Sia X l’attributo in comune tra X1 ed X2. Se esiste un vincolo di integrita’ referenziale tra l’attributo X in r1 e la relazione r2  il join ha cardinalita’ pari alla cardinalita’ di r1 (|r1|). CASO SPECIALE 3 REPARTI PAZIENTI CodiceRep NrLetti Primario A3 20 Alberti B1 10 Gigli Id Nome CodiceRep 123 Rossi A3 345 Bianchi 167 Verdi B1 Id Nome Codice Rep NrLetti Primario 123 Rossi A3 20 Alberti 345 Bianchi 167 Verdi B1 10 Gigli

Algebra Relazionale Se le due relazioni r1 ed r2 non hanno attributi in comune  la cardinalita’ del join e’ pari a quella del prodotto cartesiano tra r1 ed r2 (|r1| *|r2|). IMPIEGATI CASO SPECIALE 4 Id Nome Ufficio 123 Rossi A 345 Bianchi 167 Verdi B Id Nome Ufficio Codice Telefono 123 Rossi A 20-21-216 C 20-21-218 345 Bianchi 167 Verdi B UFFICI Codice Telefono A 20-21-216 C 20-21-218

Algebra Relazionale Il join naturale dispone di alcune proprieta’ algebriche interessanti: Il join e’ commutativo: Il join e’ associativo: Nel caso di join n-ari: Q. Dimostrazione?

Algebra Relazionale E’ possibile stabilire una corrispondenza tra query SQL ed espressioni in algebra relazionale… Schema generale (tralasciando le ridenominazioni) SELECT A1, A2, … An FROM T1, T2, … Tm WHERE Condizione

Algebra Relazionale Dato il seguente schema: IMPIEGATI(Codice, Nome, Cognome, Livello) STIPENDI (LivelloQualifica, Retribuzione) determinare la retribuzione degli impiegati che si chiamano “Mario”. SELECT RETRIBUZIONE FROM IMPIEGATI, STIPENDI WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA))

Algebra Relazionale Dato il seguente schema: IMPIEGATI(Codice, Nome, Cognome, Livello) STIPENDI (LivelloQualifica, Retribuzione) determinare la retribuzione MEDIA degli impiegati che si chiamano “Mario”. SELECT AVG(RETRIBUZIONE) FROM IMPIEGATI, STIPENDI WHERE ((NOME=“MARIO”) AND (LIVELLO=LIVELLOQUALIFICA)) In algebra relazionale? Non si puo’ esprimere …

Algebra Relazionale Il theta-join e’ un operatore derivato, espresso come un join naturale seguito da un operatore di selezione. Theta-join: F e’ una condizione utilizzabile in una selezione. r1 ed r2 devono avere schemi diversi, ossia non devono avere attributi in comune.

Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI Codice Partenza Arrivo AZ123 Roma Parigi AF345 Milano Boston AF167 Londra Modello NrPosti Smoking B747 250 NO MD80 120 Codice Partenza Arrivo Modello NrPosti Smoking AZ123 Roma Parigi B747 250 NO AF345 Milano Boston AF167 Londra

Algebra Relazionale Un esempio di theta-join con condizione di selezione (NrPosti>150). VOLI AEREI Codice Partenza Arrivo Modello AZ123 Roma Parigi B747 AF345 Milano Boston MD80 AF167 Londra B737 Modello NrPosti Smoking B747 250 NO MD80 120 ???, Errore, il theta-join assume che le tue relazioni coinvolte abbiano schemi distinti

Algebra Relazionale L’ equi-join e’ un theta-join, in cui la condizione di selezione e’ una congiunzione di atomi di uguaglianza. Equi-join: F e’ una congiunzione di atomi. Ogni atomo e’ un’uguaglianza, tra due attributi (A,B) oppure tra un attributo ed una costante (d) nel suo dominio.

Algebra Relazionale Esempio di equi-join … Codice Partenza Arrivo VOLI AEREI Codice Partenza Arrivo Modello AZ123 Roma Parigi B747 AF345 Milano Boston MD80 AF167 Londra B737 Codice NrPosti Smoking B747 250 NO MD80 120 Codice Partenza Arrivo Modello NrPosti Smoking AZ123 Roma Parigi B747 250 NO AF345 Milano Boston MD80 120

Algebra Relazionale Il join naturale di tue relazioni r1 ed r2 puo’ essere espresso mediante gli operatori di selezione, equi-join e ridenominazione. Es. date 2 relazioni: r1(ABC), r2(BCD) Step1: Ridenominazione Step2: Equi-join Step3: Proiezione

Algebra Relazionale Nel join naturale, non tutte le tuple di una relazione contribuiscono al risultato finale … IMPIEGATI SEDI Codice Nome Sede 123 Rossi Bologna 345 Bianchi Milano 167 Verdi Parma 189 Rosati Palermo Sede Mansione Bologna Sviluppo Milano Testing } Queste tuple non appaiono nel risultato finale (dangling values)!! Id Nome Sede Mansione 123 Rossi Bologna Sviluppo 345 Bianchi Milano Testing

Algebra Relazionale Possono esistere casi in cui si vorrebbero includere anche le dangling tuple nel risultato finale… PAZIENTI MEDICI_BOLOGNA Codice Nome Cognome Medico 123 Rossi Bologna MB124 345 Bianchi Milano VB34 167 Verdi Parma 189 Rosati Palermo MR56 Codice Medico Nome Cognome MB124 Marco Bianchi VB34 Valerio Vorrei includere nel risultato finale tutte le informazioni sui pazienti (e relativi medici) …

Algebra Relazionale Questo valore non compare in MEDICI_BOLOGNA Codice PAZIENTI MEDICI_BOLOGNA Codice Nome Cognome Medico 123 Rossi Bologna MB124 345 Bianchi Milano VB34 167 Verdi Parma 189 Rosati Palermo MR56 Codice Medico Nome Cognome MB124 Marco Bianchi VB34 Valerio Questo valore non compare in MEDICI_BOLOGNA Codice Nome Cognome Medico 123 Rossi Bologna MB124 Marco Bianchi 345 Milano VB34 Valerio 167 Verdi Parma

Algebra Relazionale L’outer-join consente di far apparire le tuple dangling nel risultato finale, completando le informazioni mancanti con valori NULL. Tre varianti dell’outer-join: Left join  completamento dell’operando sx. Right join  completamento dell’operando dx. Full Join  completamento di entrambi gli operandi.

Algebra Relazionale Esempio1: Left outer-join … Codice Nome Sede 123 IMPIEGATI SEDI Codice Nome Sede 123 Rossi Bologna 345 Bianchi Milano 167 Verdi Parma 189 Rosati Palermo Sede Mansione Bologna Sviluppo Milano Testing Venezia Direzione Codice Nome Sede Mansione 123 Rossi Bologna Sviluppo 345 Bianchi Milano Testing 167 Verdi Parma NULL 189 Rosati Palermo

Algebra Relazionale Esempio2: Right outer-join … Codice Nome Sede 123 IMPIEGATI SEDI Codice Nome Sede 123 Rossi Bologna 345 Bianchi Milano 167 Verdi Parma 189 Rosati Palermo Sede Mansione Bologna Sviluppo Milano Testing Venezia Direzione Codice Nome Sede Mansione 123 Rossi Bologna Sviluppo 345 Bianchi Milano Testing NULL Venezia Direzione

Algebra Relazionale Esempio3: Full outer-join … Sede Mansione Bologna SEDI IMPIEGATI Sede Mansione Bologna Sviluppo Milano Testing Venezia Direzione Codice Nome Sede 123 Rossi Bologna 345 Bianchi Milano 167 Verdi Parma 189 Rosati Palermo Codice Nome Sede Mansione 123 Rossi Bologna Sviluppo 345 Bianchi Milano Testing 167 Verdi Parma NULL 189 Rosati Palermo Venezia Direzione

Algebra Relazionale Come in SQL, e’ possibile definire delle viste, sotto forma di interrogazioni dell’algebra relazionale cui si assegna un nome. Le viste possono essere usate in altre interrogazioni, per semplificarne la scrittura. Esempio di vista con nome IMPIEGATI

Algebra Relazionale L’algebra relazionale consente di creare interrogazioni equivalenti tra loro. L’equivalenza puo’ essere: Dipendente dallo schema Assoluta (per ogni schema)  Se E1=E2 per ogni istanza r dello schema R

Algebra Relazionale Esempio di uguaglianza dipendente dallo schema! Es. L’uguaglianza funziona sullo schema seguente: R1=VOLI(Codice, AeroportoArrivo, OraArrivo, OraPartenza, Vettore) R2=AEREI(Vettore, NumPasseggeri) … Ma che accade se le due relazioni coinvolte hanno altri attributi in comune oltre a quelli che compaiono in A?

Algebra Relazionale Matricola Nome Cognome CdL 01212 Marco Rossi STUDENTI ANAGRAFICA Matricola Nome Cognome CdL 01212 Marco Rossi Fisica 02121 Michele Bianchi Informatica 43242 Giovanna Verdi Chimica 56776 Daniele Rosati Nome Cognome CF Data Michele Rossi MR233G 03/01/1990 Marchi MM768H 06/11/1992 Giovanna Verdi GV1111J 05/11/1993 Bianchini GB3133J 23/06/1988 Nome CdL Data Michele Informatica 03/01/1990 06/11/1992 Giovanna Chimica 05/11/1993 Fisica 23/06/1988 Nome CdL Data Giovanna Chimica 05/11/1993

Algebra Relazionale Uguaglianze a livello di schema … Atomizzazione delle selezioni: Idempotenza delle proiezioni: Selezione anticipata: (F fa riferimento solo ad attributi di E2) Inglobamento di una selezione:

Algebra Relazionale Uguaglianze a livello di schema (continua)… Commutativita della selezione: (F deve riferirsi solo ad attributi in Y) Commutatitvita del join: Associtativita’ del join:

Algebra Relazionale Uguaglianze a livello di schema (continua) … Proiezione anticipata: (E1 ed E2 definite su X1 ed X2. Y2 deve contenere l’intersezione di X1 ed X2.) Proprieta’ distributive della selezione e proiezione:

Algebra Relazionale Q. Come si dimostra se un’uguaglianza a livello di schema e’ valida? Verificare l’opposto e’ facile  Basta trovare un esempio (schema/istanza) su cui l’uguaglianza non vale! Se non ci sono assunzioni sulla struttura di E1, E2, ed A, l’uguaglianza sopra e’ FALSA  CONTROESEMPIO: E1=IMPIEGATI(Codice, Stipendio, Sede) E2=SEDI(Citta, Mansione) A=Stipendio F: (Sede=Citta)

Algebra Relazionale Q. Come si dimostra se un’uguaglianza a livello di schema e’ valida? Es. Dimostrare che: Occorre dimostrare che: SCHEMA DI DIMOSTRAZIONE

Esempio di ottimizzazione di query Algebra Relazionale Esempio di ottimizzazione di query Dato il seguenti schema: VOLI(Codice, CittaPartenza, CittaArrivo, Vettore) AEREI(Modello, NrPosti, Smoking) Q. Determinare i modelli degli aerei in partenza da Milano con meno di 100 passeggeri.

Esempio di ottimizzazione di query Algebra Relazionale Esempio di ottimizzazione di query 1. Atomizzazione delle selezioni. 2. Anticipazione della selezione rispetto al join 3. Inglobamento della selezione nel join

Esempio di ottimizzazione di query Algebra Relazionale Esempio di ottimizzazione di query 4. Anticipazione della proiezione. Q. E’ possibile ottimizzare ulteriormente l’interrogazione?