Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C. Batini 3.6. Il modello relazionale Vincoli di chiave - 2
Riprendiamo il concetto di chiave Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Chiave Insieme di attributi che identificano le ennuple di una relazione Formalmente: un insieme K di attributi è superchiave per una relazione r se r non contiene due ennuple distinte t1 e t2 con t1[K] = t2[K]. Es. Matricola + cognome e‘ superchiave K è anche chiave per r se è una superchiave minimale per r (cioè non contiene un’altra superchiave) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Una chiave Matricola 27655 78763 65432 Nome Mario Piero 87654 67653 Cognome Rossi Neri Corso Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 Matricola è una chiave: è superchiave contiene un solo attributo e quindi è minimale Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Un'altra chiave Matricola 27655 78763 65432 Nome Piero Mario 87654 67653 Cognome Neri Rossi Corso Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 Rossi 5/12/78 Mario Rossi Mario 3/11/76 Domanda: ci sono altre chiavi? Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Un'altra chiave Matricola 27655 78763 65432 Nome Piero Mario 87654 67653 Cognome Neri Rossi Corso Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 Rossi 5/12/78 Mario Rossi Mario 3/11/76 Cognome, Nome, Nascita è un’altra chiave: è superchiave e‘ minimale (perche‘ <Cognome, Nome>, <Cognome Nascita>, <Nome Nascita> non sono superchiavi) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Altro esempio Matricola 27655 78763 65432 Nome Mario Piero 87654 67653 Cognome Rossi Neri Corso Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 Matricola, Cognome, Nome, Nascita: è superchiave contiene una superchiave, quindi non e‘ a sua volta chiave Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Un'altra chiave?? Matricola 27655 78763 65432 Nome Mario Piero 87654 67653 Cognome Rossi Neri Corso Ing Inf Ing Mecc Ing Civile Nascita 5/12/78 10/7/79 3/11/76 Non ci sono ennuple uguali su Cognome e Corso: Anche Cognome e Corso formano una chiave! Ma è sempre vero, cioe‘ e‘ vero per tutte le istanze dello schema di relazione? Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli, schemi e istanze I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati Sono proprieta‘ dello schema (cioe‘ fanno riferimento a tutte le istanze) Ad uno schema associamo un insieme di vincoli e consideriamo corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli un'istanza può soddisfare altri vincoli (“per caso”) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Data la relazione …… Studenti Matricola Cognome Nome Corso Nascita Domanda 3.6.1: Quali sono le chiavi dello schema di relazione? Risposta 1. Matricola 2. Cognome, Nome, Nascita Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Studenti Matricola Cognome Nome Corso Nascita Domanda 3.6.2: Perche‘ [Matricola + Corso] non e‘ chiave? Risposta Perche‘ lo e‘ Matricola e dunque [Matricola + Corso] e‘ solo superchiave. Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Domanda 3.6.3: la relazione … Matricola 27655 78763 65432 Nome Mario Piero 87654 67653 Cognome Rossi Neri Corso Ing Inf Ing Mecc Ing Civile Nascita 5/12/78 10/7/79 3/11/76 … e‘ corretta, soddisfa cioe‘ i vincoli di chiave? Risposta Si, basta verificare che non ci siano due ennuple con la stessa Matricola, e con stesso Cognome, Nome, Nascita Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Domanda 3.6.4: la relazione … Matricola 27655 78763 65432 Nome Mario Piero 87654 67653 Cognome Rossi Neri Corso Ing Inf Ing Mecc Ing Civile Nascita 5/12/78 10/7/79 3/11/76 … soddisfa “per caso“ anche altri vincoli di chiave? Risposta Si, ad esempio Cognome, Corso è chiave Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Esistenza delle chiavi Una relazione non può contenere ennuple distinte ma uguali Ogni relazione ha come superchiave l’insieme degli attributi su cui è definita e quindi ha (almeno) una chiave. Esempio: Rappresentiamo per ogni dipartimento di una universita‘ i fornitori di beni (es CD, matite, carta, ecc.) e i beni forniti Dipartimento Fornitore Tipo Bene Domanda 3.6.5: quale e’ la chiave? Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Risposta Dipartimento Fornitore Tipo Bene La chiave e’ composta dall’insieme dei tre attributi. Infatti, ogni dipartimento puo’ acquistare da tanti fornitori, e da ogni tanti beni, e quindi tutti e tre gli attributi partecipano nella identificazione Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.6.6 Supponiamo ora che si voglia rappresentare per ogni Dipartimento e ogni forniture le singole forniture fornite, con la data e la quantita’ fornita. Ad esempio si vuole rappresentare il fatto che il Dipartimento di Storia ha acquistato dal fornitore Rossi 100 matite il 3 gennaio 2008, e cosi’ via. Come si trasforma la relazione? Dipartimento Fornitore Tipo Bene Dipartimento Fornitore Tipo Bene Quantita’ Data Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.6.7 Quale e’ la nuova chiave? Dipartimento Fornitore Tipo Bene Quantita’ Data Risposta La nuova chiave e’ [Dipartimento, Fornitore, Tipo Bene, Data] Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Importanza delle chiavi Le chiavi sono l‘equivalente nel modello relazionale della nostra esigenza nella realta‘ di identificare e distinguere gli oggetti gli uni dagli altri l’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati le chiavi permettono di collegare i dati in relazioni diverse: il modello relazionale è basato su valori Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Esempio di collegamento di valori tramite chiavi Studenti Esami Corsi Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Studenti Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 9283 Verdi Luisa 12/11/1979 3456 Rossi Maria 01/02/1978 Esami Studente Voto Corso 3456 30 04 3456 24 02 9283 28 01 6554 26 01 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi Corsi Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Matricola Cognome Nome Data di nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo 03/11/1976 3456 Maria 01/02/1978 9283 Verdi Luisa 12/11/1979 studenti esami Studente Voto Corso 30 24 28 26 Codice Titolo Docente 01 Analisi Mario 02 Chimica Bruni 04 Verdi corsi Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Esercizio 3.6.1 Svolgi l’esercizio 2.1 del testo di riferimento Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Esercizio 3.6.2 Svolgi l’esercizio 2.2 del testo di riferimento Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Concetti introdotti Collegamento logico di concetti in diverse relazioni tramite chiavi Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill