Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoMarzio Costantini Modificato 11 anni fa
1
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
2
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 linsieme dei costrutti per descrivere lorganizzazione dei dati allinterno di una Base di Dati.
3
3 Relazione e tabella Il 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)
4
4 Relazione matematica Prima di definire una relazione matematica, dobbiamo dare la definizione di prodotto cartesiano di due insiemi D 1 e D 2 : dati due insiemi D 1 e D 2, il prodotto cartesiano D 1 xD 2 è linsieme di tutte le coppie (v 1,v 2 ) tali che v 1 è un elemento di D 1 e v 2 è un elemento di D 2.
5
5 Relazione matematica Ad esempio se D 1 ={1,2,4} e D 2 ={a,b}, il prodotto cartesiano D 1 xD 2 è linsieme delle 3x2=6 coppie: {(1,a), (1,b), (2,a), (2,b), (4,a), (4,b)}
6
6 Relazione matematica Una relazione matematica su due insiemi D 1 e D 2 (chiamati domini della relazione) è un sottoinsieme r del prodotto cartesiano D 1 xD 2. Ad esempio dati i due insiemi D 1 ={1,2,4} e D 2 ={a,b}, una possibile relazione matematica sui domini D 1 e D 2 è 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.
7
7 Relazione matematica Il prodotto cartesiano e la relazione matematica degli esempi precedenti possono anche essere rappresentati in forma tabellare: 1a 1b 2a 2b 4a 4b D 1 xD 2 1a 1b 4b r
8
8 Relazione matematica In generale, dati n insiemi D 1, D 2, …, D n (anche non distinti) il prodotto cartesiano D 1 xD 2 x…xD n è linsieme di tutte le n-ple (o ennuple) (v 1,v 2,…,v n ) tali che v i è un elemento di D i per ogni i che va da 1 a n. Una relazione matematica sui domini D 1, D 2, …, D n è un sottoinsieme r del prodotto cartesiano D 1 xD 2 x…xD n. 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.
9
9 Relazione matematica Quindi una relazione matematica è: un insieme di n-ple al loro interno ordinate (v 1 appartiene a D 1, v 2 appartiene a D 2, …, v n appartiene a D n ) un insieme, e pertanto: non esiste ordinamento tra le diverse n-ple le n-ple sono tutte distinte
10
10 Relazione matematica Esempio di relazione matematica rappresentata in forma tabellare: JuveLazio Milan JuveRoma Milan 31 02 02 01 I domini sono 4 (grado della relazione): D 1 : insieme di tutte le possibili stringhe di caratteri D 2 : insieme di tutte le possibili stringhe di caratteri D 3 : insieme degli interi >= 0 D 4 : insieme degli interi >= 0
11
11 Relazione matematica Nellesempio precedente si ha una relazione matematica con 4 n-ple (cardinalità della relazione). Si noti però che i due domini D 1 e D 2, pur rappresentando lo stesso insieme, hanno un ruolo che dipende dalla posizione nella relazione. Infatti, D 1 fa riferimento alla squadra che gioca in casa e il D 2 fa riferimento alla squadra che gioca fuori casa. Lo stesso vale per i due domini D 3 e D 4. Il primo è il punteggio realizzato dalla squadra che gioca in casa, mentre il
12
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
13
13 Relazione matematica della 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 dellesempio delle squadre si può associare: il nome SquadraCasa al dominio D 1 il nome SquadraOspite al dominio D 2 il nome RetiCasa al dominio D 3 il nome RetiOspite al dominio D 4
14
14 Relazione matematica e nella rappresentazione tabellare si aggiungono i nomi (o attributi) come intestazione delle colonne della tabella che rappresenta la relazione.
15
15 Relazione/tabella Esempio di relazione matematica rappresentata in forma tabellare con attributi dei domini JuveLazio Milan JuveRoma Milan 3 0 0 0 1 2 2 1 SquadraCasa SquadraOspiteRetiCasaRetiOspite
16
16 Relazione/tabella Si ottiene dunque una struttura relazionale non più posizionale. Modificando infatti lordine delle colonne il significato dellinformazione contenuta non cambia (come si vede sotto in cui la prima colonna è stata scambiata con la seconda e la terza con la quarta) LazioJuve MilanLazio RomaJuve MilanRoma 1 2 2 1 3 0 0 0 SquadraOspite SquadraCasaRetiOspiteRetiCasa
17
17 Il termine relazione Il 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
18
18 Relazione/tabella Una 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
19
19 Relazione/tabella lordinamento tra le righe è irrilevante lordinamento tra le colonne è irrilevante Una 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.
20
20 Un esempio Si consideri una Base di Dati che organizza i dati relativi alluniversità descritta dal seguente modello E-R: Esame StudenteCorso (0,N) MatricolaCognome Nome Data di nascita CodiceTitolo Docente Voto
21
21 Un esempio Essa può prevedere: una relazione (o tabella), che organizza i dati relativi allentità Studente, avente colonne con attributi: Matricola, Cognome, Nome, DataNascita una relazione (o tabella), che organizza i dati relativi allentità Corso, avente colonne con attributi: Codice, Titolo, Docente una relazione (o tabella), che organizza i dati relativi alla relationship Esame,
22
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.
23
23 Un esempio Esempio di tabella relativa allentità Studente: tabella Studenti 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola CognomeNomeDataNascita Studenti
24
24 Un esempio Esempio di tabella relativa allentità Corso: tabella Corsi 01Analisi 03Chimica 04Chimica Giani Melli Belli Codice TitoloDocente Corsi
25
25 Un esempio Esempio di tabella relativa alla relationship Esame: tabella Esami 27654528 27654527 20076824 01 04 MatricolaStudente VotoCodiceCorso Esami
26
26 Un esempio 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Studenti Esami Corsi
27
27 Definizioni relative al modello relazionale Uno schema di relazione specifica il nome R associato alla relazione e linsieme dei suoi attributi X={A 1,A 2, …,A n }: R(X)= R(A 1,A 2,…,A n ) Ad esempio lo schema della relazione (o tabella) che organizza i dati degli studenti nellesempio precedente è: Studenti(Matricola,Cognome,Nome,DataNascita) A ciascun attributo A i è associato un dominio D i, che è linsieme dei valori possibili per A i
28
28 Definizioni relative al modello relazionale Lo schema della tabella Studenti è evidenziato in rosso 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola CognomeNomeDataNascita Studenti
29
29 Definizioni relative al modello relazionale Uno schema di base di dati è un insieme di schemi di relazione: { R 1 (X 1 ),R 2 (X 2 ),…,R 3 (X m )} Ad esempio lo schema della base di dati nellesempio precedente è: {Studenti(Matricola,Cognome,Nome,DataNascita), Corsi(Codice,Titolo,Docente) Esami(MatricolaStudente,Voto,CodiceCorso)}
30
30 Definizioni relative al modello relazionale 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Lo schema della Base di Dati precedente è evidenziato in rosso
31
31 Definizioni relative al modello relazionale Una 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 sullinsieme X di attributi e un attributo A di X, si indichi con t[A] il valore che lattributo A assume in t. Data una ennupla t sullinsieme X di attributi e un sottoinsieme Y di X, si indichi con t[Y] linsieme dei valori che gli attributi di Y assumono in t.
32
32 Definizioni relative al modello relazionale Ad esempio se X={Codice,Titolo,Docente} è linsieme 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).
33
33 Definizioni relative al modello relazionale Esempio di ennupla per la tabella Corsi 01Analisi 03Chimica 04Chimica Giani Melli Belli Codice TitoloDocente ennupla Corsi
34
34 Definizioni relative al modello relazionale Unistanza di relazione su di uno schema R(X) è un insieme r di ennuple su X Ad esempio unistanza della relazione Studenti che organizza i dati degli studenti nellesempio precedente è evidenziata in rosso 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola CognomeNomeDataNascita Studenti
35
35 Definizioni relative al modello relazionale Unistanza di Base di Dati su di uno schema {R 1 (X 1 ),R 2 (X 2 ),…,R 3 (X m )} è un insieme di istanze di relazione r 1, r 2, …, r m, dove r i (per i da 1 a m) è unistanza di relazione sullo schema R i (X i )
36
36 Definizioni relative al modello relazionale 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Listanza della Base di Dati precedente è evidenziato in rosso
37
37 Definizioni relative al modello relazionale In 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…) listanza (di una relazione o di una Base di Dati) è la parte che varia nel tempo in quanto le Basi di Dati vengono aggiornate costantemente
38
38 Nota Bene! La stessa realtà può essere rappresentata mediante schemi relazionali differenti. Ad esempio i dati relativi allentità Studente e alla relationship Esame dellesempio precedente possono essere organizzati in ununica tabella Studenti2 avente schema: Studenti2(Matricola,Cognome,Nome,DataNa scita,CodiceCorso,Voto) eliminando quindi la tabella Esami dello schema precedente
39
39 Nota Bene! La nuova Base di Dati diventa quindi: 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 01 04 28 24 CodiceCorsoVoto 276545RossiMaria25/11/19710427 Studenti2 Corsi
40
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)
41
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 lapplicazione. 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 lattributo Lode alla tabella Esami.
42
42 Vincoli di integrità 200768Verdi 937653Rossi 937653Bruni Fabio Luca Mario 12/02/1972 10/10/1971 01/12/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente Studenti Esami Corsi 20076836 93765328 93765330 lode MatricolaStudenteVotoLode 05 01 04 CodiceCorso 2765452501
43
43 Vincoli di integrità Quali sono gli aspetti scorretti nellistanza precedente? nella tabella Esami il valore di Voto, in corrispondenza dello studente con matricola 200768, è 36 (e il voto deve essere <= 30!) il valore dellattributo 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!)
44
44 Vincoli di integrità Quali sono gli aspetti scorretti nellistanza 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
45
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 uninformazione corretta. Un vincolo è un predicato che associa ad unistanza un valore booleano: VERO se listanza è corretta FALSO se listanza NON è corretta
46
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à
47
47 Vincoli di integrità I vincoli di integrità sono possono essere di tipo: intrarelazionale, cioè definiti allinterno di una relazione (o tabella) interrelazionale, cioè definiti tra due o più relazioni (o tabelle)
48
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
49
49 Vincoli su singolo valore I 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)
50
50 Vincoli di ennupla I vincoli di ennupla coinvolgono linsieme dei valori di unintera ennupla di una relazione. Ad esempio le ennuple della relazione Esami devono soddisfare il seguente vincolo: (Voto = 30) OR NOT (Lode = lode)
51
51 Vincoli su singolo valore e di ennupla Un vincolo su singolo valore o di ennupla è soddisfatto se ogni ennupla dellistanza della relazione, sulla quale è definito, ha valori che soddisfano il vincolo stesso.
52
52 Vincoli di chiave e di chiave primaria La 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 ununica ennupla. In altre parole si ha la necessità di identificare in maniera univoca le ennuple di una relazione.
53
53 Definizione di superchiave e di chiave Data una relazione (o tabella) avente schema R(X), dove X è linsieme degli attributi, un insieme K contenuto in X è una superchiave per R se R non contiene due ennuple distinte t 1 e t 2 tali che t 1 [K]= t 2 [K]. Si dice che K è superchiave minimale (o semplicemente chiave) se non contiene al suo interno nessunaltra superchiave, cioè se nessun sottoinsieme di K è esso stesso una superchiave.
54
54 Studenti3 Superchiave e chiave (esempi) Nella tabella Studenti3 lattributo 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)... 276545Rossi 485745Rossi 200768Neri 587614Neri Mario Piero Mario 5/12/1978 3/11/1976 10/07/1979 3/11/1976 Matricola CognomeNomeDataNascita Ing Inf Ing Mecc Ing Inf Corso 587544RossiPiero 5/12/1978 Ing El
55
55 … Linsieme di attributi (Cognome, Nome, DataNascita) è una superchiave minimale e quindi è unaltra chiave. Infatti nessun altro sottoinsieme di (Cognome, Nome, DataNascita) è una superchiave... 276545Rossi 485745Rossi 200768Neri 587614Neri Mario Piero Mario 5/12/1978 3/11/1976 10/07/1979 3/11/1976 Matricola CognomeNomeDataNascita Ing Inf Ing Mecc Ing Inf Corso 587544RossiPiero 5/12/1978 Ing El Studenti3 Superchiave e chiave (esempi)
56
56 Superchiave e chiave (esempi) … Linsieme di attributi (Matricola, Cognome, Nome, DataNascita) è una superchiave ma non è una chiave in quanto contiene le due chiavi (Matricola) e (Cognome, Nome, DataNascita). 276545Rossi 485745Rossi 200768Neri 587614Neri Mario Piero Mario 5/12/1978 3/11/1976 10/07/1979 3/11/1976 Matricola CognomeNomeDataNascita Ing Inf Ing Mecc Ing Inf Corso 587544RossiPiero 5/12/1978 Ing El Studenti3
57
57 Superchiave e chiave (esempi) … Linsieme di attributi (Cognome, Corso) è una chiave. 276545Rossi 485745Rossi 200768Neri 587614Neri Mario Piero Mario 5/12/1978 3/11/1976 10/07/1979 3/11/1976 Matricola CognomeNomeDataNascita Ing Inf Ing Mecc Ing Inf Corso 587544RossiPiero 5/12/1978 Ing El Studenti3
58
58 Superchiave e chiave NOTA BENE! Data una relazione avente schema R(X), dove X è linsieme degli attributi, si ha che X è superchiave per definizione. Infatti tutte le ennuple della relazione sono per definizione distinte.
59
59 Vincolo di chiave Dato 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 t 1 e t 2, si ha t 1 [K] diverso da t 2 [K].
60
60 Vincolo di chiave (esempio) Sullo schema della tabella Studenti3 si possono definire ad esempio due vincoli di chiave rispettivamente su K 1 =(Matricola) e su K 2 =(Cognome,Nome,DataNascita). Listanza di Studenti3 delle slide precedenti (usata per definire superchiave e chiave) rispetta chiaramente tali due vincoli. Listanza precedente non rispetterebbe invece un vincolo di chiave definito su K 3 =(Cognome, Nome) in quanto ci sono due ennuple che su K 3 hanno valore (Rossi, Mario)
61
61 Vincolo di chiave Le 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
62
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 (sullattributo Matricola) e quello per la tabella Corsi (sullattributo 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 ununica ennupla di Studenti e a ununica ennupla di Corsi.
63
63 Vincolo di chiave (esempio) 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Studenti Esami Corsi
64
64 Valori nulli In 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
65
65 Valori nulli (esempio) Ad esempio si consideri unistanza della semplice tabella Prefetture sotto riportata RomaVia Manzoni Firenze Tivoli Chiasso Città IndirizzoPrefettura Prefetture
66
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.
67
67 Valori nulli Come si rappresentano i valori nulli nel modello relazionale? Possibilità 1: usare particolari valori del dominio dellattributo. Ad esempio: 0, la stringa nulla, etc. Questa possibilità è un po rischiosa in quanto si potrebbero utilizzare valori che poi diventano significativi…
68
68 Valori nulli Come 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 dellattributo A è un valore del dominio di A oppure il valore NULL.
69
69 Chiavi e valori nulli I 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!
70
70 Vincolo di chiave primaria Dalle 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 primaria Nella 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).
71
71 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Studenti Esami Corsi Vincolo di chiave primaria (esempio)
72
72 Vincolo di integrità referenziale Dati due schemi di relazione R 1 (X 1 ) e R 2 (X 2 ), un vincolo di integrità referenziale (chiave esterna o foreign key) di R 1 (detta interna) rispetto a R 2 (detta esterna o master), impone che un sottoinsieme K 1 di X 1 sia legato ad un sottoinsieme K 2 di X 2, definito come chiave primaria per R 2. In altre parole, tale vincolo impone che ogni ennupla t 1 in R 1 abbia valori su K 1 che compaiano come chiave primaria in R 2. Negli esempi successivi le chiavi esterne sono evidenziate in blu, mentre le chiavi primarie sono evidenziate in rosso.
73
73 Vincolo di integrità referenziale (esempio1) 276545Rossi 485745Neri 200768Verdi 587614Rossi Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 MatricolaCognomeNomeDataNascita 01Analisi 03Chimica 04Chimica Giani Melli Belli CodiceTitoloDocente 27654528 27654527 20076824 01 04 MatricolaStudenteVotoCodiceCorso Studenti Esami Corsi
74
74 Vincolo di integrità referenziale (esempio2) Infrazioni Auto 343211/2/95 535244/3/95 645215/4/96 733215/2/98 MI TO PR 39548K E39548 839548 CodiceDataProvinciaNumero 3987 3295 9345 Vigile MI39548K TOE39548 PR839548 Rossi Neri ProvinciaNumeroCognome Mario Luca Nome Attenzione! Quando si definiscono chiavi esterne che coinvolgono più di un attributo occorre rispettare lordine degli attributi. In questo caso infatti (Provincia, Numero) in Infrazioni fa riferimento a (Provincia,Numero) in Auto presi in questo ordine.
75
75 Vincolo di integrità referenziale (violazione) Cosa succede quando laggiunta, la modifica o la cancellazione di una ennupla viola un vincolo di integrità referenziale? Sono possibili tre meccanismi compensativi: rifiuto delloperazione eliminazione in cascata introduzione di valori nulli
76
76 Vincolo di integrità referenziale (violazione) Ad esempio nella Base di Dati dellesempio precedente (Infrazioni e Auto) se si tenta di eliminare da Auto una ennupla a cui è associata uninfrazione 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.
77
77 Vincolo di integrità referenziale (violazione) Infrazioni Auto MI39548K TOE39548 PR839548 Rossi Neri ProvinciaNumeroCognome Mario Luca Nome 343211/2/95 535244/3/95 645215/4/96 733215/2/98 MI TO PR 39548K E39548 839548 CodiceDataProvinciaNumero 3987 3295 9345 Vigile Eliminazione in cascata della ennupla (53524, 4/3/95, 3295, TO, E39548) da Infrazioni
78
78 Vincolo di integrità referenziale (violazione) Infrazioni Auto 343211/2/95 535244/3/95 645215/4/96 733215/2/98 MI NULL PR 39548K NULL 839548 CodiceDataProvinciaNumero 3987 3295 9345 Vigile MI39548K TOE39548 PR839548 Rossi Neri ProvinciaNumeroCognome Mario Luca Nome Introduzione di valori nulli nella ennupla (53524, 4/3/95, 3295, TO, E39548) in Infrazioni
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.