Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoNestore Bruni Modificato 9 anni fa
1
ALGEBRA RELAZIONALE
2
Algebra Relazionale2 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)
3
Algebra Relazionale3 Linguaggi per basi di dati operazioni sullo schema DDL: data definition language per definire lo schema VDL: view definition language per definire le viste d’utente operazioni sui dati DML: data manipulation language interrogazione ("query") inserimento, cancellazione e aggiornamento dei dati
4
Algebra Relazionale4 Linguaggi per l’interrogazione Una base di dati richiede un insieme di operazioni che consentano all’utente di specificare le richieste di recupero fondamentali Le operazioni di questo tipo producono nuove relazioni, sulle quali è ulteriormente possibile applicare operazioni
5
Algebra Relazionale5 Linguaggi di interrogazione per basi di dati relazionali Dichiarativi (di alto livello) le espressioni specificano le proprietà del risultato ("che cosa") Procedurali (di basso livello) specificano le modalità di generazione del risultato ("come")
6
Algebra Relazionale6 Linguaggi di interrogazione Algebra relazionale: procedurale (teorico) Calcolo relazionale: dichiarativo (teorico) SQL (Structured Query Language): combina gli aspetti dichiarativi del calcolo e quelli procedurali dell’algebra (linguaggio reale)
7
Algebra Relazionale7 Algebra relazionale Insieme di operatori, definiti su relazioni, che producono ancora relazioni come risultati insiemistici: unione, intersezione, differenza specifici: ridenominazione, selezione, proiezione join: join naturale, prodotto cartesiano, theta-join raggruppamento: divisione
8
Algebra Relazionale8 Operatori insiemistici le relazioni sono insiemi i risultati debbono essere relazioni - è sensato applicare le operazioni insiemistiche classiche di unione,intersezione, differenza - è possibile applicare solo a relazioni definite sugli stessi attributi
9
Algebra Relazionale9 Laureati Matricola 7432 9824 Età 54 45 Nome Neri Verdi 727442Rossi Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome 743254Neri 982445Verdi 929733Neri 727442Rossi 743254Neri 982445Verdi 727442Rossi 743254Neri 982445Verdi 929733Neri 743254Neri 982445Verdi 929733Neri 727442Rossi Unione
10
Algebra Relazionale10 Laureati Matricola 7432 9824 Età 54 45 Nome Neri Verdi 727442Rossi Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Neri Laureati Quadri MatricolaEtàNome 743254Neri 982445Verdi 743254Neri 982445Verdi 743254Neri 982445Verdi 743254Neri 982445Verdi Intersezione
11
Algebra Relazionale11 Laureati MatricolaEtàNome 743254Neri 982445Verdi 727442Rossi Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Neri Laureati – Quadri MatricolaEtàNome 743254Neri 982445Verdi 727442Rossi 743254Neri 982445Verdi 727442Rossi Differenza
12
Algebra Relazionale12 Paternità PadreFiglio AdamoCaino AbramoIsacco AdamoAbele Maternità MadreFiglio EvaSet SaraIsacco EvaAbele Paternità Maternità ?? Una unione sensata ma impossibile
13
Algebra Relazionale13 Ridenominazione operatore unario "modifica lo schema" lasciando inalterata l'istanza dell'operando, cambia solo il nome degli attributi
14
Algebra Relazionale14 Ridenominazione: definizione formale Siano R una relazione su X, e Y un altro insieme di attributi con la stessa cardinalità X = {A 1,……. A k } Y = {B 1,……. B k } La ridenominazione A1,……. Ak B1,……. Bk (R) contiene una ennupla t’ per ogni ennupla t in R tale che: t’ è una ennupla su Y t’[B i ]=t[A i ], per ogni i=1,…,k
15
Algebra Relazionale15 Paternità PadreFiglio AdamoCaino AbramoIsacco AdamoAbele Genitore Padre (Paternità) PadreFiglio AdamoCaino AbramoIsacco AdamoAbele Genitore
16
Algebra Relazionale16 Paternità PadreFiglio AdamoCaino AbramoIsacco AdamoAbele Maternità MadreFiglio EvaSet SaraIsacco EvaAbele Genitore Padre (Paternità) Genitore Madre (Maternità) GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbele GenitoreFiglio EvaSet SaraIsacco EvaAbele
17
Algebra Relazionale17 Genitore Padre (Paternità) Genitore Madre (Maternità) GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbele GenitoreFiglio EvaSet SaraIsacco EvaAbele GenitoreFiglio AdamoCaino AbramoIsacco AdamoAbeleEvaSet SaraIsacco EvaAbele Genitore Padre (Paternità) Genitore Madre (Maternità)
18
Sede, Retribuzione Ufficio, Stipendio (Impiegati) Sede, Retribuzione Fabbrica, Salario (Operai) Impiegati Cognome Neri Rossi Ufficio Milano Roma Stipendio 64 55 Operai Cognome Verdi Bruni Fabbrica Latina Monza Salario 55 45 CognomeRetribuzioneSede Neri Rossi 64 55 Milano Roma Verdi Bruni Latina Monza 55 45
19
Algebra Relazionale19 Selezione operatore unario su una tabella produce un risultato che ha 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
20
Algebra Relazionale20 Selezione ABC ABC
21
Algebra Relazionale21 Impiegati CognomeFilialeStipendioMatricola NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553 impiegati che: guadagnano più di 50 guadagnano più di 50 e lavorano a Milano hanno lo stesso nome della filiale presso cui lavorano
22
Algebra Relazionale22 Selezione, sintassi e semantica sintassi Condizione (Operando) Condizione: espressione booleana Operando: una espressione dell’algebra relazionale semantica il risultato è una relazione sugli stessi attributi che contiene le ennuple dell'operando che soddisfano la condizione
23
Algebra Relazionale23 Condizione di selezione F formula proposizionale formata da operatori booleani: (AND), (OR), ¬ (NOT) condizioni atomiche: termini che possono contenere confronti fra attributi, o fra attributi e costanti. Hanno forma: A B oppure A c dove – operatore di confronto (=, , >, <, , ) – A, B attributi in X – c costante compatibile con dominio di attributo (A) con cui c viene confrontata
24
Algebra Relazionale24 Condizioni di selezione, esempi Esempi: (Stipendio > 50) Filiale='Milano' Cognome = Filiale (Stipendio > 50) AND (Filiale='Milano') NOT (Cognome='Neri')
25
Algebra Relazionale25 CognomeFilialeStipendioMatricola NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553 Impiegati Milano 449553NeriNapoli645698 impiegati che guadagnano più di 50 Stipendio > 50 (Impiegati)
26
Algebra Relazionale26 Impiegati CognomeFilialeStipendioMatricola NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553 impiegati che guadagnano più di 50 e lavorano a Milano Stipendio > 50 AND Filiale = 'Milano' (Impiegati) RossiRoma557309 NeriNapoli645698 Milano 449553 NeriMilano645998
27
Algebra Relazionale27 Impiegati CognomeFilialeStipendioMatricola NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553 impiegati che hanno lo stesso nome della filiale presso cui lavorano Cognome = Filiale (Impiegati) NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553
28
Algebra Relazionale28 Osservazioni l’operazione di selezione è commutativa ( (R)) = AND (R) il numero delle t-uple della relazione R dopo l’applicazione di una selezione è minore o uguale al numero delle t-uple di R | (R) | | R |
29
Algebra Relazionale29 Selezione con valori nulli CognomeFilialeEtàMatricola NeriMilano455998 RossiRoma327309 BruniMilano NULL 9553 Impiegati Età > 40 (Impiegati) la condizione atomica è vera solo per valori non nulli
30
Algebra Relazionale30 Un risultato non desiderabile Età>30 (Persone) Età 30 (Persone) Persone Perché? Perché le selezioni vengono valutate separatamente! Ma anche Età>30 Età 30 (Persone) Persone Perché? Perché anche le condizioni atomiche vengono valutate separatamente!
31
Algebra Relazionale31 Età > 40 (Impiegati) la condizione atomica è vera solo per valori non nulli per riferirsi ai valori nulli esiste la apposita di condizione: IS NULL
32
Algebra Relazionale32 A questo punto: Età>30 (Persone) Età 30 (Persone) Età IS NULL (Persone) = Età>30 Età 30 (Età IS NULL) (Persone) = Persone
33
Algebra Relazionale33 Logica con il valore NULL Oltre ai valori di verità Vero (V) e Falso (F), si introduce NULL (?) NOT ( A IS NULL) si scrive anche A IS NOT NULL
35
Algebra Relazionale35 CognomeFilialeEtàMatricola NeriMilano455998 RossiRoma327309 BruniMilano NULL 9553 Impiegati NeriMilano455998 BruniMilano NULL 9553 (Età > 40) OR (Età IS NULL) (Impiegati) NeriMilano455998 BruniMilano NULL 9553
36
Algebra Relazionale36 Selezione e proiezione operatori "ortogonali" selezione: decomposizione orizzontale proiezione: decomposizione verticale
37
selezione proiezione
38
Algebra Relazionale38 Proiezione operatore unario su una tabella produce un risultato che ha parte degli attributi della tabella contiene ennuple (righe) cui contribuiscono tutte le ennuple della tabella iniziale
39
Algebra Relazionale39 Impiegati CognomeFilialeStipendioMatricola NeriMilano645998 NeriNapoli557309 RossiRoma645698 RossiRoma449553 per tutti gli impiegati: matricola e cognome cognome e filiale
40
Algebra Relazionale40 Proiezione, sintassi e semantica sintassi (Operando) è un elenco di attributi di Operando Operando è una espressione nell’algebra relazionale semantica il risultato contiene le ennuple ottenute da tutte le ennuple dell'operando ristrette agli attributi nella lista
41
Algebra Relazionale41 CognomeFilialeStipendioMatricola NeriMilano645998 NeriNapoli557309 RossiRoma645698 RossiRoma449553 matricola e cognome di tutti gli impiegati Matricola, Cognome (Impiegati)
42
Algebra Relazionale42 CognomeFilialeStipendioMatricola NeriMilano645998 NeriNapoli557309 RossiRoma645698 RossiRoma449553 cognome e filiale di tutti gli impiegati Cognome, Filiale (Impiegati)
43
Algebra Relazionale43 Cardinalità delle proiezioni una proiezione contiene al più tante ennuple quante l'operando può contenerne di meno se X è una superchiave di R, allora X (R) contiene esattamente tante ennuple quante R
44
Algebra Relazionale44 Selezione e proiezione Combinando 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 !
45
Algebra Relazionale45 CognomeFilialeStipendioMatricola NeriMilano645998 RossiRoma557309 NeriNapoli645698 Milano 449553 Milano 449553NeriNapoli645698 matricola e cognome degli impiegati che guadagnano più di 50 Stipendio > 50 (Impiegati) Matricola,Cognome ( )
46
Algebra Relazionale46 combinando selezione e proiezione, possiamo estrarre informazioni da una relazione non possiamo però correlare informazioni presenti in relazioni diverse
47
Algebra Relazionale47 Join il join è l'operatore più interessante dell'algebra relazionale permette di correlare dati in relazioni diverse sfrutta la caratteristica fondamentale del modello relazionale, che è quella di essere basato su valori
48
Idea del join naturale matricolacognomedata_nasc 2021Rossi1-3-1975 2424Bianchi23-3-1974 3445Neri2-2-1975 matricolacorsovoto 2021Basi dati28 2021Calcolo25 3445Algebra30 matricolacognomedata_nasccorsovoto 2021Rossi1-3-1975Basi dati28 2021Rossi1-3-1975Calcolo25 3545Neri2-2-1975Algebra30 2021Rossi1-3-1975Basi dati28 2021Rossi1-3-19752021Basi dati28 2021Rossi1-3-1975Calcolo25 2021Rossi1-3-1975 2021Calcolo25 3445Neri2-2-1975 3445Algebra30 3445Neri2-2-1975Algebra30
49
Algebra Relazionale49 Join naturale operatore 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)
50
Algebra Relazionale50 Join, sintassi e semantica R 1 (X 1 ), R 2 (X 2 ) R 1 R 2 è una relazione su X 1 X 2 { t su X 1 X 2 : esistono t 1 R 1 e t 2 R 2 con t[X 1 ] =t 1 [X 1 ] e t[X 2 ] =t 2 [X 2 ] }
51
Algebra Relazionale51 Join, proprietà Il join naturale è commutativo: R 1 R 2 = R 2 R 1 Il join naturale è associativo: ( R 1 R 2 ) R 3 = R 1 ( R 2 R 3 )
52
MatricolaCognomeNome 6554RossiMario 8765NeriPaolo 3456RossiMaria 9283VerdiLuisa studentiCorsoTitoloDocente 01AnalisiMario 02ChimicaBruni 04ChimicaVerdi corsi MatricolaVotoCorso 34563004 34562402 92832801 esami 65542601 (studenti esami) ((studenti esami) corsi )
53
AMori BBruni RepartoCapo RossiA NeriB BianchiB ImpiegatoReparto RossiAMori NeriBBruni ImpiegatoRepartoCapo BianchiBBruni RossiA NeriB BianchiB RossiA NeriB BianchiB AMori BBruni AMori BBruniB B ogni ennupla contribuisce al risultato: join completo
54
Algebra Relazionale54 NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni A C Un join non completo
55
Algebra Relazionale55 ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo DMori CBruni ImpiegatoRepartoCapo Un join vuoto
56
Algebra Relazionale56 RossiBMori NeriBMori ImpiegatoRepartoCapo BianchiBBruni RossiA NeriB ImpiegatoReparto RossiA NeriB RossiB NeriB AMori BBruni RepartoCapo AMori BBruni BMori BBruniB B RossiBBruni Un join completo, con n x m ennuple Ogni n-upla di ciascuna tabella è combinabile con tutte le n-uple dell’altro
57
Algebra Relazionale57 Cardinalità del join Il join di R 1 (A) e R 2 (B) contiene un numero di ennuple compreso fra zero e il prodotto di |R 1 | e |R 2 |
58
Algebra Relazionale58 ImpiegatoReparto RossiA NeriB BianchiB Rossi AMori ImpiegatoRepartoCapo Neri BBruni ImpiegatoCapo RossiMori NeriBruni Neri Bianchi se il join coinvolge una chiave di R 1 allora il numero di ennuple è compreso tra zero e |R 2 | Neri B Bianchi VerdiBianchi
59
Algebra Relazionale59 ImpiegatoReparto RossiA NeriB BianchiB Rossi AMori ImpiegatoRepartoCapo Neri BBruni ImpiegatoCapo RossiMori NeriBruni Neri Bianchi se il join coinvolge una chiave di R 1 e c’è un vincolo di integrità allora il numero di ennuple è compreso uguale a |R 2 | Neri B Bianchi
60
Algebra Relazionale60 Cardinalità del join, riepilogo R 1 (A,B), R 2 (B,C) in generale: 0 |R 1 R 2 | |R 1 | · |R 2 | se B è chiave in R 1 0 |R 1 R 2 | |R 2 | se B è chiave in R 1 ed esiste vincolo di integrità referenziale fra B (in R 2 ) e R 1 |R 1 R 2 | = |R 2 |
61
Algebra Relazionale61 Join naturale e valori nulli
62
Algebra Relazionale62 ImpiegatoReparto RossiA NeriB BianchiB RepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori A C Join, una difficoltà alcune ennuple non contribuiscono al risultato: vengono "tagliate fuori'': si possono omettere informazioni importanti
63
Algebra Relazionale63 Join esterno Il join esterno estende, con valori nulli, le ennuple che verrebbero tagliate fuori da un join (naturale) esiste in tre versioni: sinistro, destro, completo
64
Algebra Relazionale64 Join esterno sinistro: prevede che tutte le ennuple del primo operando, estendendole con valori nulli, se necessario, diano un contributo al join destro:... del secondo operando... completo: … di entrambi gli operandi … OSSERVAZIONE: il Join esterno non è commutativo
65
ImpiegatoReparto RossiA NeriB BianchiB Impiegati RepartoCapo BMori CBruni Reparti NeriBMori ImpiegatoRepartoCapo BianchiBMori Impiegati LEFT Reparti C RossiA NULL ARossi
66
ImpiegatoReparto RossiA NeriB BianchiB Impiegati RepartoCapo BMori CBruni Reparti NeriBMori ImpiegatoRepartoCapo BianchiBMori Impiegati RIGHT Reparti A NULL CBruni C
67
ImpiegatoReparto RossiA NeriB BianchiB Impiegati RepartoCapo BMori CBruni Reparti NeriBMori ImpiegatoRepartoCapo BianchiBMori Impiegati FULL Reparti NULL CBruni C ARossi A NULL
68
MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1976 3456RossiMaria01/02/1978 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04ChimicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 34562402 92833001 65542601 esami Esercizio 1 Determinare i corsi tenuti dal Prof. Mari Titolo ( Docente=‘Mari’ (corsi) )
69
MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1976 3456RossiMaria01/02/1978 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04ChimicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 34562402 92833001 65542601 esami Esercizio 2 Determinare nome, cognome e numero di matricola degli studenti che hanno ricevuto la votazione di 30 Nome, Cognome, Matr ( Voto=30 ( esami studenti ))
70
MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1976 3456RossiMaria01/02/1978 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04ChimicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 34562402 92833001 65542601 esami Esercizio 3 Determinare il nome e il cognome degli studenti che hanno sostenuto l'esame di Analisi
71
Algebra Relazionale71 MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1982 3456RossiMaria01/02/1983 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04ChimicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 34562401 92833001 65542601 esami Esercizio 4 Determinare nome, cognome ed eventuali esami sostenuti da tutti gli studenti del corso di laurea che hanno più di 25 anni.
72
Algebra Relazionale72 MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1982 3456RossiMaria01/02/1983 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04ChimicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 34562401 92833001 65542601 esami Esercizio 5 Determinare nome, cognome degli studenti del corso di laurea che non hanno sostenuto alcun esame.
73
Join e proiezioni ImpiegatoReparto RossiA NeriB BianchiBRepartoCapo BMori CBruni NeriBMori ImpiegatoRepartoCapo BianchiBMori ImpiegatoReparto NeriB BianchiB RepartoCapo BMori
74
Proiezioni e join NeriBMori ImpiegatoRepartoCapo BianchiBBruni VerdiABini NeriB ImpiegatoReparto BianchiB VerdiA BMori RepartoCapo BBruni ABini VerdiABini NeriBMori ImpiegatoRepartoCapo BianchiBBruni NeriBBruni BianchiBMori
75
Algebra Relazionale75 Join e proiezioni R 1 (X 1 ), R 2 (X 2 ) X 1 (R 1 R 2 ) R 1 R(X), X = X 1 X 2 ( X 1 (R)) ( X 2 (R)) R
76
Algebra Relazionale76 Prodotto cartesiano Che cosa accade se si effettua un join naturale su relazioni senza attributi in comune? Prodotto cartesiano tra le due relazioni contiene sempre un numero di ennuple pari al prodotto delle cardinalità degli operandi (le ennuple sono tutte combinabili )
77
RossiA NeriB BianchiB ImpiegatoReparto Impiegati AMori BBruniB B CodiceCapo Reparti Impiegati Reparti ImpiegatoRepartoCapoCodice RossiAMoriAAA RossiABBruni NeriBMoriA NeriBBBruni BianchiBMoriA BianchiBBBruni
78
Algebra Relazionale78 Il prodotto cartesiano, in pratica, ha senso solo se seguito da selezione: Condizione (R 1 R 2 ) L'operazione viene chiamata theta-join e indicata con: R 1 Cond R 2
79
Algebra Relazionale79 Perché "theta-join"? La condizione C è spesso una congiunzione (AND) di atomi di confronto A 1 A 2 dove è uno degli operatori di confronto (=, >, <, …) se l'operatore è sempre l'uguaglianza (=) allora si parla di equi-join
80
RossiA NeriB BianchiB ImpiegatoReparto Impiegati AMori BBruniB B CodiceCapo Reparti Impiegati Reparto=Codice Reparti ImpiegatoRepartoCapoCodice RossiAMoriAAA RossiABBruni NeriBMoriA NeriBBBruni BianchiBMoriA BianchiBBBruni RossiAMoriAAA NeriBBBruni BianchiBBBruni Equi-join
81
Algebra Relazionale81 RossiA NeriB BianchiB ImpiegatoReparto Impiegati AMori BBruniB B RepartoCapo Reparti Impiegati Reparti
82
Algebra Relazionale82 Join naturale ed equi-join ImpiegatoReparto Impiegati RepartoCapo Reparti Impiegati Reparti Impiegato,Reparto,Capo ( ) Codice Reparto (Reparti) Impiegati Reparto=Codice ( ) ) Producono lo stesso risultato !
83
Algebra Relazionale83 prodotto cartesiano o join naturale? Prodotto cartesiano e Join naturale possono essere ottenuti l’uno a partire dall’altro R(A,B), S(B,C) Prodotto cartesiano : R S = A,B,C ( R.B=S.B (R S) ) Join naturale : R S = ( B B’ (R) S)
84
Operatore di divisione trovare gli studenti che hanno sostenuto tutti gli esami del corso di laurea Algebra Relazionale84 MatrCognomeNomeData di nascita 6554RossiMario05/12/1978 4678NeriPaolo03/11/1982 3456RossiMaria01/02/1983 9283VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMari 02ChimicaMari 04FisicaVerdi corsi Corso 04 esami MatrVotoCodice 34563004 3456 2401 9283 3001 6554 2601 esami 6554 28 30 02 04
85
Algebra Relazionale85 Corso 04 esami MatrCodice 345604 3456 01 9283 01 6554 01 Matr,Codice (esami) 6554 02 04 Codice 01 02 04 Codice (corsi) Matr,Codice (esami) Codice (corsi) Matr 6554 R(X Y) / S(X) è una relazione su T(Y) tale che t T(Y) se e solo se esistono n-uple t R in R tali che: -t R [Y]=t -t R [X]=l per ogni n-unpla l di S Si considerano solo le righe della prima tabella che si combinano con tutte le righe della seconda tabella
86
Algebra Relazionale86 Un insieme completo di operazioni Teorema: L’insieme delle operazioni { , , , , - } è un insieme completo. ESEMPIO R S=(R S) - (( R-S) ( S- R )) Join naturale = Prod. Cartesiano + Selezione + Proiezione Divisione= Prodotto Cartesiano + Differenza + Proiezione
87
Algebra Relazionale87 Alcune operazioni in algebra relazionale Esempio: qual è la squadra prima in classifica? Classifica SquadraPunti Inter36 Juve34 Siena40
88
Algebra Relazionale88 Ridenominazione + Join Squadra1Punti1Squadra2Punti2 Siena40Siena40 Inter36Siena40 Siena40Juve34 Inter36Juve34 ….… …
89
Algebra Relazionale89 Squadra1Punti1Squadra2Punti2 Juve34Siena40 Inter36Siena40 Juve34Inter36 Selezione sulla condizione: (Punti1 Punti2) AND (Squadra1 Squadra2) Proiezione su Squadra1, Punti1 Squadra1Punti1 Juve34 Inter36 Classifica 2 Squadre che hanno meno punti di almeno un’altra squadra Squadre che hanno più punti di almeno un’altra squadra
90
Algebra Relazionale90 Differenza tra la tabella Classifica e Classifica 2 (dopo opportuna ridenominazione) SquadraPunti Siena40 Classifica SquadraPunti Inter36 Juve34 Siena 40 Squadra1Punti1 Juve34 Inter36 Classifica 2
91
Algebra Relazionale91 Chiusura transitiva Supervisione(Impiegato, Capo) Per ogni impiegato, trovare tutti i superiori (cioè il capo, il capo del capo, e cosi' via) Rossi Neri Impiegato Rossi Neri Rossi Neri Lupi Mori Bruni Capo Mori Bruni Lupi Bruni Falchi Rossi Neri Impiegato Rossi Neri Rossi Neri Lupi Mori Bruni Superiore Mori Bruni Lupi Bruni Falchi Rossi Falchi Lupi
92
Algebra Relazionale92 Chiusura transitiva, come si fa? Nell'esempio, basterebbe il join della relazione con se stessa, previa opportuna ridenominazione Ma: Rossi Neri Impiegato Rossi Neri Rossi Neri Lupi Mori Bruni Superiore Mori Bruni Lupi Bruni Falchi Rossi Falchi Rossi Neri Impiegato Rossi Neri Rossi Neri Lupi Mori Bruni Capo Mori Bruni Lupi Bruni Lupi Leoni Falchi Lupi Leoni Rossi Leoni Falchi
93
Algebra Relazionale93 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 livelli Non 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 dall’istanza e non dallo schema! Immaginate una istanza di migliaia di tuple: quanti join servono?
94
Algebra Relazionale94 Interrogazioni in algebra relazionale Una interrogazione su una base di dati è una funzione che restituisce una relazione R su un insieme di attributi X.
95
Esempi Impiegati NomeEtàStipendioMatricola Bianchi37385998 Rossi34457309 Bruni43425698 Neri42359553 Mori45504076 Lupi46608123 Supervisione ImpiegatoCapo 5998 7309 5698 9553 4076 5698 4076 8123
96
Algebra Relazionale96 Trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40 milioni Stipendio>40 (Impiegati)
97
Algebra Relazionale97 NomeEtàStipendioMatricola Bianchi37385998 Rossi34457309 Bruni43425698 Neri42359553 Mori45504076 Lupi46608123 Stipendio>40 (Impiegati) Bianchi37385998 Neri42359553 Rossi34457309 Bruni43425698 Mori45504076 Lupi46608123 Rossi34457309 Bruni43425698 Mori45504076 Lupi46608123
98
Algebra Relazionale98 Trovare matricola, nome ed età degli impiegati che guadagnano più di 40 milioni Matricola, Nome, Età ( Stipendio>40 (Impiegati)) NomeEtàStipendioMatricola Bianchi37385998 Rossi34457309 Bruni43425698 Neri42359553 Mori45504076 Lupi46608123 Bianchi37385998 Neri42359553 Rossi34457309 Bruni43425698 Mori45504076 Lupi46608123 Rossi34457309 Bruni43425698 Mori45504076 Lupi46608123
99
Algebra Relazionale99 Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni Capo (Supervisione Impiegato=Matricola ( Stipendio>40 (Impiegati)))
100
Algebra Relazionale100 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))))
101
Capo 5698 4076 8123 Capo (Supervisione Impiegato=Matricola ( Stipendio>40 (Impiegati))) Bianchi37385998 Rossi34457309 Bruni43425698 Neri42359553 Mori45504076 Lupi46608123 NomeEtàStipendioMatricola Impiegati
102
Algebra Relazionale102 Impiegati Matricola=Capo Capo (Supervisione Impiegato=Matricola ( Stipendio>40 (Impiegati)))) CapoMatricolaNomeEtàStipendio 5698 Bianchi3738 4076 Mori4550 8123 Lupi4660
103
Algebra Relazionale103 Nome,Stipendio (Impiegati Matricola=Capo Capo (Supervisione Impiegato=Matricola ( Stipendio>40 (Impiegati)))) NomeStipendio Bianchi38 Mori50 Lupi60 Nome e stipendio dei capi di impiegati che guadagnano più di 40 milioni
104
Algebra Relazionale104 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,EtàC Matr,Nome,Stip,Età (Impiegati) MatrC=Capo (Supervisione Impiegato=Matricola Impiegati)))
105
Algebra Relazionale105 Equivalenza di espressioni algebriche Espressioni E1 e E2 sono equivalenti per lo schema R, E1 R E2 se E1(r) = E2(r) per ogni istanza r di R. Le due espressioni sono assolutamente equivalenti, E1 E2 se E1 R E2 per ogni schema R.
106
Algebra Relazionale106 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 l’intersezione tra gli attributi di R1 e R2 è uguale ad A ESERCIZIO: trovare un controesempio
107
Algebra Relazionale107 Trasformazioni di equivalenza Due espressioni E1 ed E2 equivalenti garantiscono lo stesso risultato, ma questo non significa che la scelta sia indifferente in termini di “risorse” necessarie Scopi: 1. trasformare le espressioni in modo semplice, affinchè sia ridotto il numero delle operazioni da eseguire 2. il costo di una interrogazione viene valutato in termini di dimensione dei risultati intermedi: in presenza di alternative si sceglie quella col costo minore.
108
Algebra Relazionale108 Trasformazioni di equivalenza (2) Operazioni che sostituiscono una espressione con un’altra ad essa equivalente 1.Atomizzazione delle selezioni F1 F2 (E) F1 ( F2 (E))) 2.Idempotenza delle proiezioni X (E) X ( X Y (E)) 3.Anticipazione della selezione rispetto al join F (E1 E2) E1 F (E2) se la condizione F fa riferimento solo ad attributi nella sottoespressione E2
109
Algebra Relazionale109 4.Inglobamento di una selezione in un prodotto cartesiano F (E1 E2) E1 F E2 5.Distributività della selezione rispetto all'unione F (E1 E2) F (E1) F (E2) 6.Distributività della proiezione rispetto all'unione X (E1 E2) X (E1) X (E2) 7.Distributività della selezione rispetto alla differenza F (E1 - E2) F (E1) - F (E2)
110
Impiegati NomeEtàStipendioMatricola Bianchi28385998 Rossi34457309 Bruni23425698 Neri42359553 Mori45504076 Lupi46608123 Supervisione ImpiegatoCapo 5998 7309 5698 9553 4076 5698 4076 8123
111
Algebra Relazionale111 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))
112
Algebra Relazionale112 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à<30 (IMPIEGATI Matr=Imp SUPERVISIONE)) REGOLA 1: REGOLA 4:
113
Algebra Relazionale113 Capo ( Età<30 (IMPIEGATI) Matr=Imp SUPERVISIONE) REGOLA 3
114
Algebra Relazionale114 Viste (relazioni derivate) Spesso è utile mettere a disposizione degli utenti rappresentazioni diverse per gli stessi dati (schema esterno)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)
115
Architettura standard (ANSI/SPARC) a tre livelli per DBMS BD Schema logico Schema esterno Schema interno Schema esterno Schema esterno utente
116
Algebra Relazionale116 Viste virtuali e materializzate Due tipi di relazioni derivate: viste materializzate relazioni virtuali (o viste) relazioni virtuali
117
Algebra Relazionale117 Viste materializzate relazioni derivate effettivamente memorizzate nella base di dati vantaggi: immediatamente disponibili per le interrogazioni svantaggi: ridondanti appesantiscono gli aggiornamenti (il loro contenuto deve essere mantenuto allineato con quello delle relazioni da cui derivano) non sono supportate dai DBMS commerciali
118
Algebra Relazionale118 Viste relazioni virtuali (o viste): non sono memorizzate nella base di dati sono supportate dai DBMS commerciali una interrogazione su una vista viene eseguita "ricalcolando" la vista (o quasi) vengono definite nei sistemi relazionali per mezzo di espressioni nel linguaggio di interrogazione
119
Algebra Relazionale119 Viste, esempio Una vista: Supervisione = Impiegato,Capo (Afferenza Direzione) AMori BLeoni RepartoCapoRossiA NeriB VerdiB ImpiegatoReparto BianchiBBBruni AfferenzaDirezione
120
Algebra Relazionale120 Interrogazioni sulle viste Sono eseguite sostituendo alla vista la sua definizione: Capo='Leoni' (Supervisione) viene eseguita come Capo='Leoni' ( Impiegato,Capo (Afferenza Direzione))
121
Algebra Relazionale121 Viste, motivazioni Schema esterno: ogni utente vede solo ciò che gli interessa e nel modo in cui gli interessa, senza essere distratto dal resto ciò che e' autorizzato a vedere (autorizzazioni) Strumento di programmazione: si può semplificare la scrittura di interrogazioni: espressioni complesse e sottoespressioni ripetute Utilizzo di programmi esistenti su schemi ristrutturati. Invece: L'utilizzo di viste non influisce sull'efficienza delle interrogazioni
122
Algebra Relazionale122 Viste come strumento di programmazione Trovare gli impiegati che hanno lo stesso capo di Rossi Senza vista: Impiegato (Afferenza Direzione) ImpR,RepR Imp,Reparto ( Impiegato='Rossi' (Afferenza Direzione)) Con la vista: Impiegato (Supervisione) ImpR,RepR Imp,Reparto ( Impiegato='Rossi' (Supervisione))
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.