Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni11 pagine

Capitolo 2

Il documento discute i modelli logici dei dati, concentrandosi sul modello relazionale proposto da E. F. Codd nel 1970, che promuove l'indipendenza dei dati attraverso l'uso di tabelle. Viene spiegato il concetto di relazione matematica e come le tabelle rappresentano relazioni, evidenziando i vantaggi del modello basato su valori, come l'indipendenza dalle strutture fisiche. Infine, si affrontano le problematiche legate all'informazione incompleta e all'uso di valori nulli nel modello relazionale.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni11 pagine

Capitolo 2

Il documento discute i modelli logici dei dati, concentrandosi sul modello relazionale proposto da E. F. Codd nel 1970, che promuove l'indipendenza dei dati attraverso l'uso di tabelle. Viene spiegato il concetto di relazione matematica e come le tabelle rappresentano relazioni, evidenziando i vantaggi del modello basato su valori, come l'indipendenza dalle strutture fisiche. Infine, si affrontano le problematiche legate all'informazione incompleta e all'uso di valori nulli nel modello relazionale.
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 11

I modelli logici dei dati

• Tre modelli logici tradizionali


Atzeni, Ceri, Paraboschi, Torlone • gerarchico
Basi di dati • reticolare
McGraw -Hill, 1996-2002 • relazionale
• Più recente (e poco diffuso)
Capitolo 2: • a oggetti
IL MODELLO RELAZIONALE
24/09/2002

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 2
Basi di dati, Capitolo 2

Modelli logici, caratteristiche Il modello relazionale

• Gerarchico e reticolare • Proposto da E. F. Codd nel 1970 per


• utilizzano riferimenti espliciti (puntatori) fra favorire l’indipendenza dei dati
record
• Disponibile in DBMS reali nel 1981 (non
• Relazionale "è basato su valori"
è facile implementare l’indipendenza
• anche i riferimenti fra dati in strutture
con efficienza e affidabilità!)
(relazioni) diverse sono rappresentati per
mezzo dei valori stessi • Si basa sul concetto matematico di
relazione (con una variante)
• Le relazioni hanno naturale
rappresentazione per mezzo di tabelle
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 3 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 4
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Relazione: tre accezioni Relazione matematica

• relazione matematica : come nella teoria • D1, …, Dn (n insiemi anche non distinti)
degli insiemi • prodotto cartesiano D1×…×Dn:
• relazione (dall’inglese relationship) che • l’insieme di tutte le n-uple (d1, …, dn)
rappresenta una classe di fatti, nel tali che d1∈D1, …, dn ∈ Dn
modello Entity-Relationship; tradotto • relazione matematica su D1, …, Dn:
anche con associazione o correlazione • un sottoinsieme di D1×…×Dn.
• relazione secondo il modello relazionale • D1, …, Dn sono i domini della relazione
dei dati

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 5 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 6


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

1
Relazione matematica, esempio Relazione matematica, proprietà

• D1={a,b} • una relazione matematica è un insieme


• D2={x,y,z} a x di n-uple ordinate:
• prodotto cartesiano D1 × D2 a y • (d1, …, dn) tali che d1∈D1, …, dn ∈ Dn
a z
b x
• una relazione è un insieme; quindi:
b y • non c'è ordinamento fra le n-uple
b z • le n-uple sono distinte
• una relazione r ⊆ D1 × D2 a x • ciascuna n-upla è ordinata: l’ i-esimo
a z valore proviene dall’ i-esimo dominio
b y
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 7 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 8
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Relazione matematica, esempio Struttura non posizionale

Partite ⊆ string × string × int × int • A ciascun dominio si associa un nome


(attributo), che ne descrive il "ruolo"
Juve Lazio 3 1
Lazio Milan 2 0
Juve Roma 0 2 Casa Fuori RetiCasaRetiFuori
Roma Milan 0 1 Juve Lazio 3 1
Lazio Milan 2 0
• Ciascuno dei domini ha due ruoli diversi, Juve Roma 0 2
distinguibili attraverso la posizione: Roma Milan 0 1

• La struttura è posizionale

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 9 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 10


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Tabelle e relazioni Il modello è basato su valori

• Una tabella rappresenta una relazione se • i riferimenti fra dati in relazioni diverse
• i valori di ogni colonna sono fra loro sono rappresentati per mezzo di valori
omogenei dei domini che compaiono nelle ennuple
• 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

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 11 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 12


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

2
studenti Matricola Cognome Nome Data di nascita studenti Matricola Cognome Nome Data di nascita
6554 Rossi Mario 05/12/1978 6554 Rossi Mario 05/12/1978
8765 Neri Paolo 03/11/1976 8765 Neri Paolo 03/11/1976
9283 Verdi Luisa 12/11/1979 9283 Verdi Luisa 12/11/1979
3456 Rossi Maria 01/02/1978 3456 Rossi Maria 01/02/1978
esami Studente Voto Corso esami Studente Voto Corso
3456 30 04 30
3456 24 02 24
9283 28 01 28
6554 26 01 26
corsi Codice Titolo Docente corsi Codice Titolo Docente
01 Analisi Mario 01 Analisi Mario
02 Chimica Bruni 02 Chimica Bruni
04 Chimica Verdi 04 Chimica Verdi
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 13 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 14
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Struttura basata su valori: vantaggi Definizioni

• indipendenza dalle strutture fisiche (si


• Schema di relazione :
potrebbe avere anche con puntatori di alto
livello) che possono cambiare dinamicamente un nome R con un insieme di attributi
• si rappresenta solo ciò che è rilevante dal A1, ..., An:
punto di vista dell’applicazione R(A 1,..., An)
• l’utente finale vede gli stessi dati dei
• Schema di base di dati:
programmatori
• i dati sono portabili piu' facilmente da un insieme di schemi di relazione:
sistema ad un altro R = {R1(X 1), ..., Rk(X k)}
• i puntatori sono direzionali
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 15 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 16
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Definizioni, 2 Definizioni, 3

• Una ennupla su un insieme di attributi • (Istanza di) relazione su uno schema


X è una funzione che associa a ciascun R(X):
attributo A in X un valore del dominio insieme r di ennuple su X
di A • (Istanza di) base di dati su uno schema
• t[A] denota il valore della ennupla t R= {R1(X 1), ..., Rn(X n)}:
sull'attributo A insieme di relazioni r = {r1,..., rn} (con ri
relazione su Ri)

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 17 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 18


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

3
Relazioni su singoli attributi Strutture nidificate
Da Filippo Da Filippo
studenti Via Roma 2, Roma Via Roma 2, Roma
Matricola Cognome Nome Data di nascita
6554 Rossi Mario 05/12/1978 Ricevuta Fiscale Ricevuta Fiscale
8765 Neri Paolo 03/11/1976 1235 del 12/10/2000 1240 del 13/10/2000
9283 Verdi Luisa 12/11/1979 3 Coperti 3,00 2 Coperti 2,00
3456 Rossi Maria 01/02/1978 2 Antipasti 6,20 2 Antipasti 7,00
3 Primi 12,00 2 Primi 8,00
2 Bistecche 18,00 2 Orate 20,00
studenti lavoratori Matricola 2 Caffè 2,00
6554
3456
Totale 39,20 Totale 39,00
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 19 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 20
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Relazioni che rappresentano


Strutture nidifcate , riflessione
strutture nidificate
Ricevute Numero Data Totale • Abbiamo rappresentato veramente tutti
1235 12/10/2000 39,20
gli aspetti delle ricevute?
1240 13/10/2000 39,00
• Dipende da che cosa ci interessa!
Dettaglio Numero Qtà Descrizione Importo • l'ordine delle righe e' rilevante?
1235 3 Coperti 3,00 • possono esistere linee ripetute in una
1235 2 Antipasti 6,20 ricevuta?
1235 3 Primi 12,00
1235 2 Bistecche 18,00
1240 2 Coperti 2,00 • Sono possibili rappresentazioni diverse
… … … …
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 21 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 22
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Rappresentazione alternativa per


Informazione incompleta
strutture nidificate
Ricevute Numero Data Totale • ll modello relazionale impone ai dati una
1235 12/10/2000 39,20
struttura rigida:
1240 13/10/2000 39,00
• le informazioni sono rappresentate
Dettaglio Numero Riga Qtà Descrizione Importo per mezzo di ennuple
1235 1 3 Coperti 3,00 • solo alcuni formati di ennuple sono
1235 2 2 Antipasti 6,20 ammessi: quelli che corrispondono
1235 3 3 Primi 12,00 agli schemi di relazione
1235 4 2 Bistecche 18,00
• I dati disponibili possono non
1240 1 2 Coperti 2,00
… … … … … corrispondere al formato previsto
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 23 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 24
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

4
Informazione incompleta:
Informazione incompleta: soluzioni?
motivazioni
• non conviene (anche se spesso si fa) usare
Nome SecondoNome Cognome valori del dominio (0, stringa nulla, “99”, ...):
Franklin Delano Roosevelt • potrebbero non esistere valori “non
utilizzati”
Winston Churchill
Charles De Gaulle • valori “non utilizzati” potrebbero diventare
significativi
Josip Stalin
• in fase di utilizzo (nei programmi) sarebbe
necessario ogni volta tener conto del
“significato” di questi valori

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 25 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 26


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Informazione incompleta
Troppi valori nulli
nel modello relazionale
studenti Matricola Cognome Nome Data di nascita
• Tecnica rudimentale ma efficace: 6554 Rossi Mario 05/12/1978
• valore nullo: denota l’assenza di un valore 9283 Verdi Luisa 12/11/1979
del dominio (e non è un valore del dominio) NULL Rossi Maria 01/02/1978
• t[A], per ogni attributo A, è un valore del esami Studente Voto Corso
dominio dom(A) oppure il valore nullo NULL NULL 30 NULL
• Si possono (e debbono) imporre restrizioni NULL 24 02
9283 28 01
sulla presenza di valori nulli
corsi Codice Titolo Docente
01 Analisi Mario
02 NULL NULL
04 Chimica Verdi
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 27 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 28
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Tipi di valore nullo Vincoli di integrità

• (almeno) tre casi differenti • Esistono istanze di basi di dati che,


• valore sconosciuto pur sintatticamente corrette, non
• valore inesistente rappresentano informazioni possibili
• valore senza informazione per l’applicazione di interesse
• I DBMS non distinguono i tipi di valore
nullo

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 29 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 30


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

5
Una base di dati "scorretta" Vincolo di integrità

Esami Studente Voto Lode Corso


276545 32 01
• Proprietà che deve essere soddisfatta
276545 30 e lode 02 dalle istanze che rappresentano
787643 27 e lode 03 informazioni corrette per
739430 24 04 l’applicazione
Studenti Matricola Cognome Nome • Un vincolo è una funzione booleana
276545 Rossi Mario (un predicato):
787643 Neri Piero associa ad ogni istanza il valore vero
787643 Bianchi Luca o falso

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 31 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 32


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Vincoli di integrità, nota


Vincoli di integrità, perché?
• descrizione più accurata della realtà • non tutte le proprietà di interesse
• contributo alla “qualità dei dati” sono rappresentabili per mezzo di
• utili nella progettazione (vedremo) vincoli formulabili in modo esplicito
• usati dai DBMS nella esecuzione delle
interrogazioni

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 33 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 34


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Tipi di vincoli

Esami Studente Voto Lode Corso


• vincoli intrarelazionali 276545 32 01
• vincoli su valori (o di dominio) 276545 30 e lode 02
• vincoli di ennupla 787643 27 e lode 03
739430 24 04
• vincoli interrelazionali
Studenti Matricola Cognome Nome
276545 Rossi Mario
787643 Neri Piero
787643 Bianchi Luca

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 35 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 36


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

6
Vincoli di ennupla Sintassi ed esempi

• Esprimono condizioni sui valori di • Una possibile sintassi:


ciascuna ennupla, indipendentemente • espressione booleana di atomi che
dalle altre ennuple confrontano valori di attributo o
• Caso particolare: espressioni aritmetiche su di essi
• Vincoli di dominio: coinvolgono un
solo attributo (Voto ≥ 18) AND (Voto ≤ 30)

(Voto = 30) OR NOT (Lode = "e lode")


24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 37 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 38
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Vincoli di ennupla, esempio Identificazione delle ennuple

Matricola Cognome Nome Corso Nascita


27655 Rossi Mario Ing Inf 5/12/78
Stipendi Impiegato Lordo Ritenute Netto 78763 Rossi Mario Ing Inf 3/11/76
Rossi 55.000 12.500 42.500 65432 Neri Piero Ing Mecc 10/7/79
Neri 45.000 10.000 35.000 87654 Neri Mario Ing Inf 3/11/76
Bruni 47.000 11.000 36.000 67653 Rossi Piero Ing Mecc 5/12/78
• non ci sono due ennuple con lo stesso
valore sull’attributo Matricola
Lordo = (Ritenute + Netto) • non ci sono due ennuple uguali su tutti e
tre gli attributi Cognome, Nome e Data di
Nascita
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 39 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 40
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Chiave Una chiave


• insieme di attributi che identificano le Matricola Cognome Nome Corso Nascita
ennuple di una relazione 27655 Rossi Mario Ing Inf 5/12/78
Formalmente: 78763 Rossi Mario Ing Inf 3/11/76
65432 Neri Piero Ing Mecc 10/7/79
• un insieme K di attributi è superchiave 87654 Neri Mario Ing Inf 3/11/76
per r se r non contiene due ennuple 67653 Rossi Piero Ing Mecc 5/12/78
distinte t1 e t2 con t1[K] = t2[K]
• Matricola è una chiave:
• K è chiave per r se è una superchiave • è superchiave
minimale per r
• contiene un solo attributo e quindi è
(cioè non contiene un’altra superchiave)
minimale
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 41 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 42
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

7
Un'altra chiave Un'altra chiave??
Matricola Cognome Nome Corso Nascita
Matricola Cognome Nome Corso Nascita
Ing Inf 27655 Rossi Mario Ing Inf 5/12/78
27655 Rossi Mario
Rossi Mario 5/12/78
5/12/78
78763 Rossi Mario Ing Civile 3/11/76
78763 Rossi
Rossi Mario
Mario Ing Inf 3/11/76
3/11/76
65432 Neri Piero Ing Mecc 10/7/79
65432 Neri Piero Ing Mecc 10/7/79
87654 Neri Mario Ing Inf 3/11/76
87654 Neri Mario
Mario Ing Inf 3/11/76
3/11/76
67653 Rossi Piero Ing Mecc 5/12/78
67653 Rossi
Rossi Piero Ing Mecc 5/12/78
5/12/78
• Cognome, Nome, Nascita è un’altra • Non ci sono ennuple uguali su Cognome
chiave: e Corso:
• è superchiave • Cognome e Corso formano una chiave
• minimale • Ma è sempre vero?
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 43 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 44
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Vincoli, schemi e istanze


Studenti
• i vincoli corrispondono a proprietà del mondo Matricola Cognome Nome Corso Nascita
reale modellato dalla base di dati
• interessano a livello di schema (con
riferimento cioè a tutte le istanze) • chiavi:
• ad uno schema associamo un insieme di
Matricola
vincoli e consideriamo corrette (valide,
ammissibili) le istanze che soddisfano tutti i Cognome, Nome, Nascita
vincoli
• un'istanza può soddisfare altri vincoli (“per
caso”)

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 45 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 46


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Esistenza delle chiavi


Matricola Cognome Nome Corso Nascita
27655 Rossi Mario Ing Inf 5/12/78
78763 Rossi Mario Ing Civile 3/11/76 • Una relazione non può contenere
65432 Neri Piero Ing Mecc 10/7/79
87654 Neri Mario Ing Inf 3/11/76
ennuple distinte ma uguali
67653 Rossi Piero Ing Mecc 5/12/78 • Ogni relazione ha come superchiave
l’insieme degli attributi su cui è definita
• È corretta: soddisfa i vincoli • e quindi ha (almeno) una chiave
• Ne soddisfa anche altri ("per caso"):
• Cognome, Corso è chiave

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 47 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 48


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

8
Importanza delle chiavi Chiavi e valori nulli

• l’esistenza delle chiavi garantisce • In presenza di valori nulli, i valori della


l’accessibilità a ciascun dato della base chiave non permettono
di dati • di identificare le ennuple
• le chiavi permettono di correlare i dati in • di realizzare facilmente i riferimenti da
relazioni diverse: altre relazioni
• il modello relazionale è basato su
valori

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 49 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 50


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Chiave primaria
Matricola Cognome Nome Corso Nascita
NULL NULL
NULL Mario Ing Inf 5/12/78 • Chiave su cui non sono ammessi nulli
78763 Rossi Mario Ing Civile 3/11/76 • Notazione: sottolineatura
65432 Neri Piero Ing Mecc 10/7/79
Matricola Cognome Nome Corso Nascita
87654
87654 Neri
Neri Mario
Mario Ing
Ing Inf
Inf NULL
NULL 86765 NULL Mario Ing Inf 5/12/78
NULL
NULL Neri
Neri Mario
Mario NULL
NULL 5/12/78
5/12/78 78763 Rossi Mario Ing Civile 3/11/76
65432 Neri Piero Ing Mecc 10/7/79
• La presenza di valori nulli nelle chiavi 87654 Neri Mario Ing Inf NULL
deve essere limitata
43289 Neri Mario NULL 5/12/78
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 51 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 52
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Infrazioni
Integrità referenziale Codice Data Vigile Prov Numero
34321 1/2/95 3987 MI 39548K
• informazioni in relazioni diverse sono 53524 4/3/95 3295 TO E39548
correlate attraverso valori comuni 64521 5/4/96 3295 PR 839548
• in particolare, valori delle chiavi 73321 5/2/98 9345 PR 839548
(primarie)
• le correlazioni debbono essere Vigili Matricola Cognome Nome
"coerenti" 3987 Rossi Luca
3295 Neri Piero
9345 Neri Mario

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 53 24/09/2002


7543 Mori
Atzeni-Ceri-Paraboschi-Torlone,
Gino 54
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

9
Infrazioni Vincolo di integrità referenziale
Codice Data Vigile Prov Numero
34321 1/2/95 3987 MI 39548K
• Un vincolo di integrità referenziale
53524 4/3/95 3295 TO E39548
(“foreign key”) fra gli attributi X di
64521 5/4/96 3295 PR 839548
una relazione R1 e un’altra relazione
73321 5/2/98 9345 PR 839548 R2 impone ai valori su X in R1 di
comparire come valori della chiave
Auto Prov Numero Cognome Nome primaria di R2
MI 39548K Rossi Mario
TO E39548 Rossi Mario
PR 839548 Neri Luca
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 55 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 56
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Violazione di vincolo di integrità


referenziale
• vincoli di integrità referenziale fra: Infrazioni
Codice Data Vigile Prov Numero
• l’attributo Vigile della relazione 34321 1/2/95 3987 MI 39548K
INFRAZIONI e la relazione VIGILI 53524 4/3/95 3295 TO E39548
• gli attributi Prov e Numero di 64521 5/4/96 3295 PR 839548
INFRAZIONI e la relazione AUTO 73321 5/2/98 9345 PR 839548
Auto Prov Numero Cognome Nome
MI E39548 Rossi Mario
TO F34268 Rossi Mario
PR 839548 Neri Luca
24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 57 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 58
Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Vincoli di integrità referenziale:


Integrità referenziale e valori nulli
commenti
Impiegati Matricola Cognome Progetto
• Giocano un ruolo fondamentale nel 34321 Rossi IDEA
concetto di “modello basato su valori” 53524 Neri XYZ
• In presenza di valori nulli i vincoli 64521 Verdi NULL

possono essere resi meno restrittivi 73032 Bianchi IDEA


• Sono possibili meccanismi per il Progetti Codice Inizio Durata Costo
supporto alla loro gestione ("azioni" IDEA 01/2000 36 200
compensative a seguito di violazioni) XYZ 07/2001 24 120
• Attenzione ai vincoli su più attributi BOH 09/2001 24 150

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 59 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 60


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

10
Azioni compensative Eliminazione in cascata
Impiegati Matricola Cognome Progetto
• Esempio: 34321 Rossi IDEA
• Viene eliminata una ennupla 53524 Neri XYZ
causando una violazione 64521 Verdi NULL

• Comportamento “standard”: 73032 Bianchi IDEA


• Rifiuto dell'operazione Progetti Codice Inizio Durata Costo
• Azioni compensative: IDEA 01/2000 36 200
• Eliminazione in cascata XYZ 07/2001 24 120
• Introduzione di valori nulli BOH 09/2001 24 150

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 61 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 62


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Introduzione di valori nulli Vincoli multipli su più attributi


Impiegati Matricola Cognome Progetto Incidenti
34321 Rossi IDEA
Codice Data ProvA NumeroA ProvB NumeroB
53524 Neri XYZ
NULL
34321 1/2/95 TO E39548 MI 39548K
64521 Verdi NULL
73032 Bianchi IDEA 64521 5/4/96 PR 839548 TO E39548

Progetti Codice Inizio Durata Costo Auto Prov Numero Cognome Nome
IDEA 01/2000 36 200 MI 39548K Rossi Mario
XYZ 07/2001 24 120 TO E39548 Rossi Mario
BOH 09/2001 24 150 PR 839548 Neri Luca

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 63 24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 64


Basi di dati, Capitolo 2 Basi di dati, Capitolo 2

Vincoli multipli su più attributi, 2

• 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

24/09/2002 Atzeni-Ceri-Paraboschi-Torlone, 65
Basi di dati, Capitolo 2

11

Potrebbero piacerti anche