Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C. Batini 3.4. Il modello relazionale Vincoli di integrita’ - Introduzione Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Relazioni come rappresentazione di una realta‘ osservata Possiamo vedere una relazione come la rappresentazione di un frammento di realta‘ osservata Studenti Realta’ osservata Relazione Giovanni Antonio Elena Ada Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di integrità – introduzione - 1 Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano stati possibili nella realta‘ Giovanni Ada Antonio Elena Fido ? cagnolino Relazione Studenti Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di integrità – introduzione - 2 Esempio: puo‘ esistere nella realta‘ uno studente che a un esame prende come voto “27 e lode“? Rossi Fisica 27 e lode Relazione Studenti e esami superati Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Esempio: vogliamo rappresentare gli studenti e gli esami che hanno superato con voto, lode (si, no), data Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Rappresentiamo prima lo schema ER (rappresentazione grafica semplificata per attributi e identificatori) Studente Esame Corso Voto Data Lode Matricola Cognome Nome Nome Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.4.1 Rappresenta lo schema ER con due tabelle nel modello relazionale Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Una possibile soluzione Studente Voto Lode Corso 30 01 276545 e lode 02 787643 03 24 04 Esami Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Domanda 3.4.2 Considera ora quest‘altra istanza Quali aspetti delle tabelle non vanno bene? Un voto non puo’ avere valore 32 Studente Voto Lode Corso 32 01 276545 30 e lode 02 787643 27 03 739430 24 04 Esami 32 Un voto non puo’ avere valore 27 e lode 27 e lode Non ci puo’ essere qui un numero di matricola che non compare in Studenti 739430 Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti Non ci possono essere due studenti con la stessa matricola 787643 Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Abbiamo scoperto un altro concetto fondamentale: il vincolo di integrità Proprietà che deve essere soddisfatta da tutte le istanze di uno schema che rappresentano informazioni corrette per l’applicazione Un vincolo di integrita‘ è una funzione booleana (o predicato) che associa ad ogni istanza r: Il valore vero se la istanza e‘ corretta (rappresentazione della realta‘) Il valore falso se la istanza e‘ scorretta (rappresentazione della realta‘) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di integrità, perché ne abbiamo bisogno? 1. Permettono una rappresentazione più accurata della realtà, e quindi contribuiscono alla qualità dei dati, cioe‘ alla proprieta‘ dei dati di essere una corretta rappresentazione della realta‘ 3. Sono utili nella progettazione perche‘ portano a generare uno schema di elevata qualita‘ Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Tipi di vincoli 1. Vincoli intrarelazionali, cioe‘ definiti all‘interno di una relazione 2. Vincoli interrelazionali, cioe‘ definiti tra due o piu‘ relazioni Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
I vincoli intrarelazionali Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Tipi di vincoli intrarelazionali Vincoli su valori (o di dominio), cioe‘ su singoli valori di attributi Vincoli di ennupla, cioe‘ definiti sulle ennuple di una relazione Vincoli relativi all‘insieme di ennuple di una relazione Vincoli di relazione caso importante, vincoli di chiave (vedi avanti) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vediamo per concludere questa lezione un esempio di vincolo di valore Studente Voto Lode Corso 32 01 276545 30 e lode 02 787643 27 03 739430 24 04 Esami Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti Il voto puo’ assumere solo valori tra 18 e 30, 32 e’ un valore sbagliato Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Domanda 3.4.3 Per i quattro vincoli di integrita‘ dell‘esempio, definire a quali tipologie appartengono Risposte Vincolo di valore Un voto non puo’ avere valore 32 Studente Voto Lode Corso 32 01 276545 30 e lode 02 787643 27 03 739430 24 04 Esami 32 Un voto non puo’ avere valore 27 e lode Vincolo di ennupla 27 e lode Non ci puo’ essere qui un numero di matricola che non compare in Studenti 739430 Vincolo interrelazionale Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti Non ci possono essere due studenti con la stessa matricola 787643 Vincolo di relazione Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Concetti introdotti Vincolo di integrita’ Vincolo intrarelazionale Vincolo di valore Vincolo di ennupla Vincolo di relazione Vincolo di chiave (vedi in seguito) Vincolo interrelazionale Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill