ALGEBRA RELAZIONALE

of 122 /122
ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

Embed Size (px)

description

ALGEBRA RELAZIONALE. Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i dati E’ importante considerare linguaggi per la specifica di operazioni sui dati stessi, che siano legati al modello dei dati scelto ( modello relazionale ). - PowerPoint PPT Presentation

Transcript of ALGEBRA RELAZIONALE

  • ALGEBRA RELAZIONALE

    Algebra Relazionale

  • Algebra Relazionale*Le basi di dati rappresentano le informazioni di interesse per applicazioni che gestiscono i datiE importante considerare linguaggi per la specifica di operazioni sui dati stessi, che siano legati al modello dei dati scelto (modello relazionale)

    Algebra Relazionale

  • Algebra Relazionale*Linguaggi per basi di datioperazioni sullo schemaDDL: data definition language per definire lo schemaVDL: view definition language per definire le viste dutenteoperazioni sui datiDML: data manipulation languageinterrogazione ("query")inserimento, cancellazione e aggiornamento dei dati

    Algebra Relazionale

  • Algebra Relazionale*Linguaggi per linterrogazioneUna base di dati richiede un insieme di operazioni che consentano allutente di specificare le richieste di recupero fondamentaliLe operazioni di questo tipo producono nuove relazioni, sulle quali ulteriormente possibile applicare operazioni

    Algebra Relazionale

  • Algebra Relazionale*Linguaggi di interrogazioneper basi di dati relazionaliDichiarativi (di alto livello)le espressioni specificano le propriet del risultato ("che cosa")Procedurali (di basso livello)specificano le modalit di generazione del risultato ("come")

    Algebra Relazionale

  • Algebra Relazionale*Linguaggi di interrogazioneAlgebra relazionale: procedurale (teorico)Calcolo relazionale: dichiarativo (teorico)SQL (Structured Query Language): combina gli aspetti dichiarativi del calcolo e quelli procedurali dellalgebra (linguaggio reale)

    Algebra Relazionale

  • Algebra Relazionale*Algebra relazionaleInsieme di operatori, definiti su relazioni, che producono ancora relazioni come risultatiinsiemistici: unione, intersezione, differenzaspecifici: ridenominazione, selezione, proiezionejoin: join naturale, prodotto cartesiano, theta-joinraggruppamento: divisione

    Algebra Relazionale

  • Algebra Relazionale*Operatori insiemisticile relazioni sono insiemii risultati debbono essere relazioni- sensato applicare le operazioni insiemistiche classiche di unione,intersezione, differenza- possibile applicare solo a relazioni definite sugli stessi attributi

    Algebra Relazionale

  • Algebra Relazionale*LaureatiMatricola74329824Et5445NomeNeriVerdi727442RossiQuadriMatricola743298249297Et544533NomeNeriVerdiNeriLaureati QuadriUnione

    Algebra Relazionale

  • Algebra Relazionale*LaureatiMatricola74329824Et5445NomeNeriVerdiLaureati QuadriIntersezione

    Algebra Relazionale

  • Algebra Relazionale*LaureatiLaureati QuadriDifferenza

    Algebra Relazionale

  • Algebra Relazionale*Paternit Maternit?? Una unione sensata ma impossibile

    Algebra Relazionale

  • Algebra Relazionale*Ridenominazioneoperatore unario"modifica lo schema" lasciando inalterata l'istanza dell'operando, cambia solo il nome degli attributi

    Algebra Relazionale

  • Algebra Relazionale*Ridenominazione: definizione formaleSiano R una relazione su X, e Y un altro insieme di attributi con la stessa cardinalitX = {A1,. Ak}Y = {B1,. Bk}La ridenominazione A1,. Ak B1,. Bk (R)contiene una ennupla t per ogni ennupla t in R tale che:t una ennupla su Yt[Bi]=t[Ai], per ogni i=1,,k

    Algebra Relazionale

  • Algebra Relazionale*Paternit Genitore Padre (Paternit) Genitore

    Algebra Relazionale

  • Algebra Relazionale* Genitore Padre (Paternit) Genitore Madre (Maternit)

    Algebra Relazionale

  • Algebra Relazionale* Genitore Padre (Paternit) Genitore Madre (Maternit) Genitore Padre (Paternit) Genitore Madre (Maternit)

    Algebra Relazionale

  • Sede, Retribuzione Ufficio, Stipendio (Impiegati) Sede, Retribuzione Fabbrica, Salario (Operai)

  • Algebra Relazionale*Selezioneoperatore unario su una tabellaproduce un risultato cheha lo stesso schema della relazione di partenza (colonne della tabella)contiene un sottoinsieme delle ennuple dell'operando (righe della tabella),quelle che soddisfano una condizione

    Algebra Relazionale

  • Algebra Relazionale*Selezione

    ABC

    ABC

    Algebra Relazionale

  • Algebra Relazionale*Impiegati impiegati che: guadagnano pi di 50 guadagnano pi di 50 e lavorano a Milanohanno lo stesso nome della filiale presso cui lavorano

    Algebra Relazionale

  • Algebra Relazionale*Selezione, sintassi e semanticasintassi Condizione (Operando)Condizione: espressione booleana Operando: una espressione dellalgebra relazionalesemanticail risultato una relazione sugli stessi attributi che contiene le ennuple dell'operando che soddisfano la condizione

    Algebra Relazionale

  • Algebra Relazionale*Condizione di selezioneF formula proposizionale formata da operatori booleani: (AND), (OR), (NOT) condizioni atomiche: termini che possono contenereconfronti fra attributi, o fra attributi e costanti. Hannoforma: AJB oppure AJc dove J operatore di confronto (=, , >,
  • Algebra Relazionale*Condizioni di selezione, esempiEsempi:(Stipendio > 50)Filiale='Milano'Cognome = Filiale(Stipendio > 50) AND (Filiale='Milano')NOT (Cognome='Neri')

    Algebra Relazionale

  • Algebra Relazionale*impiegati che guadagnano pi di 50 Stipendio > 50 (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*impiegati che guadagnano pi di 50 e lavorano a Milano Stipendio > 50 AND Filiale = 'Milano' (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*impiegati che hanno lo stesso nome della filiale presso cui lavorano Cognome = Filiale(Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*Osservazioniloperazione di selezione commutativa ( (R)) = ( (R)) = AND (R) il numero delle t-uple della relazione R dopo lapplicazione di una selezione minore o uguale al numero delle t-uple di R| (R) | | R |

    Algebra Relazionale

  • Algebra Relazionale*Selezione con valori nulli Et > 40 (Impiegati) la condizione atomica vera solo per valori non nulli

    Algebra Relazionale

  • Algebra Relazionale*Un risultato non desiderabile Et>30 (Persone) Et30 (Persone) PersonePerch? Perch le selezioni vengono valutate separatamente!Ma anche Et>30 Et30 (Persone) PersonePerch? Perch anche le condizioni atomiche vengono valutate separatamente!

    Algebra Relazionale

  • Algebra Relazionale* Et > 40 (Impiegati)la condizione atomica vera solo per valori non nulliper riferirsi ai valori nulli esiste la apposita di condizione:IS NULL

    Algebra Relazionale

  • Algebra Relazionale*A questo punto: Et>30 (Persone) Et30 (Persone) Et IS NULL (Persone) = Et>30 Et30 (Et IS NULL) (Persone) = Persone

    Algebra Relazionale

  • Algebra Relazionale*Logica con il valore NULLOltre ai valori di verit Vero (V) e Falso (F), si introduce NULL (?)

    NOT ( A IS NULL) si scrive anche A IS NOT NULL

    Algebra Relazionale

  • Algebra Relazionale*Impiegati (Et > 40) OR (Et IS NULL) (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*Selezione e proiezioneoperatori "ortogonali"selezione:decomposizione orizzontaleproiezione:decomposizione verticale

    Algebra Relazionale

  • Algebra Relazionale*Proiezioneoperatore unario su una tabellaproduce un risultato cheha parte degli attributi della tabellacontiene ennuple (righe) cui contribuiscono tutte le ennuple della tabella iniziale

    Algebra Relazionale

  • Algebra Relazionale*per tutti gli impiegati:matricola e cognomecognome e filiale

    Algebra Relazionale

  • Algebra Relazionale*Proiezione, sintassi e semanticasintassi (Operando)

    un elenco di attributi di OperandoOperando una espressione nellalgebra relazionalesemanticail risultato contiene le ennuple ottenute da tutte le ennuple dell'operando ristrette agli attributi nella lista

    Algebra Relazionale

  • Algebra Relazionale*matricola e cognome di tutti gli impiegati Matricola, Cognome (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*cognome e filiale di tutti gli impiegati Cognome, Filiale (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*Cardinalit delle proiezioniuna proiezionecontiene al pi tante ennuple quante l'operandopu contenerne di meno

    se X una superchiave di R, allora X(R) contiene esattamente tante ennuple quante R

    Algebra Relazionale

  • Algebra Relazionale*Selezione e proiezioneCombinando selezione e proiezione, possiamo estrarre interessanti informazioni da una relazione

    Cond ( A,B,C (R) ) = ( A,B,C Cond (R) ) ?Sono commutative a certe condizioni !

    Algebra Relazionale

  • Algebra Relazionale*matricola e cognome degli impiegati che guadagnano pi di 50 Stipendio > 50 (Impiegati) Matricola,Cognome ( )

    Algebra Relazionale

  • Algebra Relazionale*combinando selezione e proiezione, possiamo estrarre informazioni da una relazionenon possiamo per correlare informazioni presenti in relazioni diverse

    Algebra Relazionale

  • Algebra Relazionale*Joinil join l'operatore pi interessante dell'algebra relazionalepermette di correlare dati in relazioni diversesfrutta la caratteristica fondamentale del modello relazionale, che quella di essere basato su valori

    Algebra Relazionale

  • Idea del join naturale

    matricolacognomedata_nasc2021Rossi1-3-19752424Bianchi 23-3-19743445Neri2-2-1975

    matricolacorsovoto2021Basi dati282021Calcolo253445Algebra30

    matricolacognomedata_nasccorsovoto2021Rossi1-3-1975Basi dati282021Rossi1-3-1975Calcolo253545Neri2-2-1975Algebra30

    2021Rossi1-3-1975Basi dati28

    2021Rossi1-3-1975

    2021Basi dati28

    2021Rossi1-3-1975Calcolo25

    2021Rossi1-3-1975

    2021Calcolo25

    3445Neri2-2-1975

    3445Algebra30

    3445Neri2-2-1975Algebra30

  • Algebra Relazionale*Join naturaleoperatore binario (generalizzabile a pi relazioni)produce un risultato sull'unione degli attributi degli operandi (schema)con ennuple costruite ciascuna a partire da una ennupla di ognuno degli operandi (istanza)

    Algebra Relazionale

  • Algebra Relazionale*Join, sintassi e semanticaR1(X1), R2(X2)R1 R2 una relazione su X1X2

    { t su X1 X2 : esistono t1R1e t2R2con t[X1] =t1 [X1] e t[X2] =t2 [X2] }

    Algebra Relazionale

  • Algebra Relazionale*Join, proprietIl join naturale commutativo: R1 R2 = R2 R1Il join naturale associativo: ( R1 R2 ) R3 = R1 ( R2 R3 )

    Algebra Relazionale

  • MatricolaVotoCorso345630043456240292832801esami65542601(studenti esami) ((studenti esami) corsi )

  • ogni ennupla contribuisce al risultato:join completo

  • Algebra Relazionale*ACUn join non completo

    Algebra Relazionale

  • Algebra Relazionale*Un join vuoto

    Algebra Relazionale

  • Algebra Relazionale*Un join completo, con n x m ennupleOgni n-upla di ciascuna tabella combinabile con tutte le n-uple dellaltro

    Algebra Relazionale

  • Algebra Relazionale*Cardinalit del joinIl join di R1(A) e R2(B) contiene un numero di ennuple compreso fra zero e il prodotto di |R1| e |R2|

    Algebra Relazionale

  • Algebra Relazionale*

    se il join coinvolge una chiave di R1 allora il numero di ennuple compreso tra zero e |R2|NeriBBianchiVerdiBianchi

    Algebra Relazionale

  • Algebra Relazionale*

    se il join coinvolge una chiave di R1 e c un vincolo di integrit allora il numero di ennuple compreso uguale a |R2|NeriBBianchi

    Algebra Relazionale

  • Algebra Relazionale*Cardinalit del join, riepilogoR1(A,B) , R2 (B,C)in generale:0 |R1 R2| |R1| |R2| se B chiave in R10 |R1 R2| |R2|se B chiave in R1 ed esiste vincolo di integrit referenziale fra B (in R2) e R1|R1 R2| = |R2|

    Algebra Relazionale

  • Algebra Relazionale*Join naturale e valori nulli

    Algebra Relazionale

  • Algebra Relazionale*ACJoin, una difficoltalcune ennuple non contribuiscono al risultato: vengono "tagliate fuori'': si possono omettere informazioni importanti

    Algebra Relazionale

  • Algebra Relazionale*Join esternoIl join esterno estende, con valori nulli, le ennuple che verrebbero tagliate fuori da un join (naturale)esiste in tre versioni:sinistro, destro, completo

    Algebra Relazionale

  • Algebra Relazionale*Join esternosinistro: prevede che tutte le ennuple del primo operando, estendendole con valori nulli, se necessario, diano un contributo al joindestro: ... del secondo operando ...completo: di entrambi gli operandi OSSERVAZIONE: il Join esterno non commutativo

    Algebra Relazionale

  • Impiegati LEFT RepartiC

  • Impiegati RIGHT RepartiA

  • Impiegati FULL Reparti

  • MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04ChimicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624029283300165542601esamiEsercizio 1 Determinare i corsi tenuti dal Prof. Mari Titolo ( Docente=Mari(corsi) )

  • MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04ChimicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624029283300165542601esamiEsercizio 2 Determinare nome, cognome e numero di matricola degli studenti che hanno ricevuto la votazione di 30

    Nome, Cognome, Matr ( Voto=30( esami studenti ))

  • MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04ChimicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624029283300165542601esamiEsercizio 3 Determinare il nome e il cognome degli studenti che hanno sostenuto l'esame di Analisi

  • Algebra Relazionale*MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04ChimicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624019283300165542601esamiEsercizio 4 Determinare nome, cognome ed eventuali esami sostenuti da tutti gli studenti del corso di laurea che hanno pi di 25 anni.

    Algebra Relazionale

  • Algebra Relazionale*MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04ChimicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624019283300165542601esamiEsercizio 5 Determinare nome, cognome degli studenti del corso di laurea che non hanno sostenuto alcun esame.

    Algebra Relazionale

  • Join e proiezioni

  • Proiezioni e join

  • Algebra Relazionale*Join e proiezioniR 1(X1), R 2(X2)

    X1 (R 1 R2 ) R 1

    R(X), X = X1 X2

    ( X1 (R)) ( X2 (R)) R

    Algebra Relazionale

  • Algebra Relazionale*Prodotto cartesianoChe cosa accade se si effettua un join naturale su relazioni senza attributi in comune?Prodotto cartesiano tra le due relazionicontiene sempre un numero di ennuple pari al prodotto delle cardinalit degli operandi (le ennuple sono tutte combinabili )

    Algebra Relazionale

  • Impiegati Reparti

  • Algebra Relazionale*Il prodotto cartesiano, in pratica, ha senso solo se seguito da selezione:Condizione (R1 R2)L'operazione viene chiamata theta-join e indicata con: R1 Cond R2

    Algebra Relazionale

  • Algebra Relazionale*Perch "theta-join"?La condizione C spesso una congiunzione (AND) di atomi di confronto A1 A2 dove uno degli operatori di confronto (=, >,
  • Impiegati Reparto=Codice Reparti Equi-join

  • Algebra Relazionale*Impiegati Reparti

    Algebra Relazionale

  • Algebra Relazionale*Join naturale ed equi-joinImpiegatiRepartoCapoRepartiImpiegati Reparti Impiegato,Reparto,Capo ( ) Codice Reparto (Reparti)Impiegati Reparto=Codice( ) )Producono lo stesso risultato !

    Algebra Relazionale

  • Algebra Relazionale*prodotto cartesiano o join naturale?Prodotto cartesiano e Join naturale possono essere ottenuti luno a partire dallaltroR(A,B), S(B,C)Prodotto cartesiano :R S = A,B,C (R.B=S.B (R S) )Join naturale :R S = ( BB (R) S)

    Algebra Relazionale

  • Operatore di divisionetrovare gli studenti che hanno sostenuto tutti gli esami del corso di laureaAlgebra Relazionale*MatrCognomeNomeData di nascitastudentiCodiceTitoloDocente01AnalisiMari02ChimicaMari04FisicaVerdicorsiCorso04esamiMatrVotoCodice34563004345624019283300165542601esami6554655428300204

    Algebra Relazionale

  • Algebra Relazionale*Corso04esamiMatrCodice345604345601928301655401Matr,Codice(esami)655465540204Codice010204Codice(corsi)Matr,Codice(esami) Codice(corsi) Matr6554R(XY) / S(X) una relazione su T(Y) tale che tT(Y) se e solo seesistono n-uple tR in R tali che:tR [Y]=ttR [X]=l per ogni n-unpla l di SSi considerano solo le righe della prima tabella che si combinano con tutte le righe della seconda tabella

    Algebra Relazionale

  • Algebra Relazionale*Un insieme completo di operazioni Teorema: Linsieme delle operazioni { , , , , - } un insieme completo.ESEMPIO R S=(R S) - (( R-S) ( S- R ))Join naturale = Prod. Cartesiano + Selezione + ProiezioneDivisione= Prodotto Cartesiano + Differenza + Proiezione

    Algebra Relazionale

  • Algebra Relazionale*Alcune operazioni in algebra relazionaleEsempio: qual la squadra prima in classifica? ClassificaSquadraPuntiInter36Juve34Siena40

    Algebra Relazionale

  • Algebra Relazionale*Ridenominazione + Join

    Squadra1Punti1Squadra2Punti2Siena40Siena 40Inter36Siena40Siena40Juve34Inter36Juve34..

    Algebra Relazionale

  • Algebra Relazionale*Selezione sulla condizione: (Punti1 Punti2) AND (Squadra1 Squadra2)Proiezione su Squadra1, Punti1Classifica 2

    Squadra1Punti1Squadra2Punti2Juve34Siena 40Inter36Siena40Juve34Inter36

    Squadra1Punti1Juve34Inter36

    Algebra Relazionale

  • Algebra Relazionale*Differenza tra la tabella Classifica e Classifica 2(dopo opportuna ridenominazione)ClassificaSquadraPuntiInter36Juve34Siena40Classifica 2

    SquadraPuntiSiena40

    Squadra1Punti1Juve34Inter36

    Algebra Relazionale

  • Algebra Relazionale*Chiusura transitivaSupervisione(Impiegato, Capo)Per ogni impiegato, trovare tutti i superiori (cio il capo, il capo del capo, e cosi' via)

    RossiNeriImpiegatoRossiNeriRossiNeriLupiMoriBruniCapoMoriBruniLupiBruniBruniBruniFalchiRossiNeriImpiegatoRossiNeriRossiNeriLupiMoriBruniSuperioreMoriBruniLupiBruniBruniBruniFalchi

    Algebra Relazionale

  • Algebra Relazionale*Chiusura transitiva, come si fa?Nell'esempio, basterebbe il join della relazione con se stessa, previa opportuna ridenominazioneMa:

    Algebra Relazionale

  • Algebra Relazionale*Chiusura transitiva, impossibile!Per ogni specifico livello possibile determinare tutti gli impiegati sorvegliati da un impegato a un certo livello, ma non quelli sorvegliati a tutti i livelliNon esiste in algebra la possibilit di esprimere l'interrogazione che, per ogni relazione binaria, ne calcoli la chiusura transitiva Per ciascuna istanza relazione, possibile calcolare la chiusura transitiva, ma con un'espressione ogni volta diversa: dipende dallistanza e non dallo schema!Immaginate una istanza di migliaia di tuple: quanti join servono?

    Algebra Relazionale

  • Algebra Relazionale*Interrogazioni in algebra relazionaleUna interrogazione su una base di dati una funzione che restituisce una relazione R su un insieme di attributi X.

    Algebra Relazionale

  • EsempiImpiegati Supervisione ImpiegatoCapo

  • Algebra Relazionale*Trovare matricola, nome, et e stipendio degli impiegati che guadagnano pi di 40 milioni

    Stipendio>40 (Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*Stipendio>40(Impiegati)

    Algebra Relazionale

  • Algebra Relazionale*Trovare matricola, nome ed et degli impiegati che guadagnano pi di 40 milioniMatricola, Nome, Et (Stipendio>40(Impiegati))

    Algebra Relazionale

  • Algebra Relazionale*Trovare le matricole dei capi degli impiegati che guadagnano pi di 40 milioni

    Capo (Supervisione Impiegato=Matricola ( Stipendio>40(Impiegati)))

    Algebra Relazionale

  • Algebra Relazionale*Trovare nome e stipendio dei capi degli impiegati che guadagnano pi di 40 milioni

    Nome,Stipendio (Impiegati Matricola=Capo Capo(Supervisione Impiegato=Matricola ( Stipendio>40(Impiegati))))

    Algebra Relazionale

  • Capo (Supervisione Impiegato=Matricola(Stipendio>40(Impiegati)))

    Capo569840768123

  • Algebra Relazionale*Impiegati Matricola=Capo Capo(Supervisione Impiegato=Matricola ( Stipendio>40(Impiegati))))

    Capo MatricolaNomeEtStipendio56985698Bianchi373840764076Mori455081238123Lupi4660

    Algebra Relazionale

  • Algebra Relazionale* Nome,Stipendio (Impiegati Matricola=Capo Capo(Supervisione Impiegato=Matricola (Stipendio>40(Impiegati))))

    Nome e stipendio dei capi di impiegati che guadagnano pi di 40 milioni

    NomeStipendioBianchi38Mori50Lupi60

    Algebra Relazionale

  • Algebra Relazionale*Trovare gli impiegati che guadagnano pi del proprio capo, mostrando matricola, nome e stipendio dell'impiegato e del capo

    Matr,Nome,Stip,MatrC,NomeC,StipC ( Stipendio>StipC( MatrC,NomeC,StipC,EtC Matr,Nome,Stip,Et(Impiegati) MatrC=Capo (Supervisione Impiegato=Matricola Impiegati)))

    Algebra Relazionale

  • Algebra Relazionale*Equivalenza di espressioni algebricheEspressioni E1 e E2 sono equivalenti per lo schema R, E1RE2 se E1(r) = E2(r)per ogni istanza r di R.Le due espressioni sono assolutamente equivalenti, E1E2 se E1 R E2 per ogni schema R.

    Algebra Relazionale

  • Algebra Relazionale*equivalenza assoluta: A,B( A>0(R)) A>0 ( A , B(R))

    equivalenza: A,B(R1) A ,C(R2) R A ,B,C(R1 R2)

    vale solo per gli schemi R per cui lintersezione tra gli attributi di R1 e R2 uguale ad AESERCIZIO: trovare un controesempio

    Algebra Relazionale

  • Algebra Relazionale*Trasformazioni di equivalenzaDue espressioni E1 ed E2 equivalenti garantiscono lo stesso risultato, ma questo non significa che la scelta sia indifferente in termini di risorse necessarieScopi:trasformare le espressioni in modo semplice, affinch sia ridotto il numero delle operazioni da eseguireil costo di una interrogazione viene valutato in termini di dimensione dei risultati intermedi: in presenza di alternative si sceglie quella col costo minore.

    Algebra Relazionale

  • Algebra Relazionale*Trasformazioni di equivalenza (2)Operazioni che sostituiscono una espressione con unaltra ad essa equivalenteAtomizzazione delle selezioni F1F2(E) F1(F2(E)))Idempotenza delle proiezioni X (E) X ( X Y (E))Anticipazione della selezione rispetto al join F (E1 E2) E1 F (E2)se la condizione F fa riferimento solo ad attributi nella sottoespressione E2

    Algebra Relazionale

  • Algebra Relazionale*Inglobamento di una selezione in un prodotto cartesiano F (E1 E2) E1 F E2Distributivit della selezione rispetto all'unione F (E1 E2) F (E1) F (E2) Distributivit della proiezione rispetto all'unione X (E1 E2) X(E1) X (E2)Distributivit della selezione rispetto alla differenza F (E1 - E2) F (E1) - F (E2)

    Algebra Relazionale

  • Algebra Relazionale*Esercizio: Utilizzando le regole di trasformazione dimostrare che le due espressioni sono equivalenti Capo ( Matr=Imp Et < 30 (IMPIEGATI SUPERVISIONE))

    Capo (SUPERVISIONE Matr=Imp ( Et < 30 (IMPIEGATI))

    Algebra Relazionale

  • Algebra Relazionale*Trovare i numeri di matricola dei capi di impiegati con meno di 30 anni Capo ( Matr=Imp Et < 30 (IMPIEGATI SUPERVISIONE)) Per calcolare pochi valori effettua un prodotto cartesiano (molto costoso)

    Capo ( Et < 30 ( Matr=Imp (IMPIEGATI SUPERVISIONE))) Capo ( Et

  • Algebra Relazionale*

    Capo ( Et

  • Algebra Relazionale*Viste (relazioni derivate)Spesso utile mettere a disposizione degli utenti rappresentazioni diverse per gli stessi dati (schema esterno)Relazioni derivate:relazioni il cui contenuto funzione del contenuto di altre relazioni (definito per mezzo di interrogazioni)Relazioni di base: contenuto autonomo (quelle che costituiscono effettivamente la base di dati)

    Algebra Relazionale

  • Architettura standard (ANSI/SPARC)a tre livelli per DBMSutenteutenteutenteutenteutente

  • Algebra Relazionale*Viste virtuali e materializzateDue tipi di relazioni derivate:viste materializzaterelazioni virtuali (o viste)

    Algebra Relazionale

  • Algebra Relazionale*Viste materializzaterelazioni derivate effettivamente memorizzate nella base di dativantaggi: immediatamente disponibili per le interrogazionisvantaggi: ridondantiappesantiscono gli aggiornamenti (il loro contenuto deve essere mantenuto allineato con quello delle relazioni da cui derivano)non sono supportate dai DBMS commerciali

    Algebra Relazionale

  • Algebra Relazionale*Visterelazioni virtuali (o viste): non sono memorizzate nella base di datisono supportate dai DBMS commercialiuna interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) vengono definite nei sistemi relazionali per mezzo di espressioni nel linguaggio di interrogazione

    Algebra Relazionale

  • Algebra Relazionale*Viste, esempioUna vista:Supervisione = Impiegato,Capo (Afferenza Direzione)

    Algebra Relazionale

  • Algebra Relazionale*Interrogazioni sulle visteSono eseguite sostituendo alla vista la sua definizione: Capo='Leoni' (Supervisione)viene eseguita come Capo='Leoni'( Impiegato,Capo (Afferenza Direzione))

    Algebra Relazionale

  • Algebra Relazionale*Viste, motivazioniSchema esterno: ogni utente vede solo ci che gli interessa e nel modo in cui gli interessa, senza essere distratto dal restoci che e' autorizzato a vedere (autorizzazioni)Strumento di programmazione: si pu semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetuteUtilizzo di programmi esistenti su schemi ristrutturati.Invece:L'utilizzo di viste non influisce sull'efficienza delle interrogazioni

    Algebra Relazionale

  • Algebra Relazionale*Viste come strumento di programmazioneTrovare gli impiegati che hanno lo stesso capo di RossiSenza vista:Impiegato (Afferenza Direzione) ImpR,RepR Imp,Reparto ( Impiegato='Rossi' (Afferenza Direzione)) Con la vista: Impiegato (Supervisione) ImpR,RepR Imp,Reparto (Impiegato='Rossi' (Supervisione))

    Algebra Relazionale

    **************************************************************************************************************************