IL MODELLO RELAZIONALE - si.deis.unical.itsi.deis.unical.it/.../Lezioni/Lezione3-4_05_06.pdf ·...
Transcript of IL MODELLO RELAZIONALE - si.deis.unical.itsi.deis.unical.it/.../Lezioni/Lezione3-4_05_06.pdf ·...
IL MODELLO RELAZIONALEIL MODELLO RELAZIONALE
08/03/2006 2
I modelli logici dei dati� Tre modelli logici tradizionali
� gerarchico� reticolare� relazionale
� Più recente (e poco diffuso)� a oggetti
08/03/2006 3
Modelli logici, caratteristiche� Gerarchico e reticolare
� utilizzano riferimenti espliciti (puntatori) fra record
� Relazionale "è basato su valori"� anche i riferimenti fra dati in strutture (relazioni)
diverse sono rappresentati per mezzo dei valoristessi
08/03/2006 4
Il modello relazionale� Proposto da E. F. Codd nel 1970 per favorire
l’indipendenza dei dati� Disponibile in DBMS reali nel 1981 (non è
facile implementare l’indipendenza conefficienza e affidabilità!)
� Si basa sul concetto matematico di relazione(con una variante)
� Le relazioni hanno naturale rappresentazioneper mezzo di tabelle
08/03/2006 5
Relazione: tre accezioni� relazione matematica: come nella teoria
degli insiemi� relazione (dall’inglese relationship) che
rappresenta una classe di fatti, nelmodello Entity-Relationship; tradottoanche con associazione o correlazione
� relazione secondo il modello relazionaledei dati
08/03/2006 6
Relazione matematica
� D1, …, Dn (n insiemi anche nondistinti)
� prodotto cartesiano D1×…×Dn:� l’insieme di tutte le n-uple (d1, d2 …, dn)
tali che d1∈D1, d2∈D2 …, dn ∈ Dn
� relazione matematica su D1, …, Dn:� un sottoinsieme di D1×…×Dn.
� D1, …, Dn sono i domini della relazione
08/03/2006 7
Relazione matematica,esempio
� una relazione r ⊆ D1 × D2
aaab
bb
xyzxyz
aab
xzy
• D1={a,b}• D2={x,y,z}
•prodotto cartesiano D1 × D2
08/03/2006 8
Relazione matematica,proprietà� una relazione matematica è un insieme
di n-uple ordinate:� (d1, …, dn) tali che d1∈D1, …, dn ∈ Dn
� una relazione è un insieme; quindi:� non c'è ordinamento fra le n-uple;� le n-uple sono distinte� ciascuna n-upla è ordinata: l’ i-esimo valore
proviene dall’ i-esimo dominio
08/03/2006 9
Relazione matematica,esempio: partite di calcio
� Ciascuno dei domini ha due ruoli diversi,distinguibili attraverso la posizione:� La struttura è posizionale
3231
1021
JuveLazioJuveRoma
LazioMilanRomaMilan
Partite ⊆⊆⊆⊆ Testo × Testo × Numerico × Numerico
08/03/2006 10
Struttura non posizionale
3231
1021
JuveLazioJuveRoma
LazioMilanRomaMilan
• A ciascun dominio si associa un nome(attributo o campo), che ne descrive il"ruolo"
RetiCasa RetiFuoriCasa Fuori
08/03/2006 11
Relazione matematica,esempio2: CD musicaliCD ⊆⊆⊆⊆ Testo × Testo × Data x Numerico
122001TravisThe invisible band
132/6/2003StereophonicsYou Gotta Go ThereTo Come Back
1231/3/2004AerosmithHonkin' On Bobo
TITOLO CANTANTE ANNO N°Brani
08/03/2006 12
Tabelle e relazioni� Una tabella rappresenta una relazione se
� i valori di ogni colonna sono fra loro omogenei� le righe sono diverse fra loro
� le intestazioni delle colonne sono diverse tra loro
� In una tabella che rappresenta una relazione� l’ordinamento tra le righe è irrilevante� l’ordinamento tra le colonne è irrilevante
08/03/2006 13
Il modello è basato su valori
� i riferimenti fra dati in relazioni diversesono rappresentati per mezzo di valoridei domini che compaiono nelle ennuple
08/03/2006 14
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studente
Codice Titolo Docente01 Informatica Mario02 Sociologia Bruni04 Sociologia 2 Verdi
corso
Studente Voto Corso3456 30 043456 24 029283 28 01
esame
6554 26 01
08/03/2006 15
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studente
Codice Titolo Docente01 Informatica Mario02 Sociologia Bruni04 Sociologia 2 Verdi
corso
Studente Voto Corso302428
esame
26
08/03/2006 16
Vantaggi della struttura basatasu valori� indipendenza dalle strutture fisiche (si
potrebbe avere anche con puntatori di altolivello) che possono cambiare dinamicamente
� si rappresenta solo ciò che è rilevante dalpunto di vista dell’applicazione
� l’utente finale vede gli stessi dati deiprogrammatori
� i dati sono portabili piu' facilmente da unsistema ad un altro
� i puntatori sono direzionali
08/03/2006 17
Definizioni
� Schema di relazione:un nome R con un insieme di attributi:
A1, ..., An : R(A1,..., An)� Schema di base di dati:
insieme di schemi di relazione:SR = {R1(X1), ..., Rk(Xk)},
dove Xi=A1, ..., Ami
08/03/2006 18
Esempio
� Schema di relazione:Esame(Studente, Voto, Corso)
� Schema di base di dati:insieme di schemi di relazione:SR = {Esame(Studente, Voto, Corso),
Corso(Codice, Titolo, Docente),Studente(Matricola, Cognome, Nome,Data_di_Nascita)}
08/03/2006 19
Definizioni, 2
� Una ennupla su un insieme di attributiX = {A1,...,An} è una funzione cheassocia a ciascun attributo Ai in X unvalore del dominio di Ai
� t[Ai] denota il valore della ennupla tsull'attributo A
08/03/2006 20
Esempi, 2
� Esame(Studente, Voto, Corso)� X = {Studente, Voto, Corso}� Una ennupla(t) = (3456, 30, 04):
Studente=3456, Voto=30, Corso=04� (3456, 30, 04)[Voto] = 30� (3456, 30, 04)[Corso] = 04
08/03/2006 21
Definizioni, 3
� (Istanza di) relazione su uno schemaR(X):insieme r di ennuple su X
� (Istanza di) base di dati su uno schemaSR= {R1(X1), ..., Rn(Xn)}:insieme di relazioni r = {r1,..., rn} (con ri
relazione su Ri)
08/03/2006 22
Esempi, 3� (Istanza di) relazione sullo schema Corso(Codice, Titolo,
Docente)� IR = {(01, Informatica, Mario), (02, Sociologia, Bruni) ,(03,
Sociologia 2, Verdi)}
� (Istanza di) base di dati sullo schema SR ={Esame(Studente, Voto, Corso), Corso(Codice, Titolo,Docente), Studente(Matricola, Cognome, Nome,Data_di_Nascita)}
� IBD = { (01, Informatica, Mario), ..., (6554, Rossi, Mario,05/12/1978), ..., (01, Informatica, Mario), ...}
08/03/2006 23
Relazioni su singoli attributi
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studente
Matricola65543456
studente lavoratore
08/03/2006 24
Strutture nidificate
Da FilippoVia Roma 2, RomaRicevuta Fiscale
1235 del 12/10/20003 Coperti 3,00
2 Bistecche 18,003 Primi 12,002 Antipasti 6,20
Totale 39,20
Da FilippoVia Roma 2, RomaRicevuta Fiscale
1240 del 13/10/20002 Coperti 2,00
2 Orate 20,002 Primi 8,002 Antipasti 7,00
2 Caffè 2,00
Totale 39,00
08/03/2006 25
Relazioni che rappresentanostrutture nidificate
1235
3 Coperti 3,00
2 Bistecche 18,003 Primi 12,002 Antipasti 6,20
39,2012/10/2000Numero TotaleData
1240 39,0013/10/2000
Ricevuta
Dettaglio Qtà Piatto Prezzo1235
Numero
1240
123512351235
2 Coperti 2,00… … … …
08/03/2006 26
Strutture nidificate, riflessione� Abbiamo rappresentato veramente tutti
gli aspetti delle ricevute?� Dipende da che cosa ci interessa!
� l'ordine delle righe e' rilevante?� possono esistere linee ripetute in una
ricevuta?
� Sono possibili rappresentazioni diverse
08/03/2006 27
Rappresentazione alternativaper strutture nidificate
1235
3 Coperti 3,00
2 Bistecche 18,003 Primi 12,002 Antipasti 6,20
39,2012/10/2000Numero TotaleData
1240 39,0013/10/2000
Ricevuta
Dettaglio Qtà Descrizione Importo1235
Numero
1240
123512351235
2 Coperti 2,00… … … …
1
432
Riga
1…
08/03/2006 28
Informazione incompleta� ll modello relazionale impone ai dati una
struttura rigida:� le informazioni sono rappresentate per
mezzo di ennuple� solo alcuni formati di ennuple sono
ammessi: quelli che corrispondono aglischemi di relazione
� I dati disponibili possono noncorrispondere al formato previsto
08/03/2006 29
Informazione incompleta:motivazioni
Franklin RooseveltDelanoNome CognomeSecondoNome
Winston ChurchillCharles De GaulleJosip Stalin
08/03/2006 30
Informazione incompleta:soluzioni?� non conviene (anche se spesso si fa) usare
valori del dominio (0, stringa nulla, “99”, ...):� potrebbero non esistere valori “non utilizzati”� valori “non utilizzati” potrebbero diventare
significativi� in fase di utilizzo (nei programmi) sarebbe
necessario ogni volta tener conto del“significato” di questi valori
08/03/2006 31
Informazione incompletanel modello relazionale� Si adotta una tecnica rudimentale ma
efficace:� valore nullo: denota l’assenza di un valore del
dominio (e non è un valore del dominio)
� t[A], per ogni attributo A, è un valore deldominio dom(A) oppure il valore nullo NULL
� Si possono (e debbono) imporre restrizionisulla presenza di valori nulli
08/03/2006 32
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/1978
NULL Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studente
Codice Titolo Docente01 Analisi Mario02 NULL NULL04 Chimica Verdi
corso
Studente Voto CorsoNULL 30 NULLNULL 24 029283 28 01
esame
Troppi valori nulli
08/03/2006 33
Tipi di valore nullo
� (almeno) tre casi differenti� valore sconosciuto� valore inesistente� valore senza informazione
� I DBMS non distinguono i tipi divalore nullo
08/03/2006 34
Vincoli di integrità
� Esistono istanze di basi di dati che,pur sintatticamente corrette, nonrappresentano informazioni possibiliper l’applicazione di interesse
08/03/2006 35
Una base di dati "scorretta"Studente Voto Lode Corso
32 01276545276545 30 e lode 02787643 27 e lode 03739430 24 04
Esame
Matricola276545787643787643
CognomeRossiNeri
Bianchi
NomeMarioPieroLuca
Studente
787643787643
32
27 e lode739430
08/03/2006 36
Vincolo di integrità
� Proprietà che deve essere soddisfattadalle istanze che rappresentanoinformazioni corrette perl’applicazione
� Un vincolo è una funzione booleana(un predicato):associa ad ogni istanza il valore veroo falso
08/03/2006 37
� descrizione più accurata della realtà� contributo alla “qualità dei dati”� utili nella progettazione (vedremo)� usati dai DBMS nella esecuzione delle
interrogazioni
Vincoli di integrità, perché?
08/03/2006 38
Vincoli di integrità, perché?
� non tutte le proprietà di interessesono rappresentabili per mezzo divincoli formulabili in modoesplicito
08/03/2006 39
Tipi di vincoli
� vincoli intrarelazionali�vincoli su valori (o di dominio)�vincoli di ennupla
� vincoli interrelazionali
08/03/2006 40
VincoliStudente Voto Lode Corso
32 01276545276545 30 e lode 02787643 27 e lode 03739430 24 04
Esame
Matricola276545787643787643
CognomeRossiNeri
Bianchi
NomeMarioPieroLuca
Studente
787643787643
32
27 e lode739430
08/03/2006 41
Vincoli di ennupla
� Esprimono condizioni sui valori diciascuna ennupla, indipendentementedalle altre ennuple
� Caso particolare:� Vincoli di dominio: coinvolgono unsolo attributo
08/03/2006 42
Sintassi ed esempi� Una possibile sintassi:
� espressione booleana di atomi checonfrontano valori di attributo o espressioniaritmetiche su di essi
(Voto >= 18) AND (Voto <= 30)
(Voto = 30) OR NOT (Lode = "e lode")
08/03/2006 43
Vincoli di ennupla, esempio
ImpiegatoRossiNeri
Bruni
Stipendio Lordo55.00045.00047.000
Netto42.50035.00036.000
Ritenute12.50010.00011.000
Lordo = (Ritenute + Netto)
08/03/2006 44
Identificazione delle ennuple
� non ci sono due ennuple con lo stesso valoresull’attributo Matricola
� non ci sono due ennuple uguali su tutti e tregli attributi Cognome, Nome e Data di Nascita
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoDES
DESSTA
ECO
DES
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
08/03/2006 45
Chiave
� insieme di attributi che identificano leennuple di una relazione r
Formalmente:� un insieme K di attributi è superchiave
per r se r non contiene due ennupledistinte t1 e t2 con t1[K] = t2[K]
� K è chiave per r se è una superchiaveminimale per r(cioè non contiene un’altra superchiave)
08/03/2006 46
Una chiave
� Matricola è una chiave:� è superchiave� contiene un solo attributo e quindi è minimale
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoDES
DESSTA
ECO
DES
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
08/03/2006 47
� Cognome, Nome, Nascita è un’altra chiave:� è superchiave� minimale
Matricola276557876365432
Nome
PieroMario87654
67653
Cognome
NeriNeri
MarioMario
RossiRossi
Rossi Piero
CorsoDES
DESSTA
ECO
DES
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
MarioMario
RossiRossi
Rossi
5/12/78
5/12/78
Rossi
Mario 3/11/76
3/11/76Mario
Un'altra chiave
08/03/2006 48
� Non ci sono ennuple uguali su Cognome eCorso:� Cognome e Corso formano una chiave
� Ma è sempre vero?
Matricola276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoDES
DESSTA
ECO
DES
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
Un'altra chiave??
08/03/2006 49
Vincoli, schemi e istanze
� i vincoli corrispondono a proprietà del mondoreale modellato dalla base di dati
� interessano a livello di schema (con riferimentocioè a tutte le istanze)
� ad uno schema associamo un insieme di vincoli econsideriamo corrette (valide, ammissibili) leistanze che soddisfano tutti i vincoli
� un'istanza potrebbe soddisfare altri vincoli (“percaso”)
08/03/2006 50
Relazione Studente
Quali sono le Chiavi ?:� Matricola� Cognome, Nome, Nascita
Matricola NomeCognome Corso Nascita
08/03/2006 51
� È corretta: soddisfa i vincoli� Ne soddisfa anche altri ("per caso"):
� Cognome, Corso è chiave
Relazione StudenteMatricola
276557876365432
NomeMario
PieroMario87654
67653
Mario
CognomeRossi
NeriNeri
Rossi
Rossi Piero
CorsoDES
DESSTA
ECO
DES
Nascita5/12/78
10/7/793/11/76
3/11/76
5/12/78
08/03/2006 52
Esistenza delle chiavi
� Una relazione non può contenereennuple uguali ma distinte
� Ogni relazione ha come superchiavel’insieme degli attributi su cui è definita
� e quindi ha (almeno) una chiave
08/03/2006 53
Importanza delle chiavi
� l’esistenza delle chiavi garantiscel’accessibilità a ciascun dato della basedi dati
� le chiavi permettono di correlare i datiin relazioni diverse:� il modello relazionale è basato su valori
08/03/2006 54
Chiavi e valori nulli
� In presenza di valori nulli, i valori dellachiave non permettono� di identificare le ennuple� di realizzare facilmente i riferimenti da altre
relazioni
08/03/2006 55
Matricola
7876365432
Nome
PieroMario87654
NULL
Mario
Cognome
NeriNeri
Rossi
Neri Mario
Corso
DESIng Inf
ECO
NULL
NascitaNULL MarioNULL Ing Inf 5/12/78
10/7/79NULL
3/11/76
5/12/78Mario87654
NULLNeriNeri Mario
STADES
NULL5/12/78
NULL MarioNULL DES 5/12/78
Valori Nulli nelle chiavi
� La presenza di valori nulli nelle chiavi deveessere limitata
08/03/2006 56
Chiave primaria� Chiave su cui non sono ammessi nulli� Notazione: sottolineatura
Matricola
78763
65432
Nome
Piero
Mario87654
43289
Mario
Cognome
Neri
Neri
Rossi
Neri Mario
Corso
DES
STA
ECO
NULL
Nascita
86765 MarioNULL DES 5/12/78
10/7/79
NULL
3/11/76
5/12/78
08/03/2006 57
� informazioni in relazioni diverse sonocorrelate attraverso valori comuni
� in particolare, valori delle chiavi (primarie)� le correlazioni debbono essere "coerenti"
Integrità referenziale
08/03/2006 58
Matricola398732959345
Vigili CognomeRossiNeriNeri
NomeLucaPieroMario
Mori Gino7543
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
329532953987
3987
9345
3987
9345
9345
3295
32953295
08/03/2006 59
Auto Prov NumeroMITOPR
39548KE39548839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
MITOPRPR
39548KE39548839548839548
MITOPR
39548KE39548839548
08/03/2006 60
� Un vincolo di integrità referenziale(“foreign key”) fra gli attributi X di unarelazione R1 e un’altra relazione R2impone ai valori su X in R1 di comparirecome valori della chiave primaria di R2
Vincolo di integritàreferenziale
08/03/2006 61
Esempio
� vincoli di integrità referenziale fra:� l’attributo Vigile della relazione
INFRAZIONI e la relazione VIGILI� gli attributi Prov e Numero di
INFRAZIONI e la relazione AUTO
08/03/2006 62
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
Auto Prov NumeroMITOPR
E39548F34268839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
TO E39548
TOE39548
Violazione di vincolo di integritàreferenziale
08/03/2006 63
Vincoli di integritàreferenziale: commenti
� Giocano un ruolo fondamentale nelconcetto di “modello basato su valori.”
• In presenza di valori nulli i vincolipossono essere resi meno restrittivi• Sono possibili meccanismi per il
supporto alla loro gestione ("azioni"compensative a seguito di violazioni)
• Attenzione ai vincoli su più attributi
08/03/2006 64
Integrità referenziale e valorinulli
Impiegati Matricola34321
6452153524
CognomeRossiNeri
Verdi
ProgettoIDEAXYZNULL
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
73032 Bianchi IDEA
08/03/2006 65
Azioni compensative
� Esempio:� Viene eliminata una ennupla causando cosi'
una violazione
� Azioni� Rifiuto dell'operazione� Eliminazione in cascata� Introduzione di valori nulli
08/03/2006 66
Eliminazione in cascata
Impiegati Matricola34321
6452153524
CognomeRossiNeri
Verdi
ProgettoIDEAXYZNULL
73032 Bianchi IDEAProgetti Codice
IDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120
53524 Neri XYZ
08/03/2006 67
Introduzione di valori nulliImpiegati Matricola
34321
6452153524
CognomeRossiNeri
Verdi
ProgettoIDEAXYZNULL
73032 Bianchi IDEA
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120
NULL
08/03/2006 68
Auto Prov NumeroMITOPR
39548KE39548839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
IncidentiCodice3432164521
Data1/2/955/4/96
ProvB NumeroBMITO
39548KE39548
ProvA NumeroATOPR
E39548839548
Vincoli multipli su più attributi
08/03/2006 69
Vincoli multipli su più attributi
� vincoli di integrità referenziale fra:� gli attributi ProvA e NumeroA di INCIDENTI
e la relazione AUTO� gli attributi ProvB e NumeroB di INCIDENTI
e la relazione AUTO
� L'ordine degli attributi è significativo