![Page 1: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/1.jpg)
1
Corso di Laurea in Biotecnologie
Informatica(Basi di Dati)
Modello Relazionale
Anno Accademico 2009/2010
Da:• Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati• Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008
![Page 2: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/2.jpg)
2
Il modello relazionale
… è il modello logico attualmente più diffuso per i DBMS ed è stato proposto nel 1970 da E. F. Codd.Ricordiamo che un modello logico fornisce l’insieme dei costrutti per descrivere l’organizzazione dei dati all’interno di una Base di Dati.
![Page 3: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/3.jpg)
3
Relazione e tabellaIl modello relazionale si basa sui due concetti fondamentali di: relazione, inteso come concetto matematico proveniente dalla teoria degli insiemi tabella, concetto semplice e intuitivo a cui si riconduce il concetto di relazione (infatti una relazione è rappresentabile da una tabella)
![Page 4: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/4.jpg)
4
Relazione matematicaPrima di definire una relazione matematica, dobbiamo dare la definizione di prodotto cartesiano di due insiemi D1 e D2:
dati due insiemi D1 e D2, il prodotto cartesiano D1xD2 è l’insieme di tutte le coppie (v1,v2) tali che v1 è un elemento di D1 e v2 è un elemento di D2.
![Page 5: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/5.jpg)
5
Relazione matematicaAd esempio se D1={1,2,4} e D2={a,b},il prodotto cartesiano D1xD2 è l’insieme delle 3x2=6 coppie:
{(1,a), (1,b), (2,a), (2,b), (4,a), (4,b)}
![Page 6: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/6.jpg)
6
Relazione matematicaUna relazione matematica su due insiemi D1 e D2 (chiamati domini della relazione) è un sottoinsieme r del prodotto cartesiano D1xD2.
Ad esempio dati i due insiemi D1={1,2,4} e D2={a,b}, una possibile relazione matematica sui domini D1 e D2 è r={(1,a), (1,b), (4,b)}, in cui si specifica il legame tra 1 e a, tra 1 e b, tra 4 e b.
![Page 7: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/7.jpg)
7
Relazione matematicaIl prodotto cartesiano e la relazione matematica degli esempi precedenti possono anche essere rappresentati in forma tabellare:
1 a
1 b
2 a
2 b
4 a
4 b
D1xD2
1 a
1 b
4 b
r
![Page 8: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/8.jpg)
8
Relazione matematicaIn generale, dati n insiemi D1, D2, …, Dn
(anche non distinti) il prodotto cartesiano D1xD2x…xDn è l’insieme di tutte le n-ple (o ennuple) (v1,v2,…,vn) tali che vi è un elemento di Di per ogni i che va da 1 a n.Una relazione matematica sui domini D1, D2, …, Dn è un sottoinsieme r del prodotto cartesiano D1xD2x…xDn. Il numero n è chiamato grado della relazione (e del prodotto cartesiano), il numero di n-ple che compongono la relazione r è chiamato cardinalità della relazione.
![Page 9: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/9.jpg)
9
Relazione matematicaQuindi una relazione matematica è:un insieme di n-ple al loro interno ordinate (v1 appartiene a D1, v2 appartiene a D2, …, vn appartiene a Dn)un insieme, e pertanto:
non esiste ordinamento tra le diverse n-ple le n-ple sono tutte distinte
![Page 10: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/10.jpg)
10
Relazione matematicaEsempio di relazione matematica rappresentata in forma tabellare:
Juve Lazio
Lazio Milan
Juve Roma
Roma Milan
3 1
0 2
0 2
0 1
I domini sono 4 (grado della relazione):D1: insieme di tutte le possibili stringhe di caratteriD2: insieme di tutte le possibili stringhe di caratteriD3: insieme degli interi >= 0D4: insieme degli interi >= 0
![Page 11: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/11.jpg)
11
Relazione matematicaNell’esempio precedente si ha una relazione matematica con 4 n-ple (cardinalità della relazione). Si noti però che i due domini D1 e D2 , pur rappresentando lo stesso insieme, hanno un ruolo che dipende dalla posizione nella relazione. Infatti, D1 fa riferimento alla squadra che gioca in casa e il D2 fa riferimento alla squadra che gioca fuori casa. Lo stesso vale per i due domini D3 e D4. Il primo è il punteggio realizzato dalla squadra che gioca in casa, mentre il
![Page 12: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/12.jpg)
12
Relazione matematica secondo è il punteggio realizzato dalla squadra che gioca fuori casa. La struttura di una relazione matematica è dunque posizionale, nel senso che ogni dominio della relazione ha un ruolo dipendente dalla sua posizione nella relazione stessa. Nelle Basi di Dati relazionali si vogliono però organizzare i dati in relazioni che non abbiano una struttura di tipo posizionale.Cosa si può fare?Si può associare a ciascun dominio
![Page 13: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/13.jpg)
13
Relazione matematicadella relazione matematica (cioè ad ogni colonna) un attributo (cioè un nome) aggiuntivo che specifichi il ruolo che il dominio ricopre.Ad esempio nella relazione matematica dell’esempio delle squadre si può associare:
il nome SquadraCasa al dominio D1
il nome SquadraOspite al dominio D2
il nome RetiCasa al dominio D3
il nome RetiOspite al dominio D4
![Page 14: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/14.jpg)
14
Relazione matematicae nella rappresentazione tabellare si aggiungono i nomi (o attributi) come intestazione delle colonne della tabella cherappresenta la relazione.
![Page 15: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/15.jpg)
15
Relazione/tabellaEsempio di relazione matematica rappresentata in forma tabellare con attributi dei domini
Juve Lazio
Lazio Milan
Juve Roma
Roma Milan
3
0
0
0
1
2
2
1
SquadraCasaSquadraOspiteRetiCasaRetiOspite
![Page 16: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/16.jpg)
16
Relazione/tabellaSi ottiene dunque una struttura relazionale non più posizionale. Modificando infatti l’ordine delle colonne il significato dell’informazione contenuta non cambia (come si vede sotto in cui la prima colonna è stata scambiata con la seconda e la terza con la quarta)
Lazio Juve
Milan Lazio
Roma Juve
Milan Roma
1
2
2
1
3
0
0
0
SquadraOspiteSquadraCasaRetiOspiteRetiCasa
![Page 17: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/17.jpg)
17
Il termine relazioneIl termine relazione viene dunque usato, in questo corso di Basi di Dati, secondo tre accezioni differenti: relazione intesa come legame logico tra entità nel modello E-R relazione matematica proveniente dalla teoria degli insiemi relazione/tabella del modello relazionale
![Page 18: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/18.jpg)
18
Relazione/tabellaUna relazione (o tabella) nel modello relazionale è una relazione matematica in cui: i valori di ogni colonna appartengono allo stesso dominio le righe (n-ple o tuple) sono diverse tra loro le intestazioni delle colonne (attributi) sono diverse tra loro
![Page 19: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/19.jpg)
19
Relazione/tabella l’ordinamento tra le righe è irrilevante l’ordinamento tra le colonne è irrilevanteUna Base di Dati relazionale è, dal punto di vista logico, costituita da un insieme di relazioni (o tabelle). Nel seguito, il termine “relazione” sarà considerato equivalente al termine “tabella”.
![Page 20: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/20.jpg)
20
Un esempioSi consideri una Base di Dati che organizza i dati relativi all’università descritta dal seguente modello E-R:
EsameStudente Corso(0,N) (0,N)
MatricolaCognome
Nome Data di nascita
Codice Titolo
Docente
Voto
![Page 21: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/21.jpg)
21
Un esempio Essa può prevedere: una relazione (o tabella), che organizza i dati relativi all’entità Studente, avente colonne con attributi: Matricola, Cognome, Nome, DataNascita una relazione (o tabella), che organizza i dati relativi all’entità Corso, avente colonne con attributi: Codice, Titolo, Docente una relazione (o tabella), che organizza i dati relativi alla relationship Esame,
![Page 22: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/22.jpg)
22
Un esempio avente colonne con attributi: CodiceCorso, Voto, MatricolaStudente
Si noti che nella relazione (o tabella) che si riferisce alla relationship Esame, gli attributi CodiceCorso e MatricolaStudente permettono di tradurre il legame logico esistente tra le due entità Studente e Corso nel modello E-R.
![Page 23: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/23.jpg)
23
Un esempioEsempio di tabella relativa all’entità Studente: tabella Studenti
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
Studenti
![Page 24: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/24.jpg)
24
Un esempioEsempio di tabella relativa all’entità Corso: tabella Corsi
01 Analisi
03 Chimica
04 Chimica
Giani
Melli
Belli
Codice Titolo Docente
Corsi
![Page 25: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/25.jpg)
25
Un esempio
Esempio di tabella relativa alla relationship Esame: tabella Esami
276545 28
276545 27
200768 24
01
04
04
MatricolaStudente Voto CodiceCorso
Esami
![Page 26: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/26.jpg)
26
Un esempio
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
Studenti
Esami
Corsi
![Page 27: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/27.jpg)
27
Definizioni relative al modello relazionaleUno schema di relazione specifica il nome R associato alla relazione e l’insieme dei suoi attributi X={A1,A2, …,An}:
R(X)=R(A1,A2,…,An)
Ad esempio lo schema della relazione (o tabella) che organizza i dati degli studenti nell’esempio precedente è:Studenti(Matricola,Cognome,Nome,DataNascita)
A ciascun attributo Ai è associato un dominio Di, che è l’insieme dei valori possibili per Ai
![Page 28: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/28.jpg)
28
Definizioni relative al modello relazionaleLo schema della tabella Studenti è evidenziato in rosso
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascitaStudenti
![Page 29: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/29.jpg)
29
Definizioni relative al modello relazionaleUno schema di base di dati è un insieme di schemi di relazione:
{R1(X1),R2(X2),…,R3(Xm)}
Ad esempio lo schema della base di dati nell’esempio precedente è:{Studenti(Matricola,Cognome,Nome,DataNascita),Corsi(Codice,Titolo,Docente)Esami(MatricolaStudente,Voto,CodiceCorso)}
![Page 30: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/30.jpg)
30
Definizioni relative al modello relazionale
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
Lo schema della Base di Dati precedente è evidenziato in rosso
![Page 31: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/31.jpg)
31
Definizioni relative al modello relazionaleUna ennupla (o n-pla, o tupla) su un insieme X di n attributi è una funzione t che associa a ciascun attributo A in X un valore appartenente al dominio di A.
Data una ennupla t sull’insieme X di attributi e un attributo A di X, si indichi con t[A] il valore che l’attributo A assume in t.
Data una ennupla t sull’insieme X di attributi e un sottoinsieme Y di X, si indichi con t[Y] l’insieme dei valori che gli attributi di Y assumono in t.
![Page 32: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/32.jpg)
32
Definizioni relative al modello relazionale Ad esempio se X={Codice,Titolo,Docente} è l’insieme degli attributi della tabella Corsi, indicando con t la ennupla (01,Analisi,Giani) su X, si ha t[Codice] è 01 e t[Codice,Docente] è (01, Giani).
![Page 33: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/33.jpg)
33
Definizioni relative al modello relazionale
Esempio di ennupla per la tabella Corsi
01 Analisi
03 Chimica
04 Chimica
Giani
Melli
Belli
Codice Titolo Docente
ennupla
Corsi
![Page 34: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/34.jpg)
34
Definizioni relative al modello relazionaleUn’istanza di relazione su di uno schema R(X) è un insieme r di ennuple su XAd esempio un’istanza della relazione Studenti che organizza i dati degli studenti nell’esempio precedente è evidenziata in rosso
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascitaStudenti
![Page 35: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/35.jpg)
35
Definizioni relative al modello relazionaleUn’istanza di Base di Dati su di uno schema {R1(X1),R2(X2),…,R3(Xm)} è un insieme di istanze di relazione r1, r2, …, rm, dove ri (per i da 1 a m) è un’istanza di relazione sullo schema Ri(Xi)
![Page 36: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/36.jpg)
36
Definizioni relative al modello relazionale
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
L’istanza della Base di Dati precedente è evidenziato in rosso
![Page 37: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/37.jpg)
37
Definizioni relative al modello relazionaleIn sintesi: lo schema (di una relazione o di una Base di Dati) è la parte che non varia nel tempo (a meno che lo schema stesso non venga ridefinito…) l’istanza (di una relazione o di una Base di Dati) è la parte che varia nel tempo in quanto le Basi di Dati vengono aggiornate costantemente
![Page 38: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/38.jpg)
38
Nota Bene!La stessa realtà può essere rappresentata mediante schemi relazionali differenti. Ad esempio i dati relativi all’entità Studente e alla relationship Esame dell’esempio precedente possono essere organizzati in un’unica tabella Studenti2 avente schema:
Studenti2(Matricola,Cognome,Nome,DataNascita,CodiceCorso,Voto)
eliminando quindi la tabella Esami dello schema precedente
![Page 39: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/39.jpg)
39
Nota Bene!La nuova Base di Dati diventa quindi:
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
01
04
28
24
CodiceCorso Voto
276545 Rossi Maria 25/11/1971 04 27
Studenti2
Corsi
![Page 40: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/40.jpg)
40
Nota Bene!Quali sono però gli svantaggi di questo secondo schema? ci possono essere dati ripetuti (si vedano le ennuple riguardanti la studentessa Maria Rossi che ha sostenuto due esami) ci possono essere ennuple in cui i valori per alcuni attributi sono nulli (si vedano le ennuple relative a studenti che non hanno sostenuto esami)
![Page 41: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/41.jpg)
41
Vincoli di integritàLe strutture del modello relazionale (viste nella lezione precedente) permettono di organizzare i dati relativi alla realtà di interesse. Non è vero però che qualsiasi istanza su di uno schema (così definito, fino a questo punto) di una Base di Dati rappresenti informazioni corrette per l’applicazione.Si consideri ad esempio la seguente istanza sullo schema di Base di Dati definito nella lezione precedente (con le tre tabelle Studenti, Corsi ed Esami), modificato aggiungendo l’attributo Lode alla tabella Esami.
![Page 42: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/42.jpg)
42
Vincoli di integrità
200768 Verdi
937653 Rossi
937653 Bruni
Fabio
Luca
Mario
12/02/1972
10/10/1971
01/12/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
Studenti
Esami
Corsi
200768 36937653 28937653 30
lodelode
MatricolaStudente Voto Lode050104
CodiceCorso
276545 25 01
![Page 43: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/43.jpg)
43
Vincoli di integritàQuali sono gli aspetti scorretti nell’istanza precedente? nella tabella Esami
il valore di Voto, in corrispondenza dello studente con matricola 200768, è 36 (e il voto deve essere <= 30!) il valore dell’attributo Lode, per lo studente con matricola 937653, non è nullo nonostante il valore di Voto sia 28 (e la lode si ha solo per un voto pari a 30!)
![Page 44: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/44.jpg)
44
Vincoli di integritàQuali sono gli aspetti scorretti nell’istanza precedente? nella tabella Esami
lo studente con matricola 200768 ha sostenuto un esame con codice 05 che però non compare nella tabella Corsi lo studente con matricola 276545 non compare nella tabella Studenti e quindi non si hanno informazioni su di esso
nella tabella Studenti ci sono due studenti che hanno lo stesso numero di matricola
![Page 45: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/45.jpg)
45
Vincoli di integritàUn vincolo di integrità è una proprietà che deve essere soddisfatta da tutte le istanze della Base di Dati al fine di rappresentare un’informazione corretta.Un vincolo è un predicato che associa ad un’istanza un valore booleano: VERO se l’istanza è corretta FALSO se l’istanza NON è corretta
![Page 46: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/46.jpg)
46
Vincoli di integritàI vincoli di integrità sono dunque proprietà dello schema, cioè si riferiscono a tutte le istanze dello schema e: permettono una rappresentazione più accurata della realtà contribuiscono alla qualità dei dati, cioè fanno in modo che i dati rappresentino correttamente la realtà portano in fase di progettazione alla definizione di uno schema di qualità
![Page 47: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/47.jpg)
47
Vincoli di integritàI vincoli di integrità sono possono essere di tipo: intrarelazionale, cioè definiti all’interno di una relazione (o tabella) interrelazionale, cioè definiti tra due o più relazioni (o tabelle)
![Page 48: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/48.jpg)
48
Vincoli di integritàI vincoli di tipo intrarelazionale che vedremo sono: vincoli su singolo valore di attributo (o vincoli di dominio) vincoli di ennupla (o di tupla) vincoli di chiave e di chiave primaria
Il vincolo di tipo interrelazionale che vedremo è il vincolo di integrità referenziale
![Page 49: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/49.jpg)
49
Vincoli su singolo valoreI vincoli su singolo valore coinvolgono un singolo attributo di una relazione.
Ad esempio il valore di Voto delle ennuple della tabella Esami, definito sul dominio degli interi, può assumere valori che vanno da 18 a 30. Il vincolo è quindi esprimibile dalla seguente espressione booleana:
(Voto >= 18) AND (Voto <= 30)
![Page 50: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/50.jpg)
50
Vincoli di ennuplaI vincoli di ennupla coinvolgono l’insieme dei valori di un’intera ennupla di una relazione.
Ad esempio le ennuple della relazione Esami devono soddisfare il seguente vincolo:
(Voto = 30) OR NOT (Lode = lode)
![Page 51: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/51.jpg)
51
Vincoli su singolo valore e di ennuplaUn vincolo su singolo valore o di ennupla è soddisfatto se ogni ennupla dell’istanza della relazione, sulla quale è definito, ha valori che soddisfano il vincolo stesso.
![Page 52: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/52.jpg)
52
Vincoli di chiave e di chiave primariaLa motivazione di un vincolo di chiave e di chiave primaria è la necessità di disporre di informazioni che permettano di rappresentare ogni oggetto della realtà di interesse tramite un’unica ennupla. In altre parole si ha la necessità di identificare in maniera univoca le ennuple di una relazione.
![Page 53: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/53.jpg)
53
Definizione di superchiave e di chiaveData una relazione (o tabella) avente schema R(X), dove X è l’insieme degli attributi, un insieme K contenuto in X è una superchiave per R se R non contiene due ennuple distinte t1 e t2 tali che t1[K]= t2[K].Si dice che K è superchiave minimale (o semplicemente chiave) se non contiene al suo interno nessun’altra superchiave, cioè se nessun sottoinsieme di K è esso stesso una superchiave.
![Page 54: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/54.jpg)
54
Studenti3
Superchiave e chiave (esempi)Nella tabella Studenti3 l’attributo Matricola è una chiave in quanto è una superchiave (non ci sono due studenti con lo stesso numero di matricola) minimale (la superchiave è composta da un solo attributo)...
276545 Rossi
485745 Rossi
200768 Neri
587614 Neri
Mario
Mario
Piero
Mario
5/12/1978
3/11/1976
10/07/1979
3/11/1976
Matricola Cognome Nome DataNascita
Ing Inf
Ing Mecc
Ing Mecc
Ing Inf
Corso
587544 Rossi Piero 5/12/1978Ing El
![Page 55: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/55.jpg)
55
… L’insieme di attributi (Cognome, Nome, DataNascita) è una superchiave minimale e quindi è un’altra chiave. Infatti nessun altro sottoinsieme di (Cognome, Nome, DataNascita) è una superchiave...
276545 Rossi
485745 Rossi
200768 Neri
587614 Neri
Mario
Mario
Piero
Mario
5/12/1978
3/11/1976
10/07/1979
3/11/1976
Matricola Cognome Nome DataNascita
Ing Inf
Ing Mecc
Ing Mecc
Ing Inf
Corso
587544 Rossi Piero 5/12/1978Ing El
Studenti3
Superchiave e chiave (esempi)
![Page 56: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/56.jpg)
56
Superchiave e chiave (esempi)… L’insieme di attributi (Matricola, Cognome, Nome, DataNascita) è una superchiave ma non è una chiave in quanto contiene le due chiavi (Matricola) e (Cognome, Nome, DataNascita).
276545 Rossi
485745 Rossi
200768 Neri
587614 Neri
Mario
Mario
Piero
Mario
5/12/1978
3/11/1976
10/07/1979
3/11/1976
Matricola Cognome Nome DataNascita
Ing Inf
Ing Mecc
Ing Mecc
Ing Inf
Corso
587544 Rossi Piero 5/12/1978Ing El
Studenti3
![Page 57: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/57.jpg)
57
Superchiave e chiave (esempi)… L’insieme di attributi (Cognome, Corso) è una chiave.
276545 Rossi
485745 Rossi
200768 Neri
587614 Neri
Mario
Mario
Piero
Mario
5/12/1978
3/11/1976
10/07/1979
3/11/1976
Matricola Cognome Nome DataNascita
Ing Inf
Ing Mecc
Ing Mecc
Ing Inf
Corso
587544 Rossi Piero 5/12/1978Ing El
Studenti3
![Page 58: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/58.jpg)
58
Superchiave e chiaveNOTA BENE!
Data una relazione avente schema R(X), dove X è l’insieme degli attributi, si ha che X è superchiave per definizione. Infatti tutte le ennuple della relazione sono per definizione distinte.
![Page 59: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/59.jpg)
59
Vincolo di chiaveDato uno schema di relazione R(X), un vincolo di chiave su un sottoinsieme K di X, impone che ogni istanza di R(X) deve essere tale che, per ogni coppia di ennuple t1 e t2, si ha t1[K] diverso da t2[K].
![Page 60: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/60.jpg)
60
Vincolo di chiave (esempio)Sullo schema della tabella Studenti3 si possono definire ad esempio due vincoli di chiave rispettivamente su K1=(Matricola) e su K2=(Cognome,Nome,DataNascita).L’istanza di Studenti3 delle slide precedenti (usata per definire superchiave e chiave) rispetta chiaramente tali due vincoli.
L’istanza precedente non rispetterebbe invece un vincolo di chiave definito su K3=(Cognome, Nome) in quanto ci sono due ennuple che su K3 hanno valore (Rossi, Mario)
![Page 61: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/61.jpg)
61
Vincolo di chiaveLe chiavi sono importanti perché: permettono di identificare gli oggetti della base di dati accedere agli oggetti della base di dati correlare le informazioni tra relazioni diverse
![Page 62: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/62.jpg)
62
Vincolo di chiave (esempio)La slide successiva riporta la Base di Dati (della lezione precedente) in cui in rosso sono evidenziati il vincolo di chiave definito per la tabella Studenti (sull’attributo Matricola) e quello per la tabella Corsi (sull’attributo Codice). Il legame tra Studenti e Corsi (tabella Esami) avviene grazie alla definizione dei due vincoli di chiave che consentono infatti di legare ogni ennupla di Esami a un’unica ennupla di Studenti e a un’unica ennupla di Corsi.
![Page 63: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/63.jpg)
63
Vincolo di chiave (esempio)
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
Studenti
Esami
Corsi
![Page 64: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/64.jpg)
64
Valori nulliIn una Base di Dati si ha spesso a che fare con informazione incompleta e quindi con valori nulli.Un valore nullo può essere dovuto al fatto che: il valore esiste ma è sconosciuto (tipo 1) il valore è inesistente (tipo 2) il valore è senza informazione (non si conosce oppure non esiste, non si sa nulla…) (tipo 3)Un DBMS non riesce purtroppo a distinguere il preciso significato di un valore nullo
![Page 65: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/65.jpg)
65
Valori nulli (esempio)Ad esempio si consideri un‘istanza della semplice tabella Prefetture sotto riportata
Roma Via Manzoni
Firenze
Tivoli
Chiasso
Città IndirizzoPrefettura
Prefetture
![Page 66: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/66.jpg)
66
Valori nulli (esempio)…Il valore nullo di Firenze è di tipo 1 in quanto a Firenze esiste sicuramente una Prefettura e quindi in questo caso non si conosce il suo indirizzo. Il valore nullo relativo a Tivoli è di tipo 2 poiché Tivoli non è provincia e quindi non esiste una Prefettura. Infine per Chiasso non si sa nulla (tipo 3) dal momento che si trova in Svizzera e in Svizzera non si sa se ci sono le Prefetture.
![Page 67: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/67.jpg)
67
Valori nulliCome si rappresentano i valori nulli nel modello relazionale?
Possibilità 1:usare particolari valori del dominio dell’attributo. Ad esempio: 0, la
stringa nulla, etc.Questa possibilità è un po’ rischiosa
in quanto si potrebbero utilizzare valori che poi diventano significativi…
![Page 68: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/68.jpg)
68
Valori nulliCome si rappresentano i valori nulli nel modello relazionale?
Possibilità 2:si usa un particolare valore denotato
con NULL. Di conseguenza, data una ennupla t, si ha che il valore t[A] in
corrispondenza dell’attributo A è un valore del dominio di A oppure il valore NULL.
![Page 69: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/69.jpg)
69
Chiavi e valori nulliI valori nulli possono riguardare una chiave o parte di essa?
Sì, anche se in presenza di valori nulli non è permesso alla chiave di svolgere correttamente le sue due funzioni di (1) identificare le ennuple della Base di Dati e (2) di determinare i riferimenti con altre relazioni.Quindi la presenza di valori nulli nelle chiavi deve essere limitata!
![Page 70: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/70.jpg)
70
Vincolo di chiave primariaDalle considerazioni della slide precedente emerge la necessità di definire un vincolo di chiave in cui i valori nulli non siano ammessi.Questo nuovo tipo di vincolo prende il nome di chiave primaria (primary key).Per uno schema di relazione R(X) si possono definire più di un vincolo di chiave e un solo vincolo di chiave primariaNella Base di Dati della slide successiva, si possono definire due chiavi primarie rispettivamente su Matricola di Studenti e su Codice di Corsi (colonne in rosso).
![Page 71: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/71.jpg)
71
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
Studenti
Esami
Corsi
Vincolo di chiave primaria (esempio)
![Page 72: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/72.jpg)
72
Vincolo di integrità referenzialeDati due schemi di relazione R1(X1) e R2(X2), un vincolo di integrità referenziale (chiave esterna o foreign key) di R1 (detta interna) rispetto a R2 (detta esterna o master), impone che un sottoinsieme K1 di X1 sia legato ad un sottoinsieme K2 di X2, definito come chiave primaria per R2. In altre parole, tale vincolo impone che ogni ennupla t1 in R1 abbia valori su K1 che compaiano come chiave primaria in R2.Negli esempi successivi le chiavi esterne sono evidenziate in blu, mentre le chiavi primarie sono evidenziate in rosso.
![Page 73: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/73.jpg)
73
Vincolo di integrità referenziale (esempio1)
276545 Rossi
485745 Neri
200768 Verdi
587614 Rossi
Maria
Anna
Fabio
Luca
25/11/1971
23/04/1972
12/02/1972
10/10/1971
Matricola Cognome Nome DataNascita
01 Analisi03 Chimica04 Chimica
GianiMelliBelli
Codice Titolo Docente
276545 28276545 27200768 24
010404
MatricolaStudente Voto CodiceCorso
Studenti
Esami
Corsi
![Page 74: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/74.jpg)
74
Vincolo di integrità referenziale (esempio2)
Infrazioni
Auto
34321 1/2/95
53524 4/3/95
64521 5/4/96
73321 5/2/98
MI
TO
PR
PR
39548K
E39548
839548
839548
Codice Data Provincia Numero
3987
3295
3295
9345
Vigile
MI 39548KTO E39548PR 839548
RossiRossiNeri
Provincia Numero CognomeMarioMarioLuca
Nome
Attenzione! Quando si definiscono chiavi esterne che coinvolgonopiù di un attributo occorre rispettare l’ordine degli attributi.
In questo caso infatti (Provincia, Numero) in Infrazioni fariferimento a (Provincia,Numero) in Auto presi in questo ordine.
![Page 75: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/75.jpg)
75
Vincolo di integrità referenziale (violazione)
Cosa succede quando l’aggiunta, la modifica o la cancellazione di una ennupla viola un vincolo di integrità referenziale?Sono possibili tre meccanismi compensativi: rifiuto dell’operazione eliminazione in cascata introduzione di valori nulli
![Page 76: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/76.jpg)
76
Vincolo di integrità referenziale (violazione)Ad esempio nella Base di Dati dell’esempio precedente (Infrazioni e Auto) se si tenta di eliminare da Auto una ennupla a cui è associata un’infrazione in Infrazioni, viene violato il vincolo di integrità referenziale.Le slide successive mostrano il comportamento di due dei meccanismi di compensazione in seguito alla cancellazione della ennupla (TO, E39548, Rossi, Mario) da Auto.
![Page 77: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/77.jpg)
77
Vincolo di integrità referenziale (violazione)
Infrazioni
Auto
MI 39548KTO E39548PR 839548
RossiRossiNeri
Provincia Numero CognomeMarioMarioLuca
Nome
34321 1/2/95
53524 4/3/95
64521 5/4/96
73321 5/2/98
MI
TO
PR
PR
39548K
E39548
839548
839548
Codice Data Provincia Numero
3987
3295
3295
9345
Vigile
Eliminazione in cascata della ennupla (53524, 4/3/95, 3295, TO, E39548) da Infrazioni
![Page 78: 1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi](https://reader035.vdocuments.net/reader035/viewer/2022062404/5542eb50497959361e8c0223/html5/thumbnails/78.jpg)
78
Vincolo di integrità referenziale (violazione)
Infrazioni
Auto
34321 1/2/95
53524 4/3/95
64521 5/4/96
73321 5/2/98
MI
NULL
PR
PR
39548K
NULL
839548
839548
Codice Data Provincia Numero
3987
3295
3295
9345
Vigile
MI 39548KTO E39548PR 839548
RossiRossiNeri
Provincia Numero CognomeMarioMarioLuca
Nome
Introduzione di valori nulli nella ennupla (53524, 4/3/95, 3295, TO, E39548) in Infrazioni