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.5. Il modello relazionale Vincoli di n-pla e vincoli di chiave - 1
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Vincoli di ennupla Esprimono condizioni sui valori di ciascuna ennupla in una relazione Esempio: non ci possono essere due ennuple con lo stesso numero di matricola Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Sintassi per i vincoli di ennupla ed esempi Definiamo una sintassi per i vincoli: espressione booleana (AND, OR, NOT) di atomi (condizioni elementari) che confrontano (>, >=, =, <, <=, ≠) valori di attributo o espressioni aritmetiche su di essi (Voto 18) AND (Voto 30) (Voto = 30) OR NOT (Lode = "e lode") Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.5.1 Descrivi in linguaggio italiano il vincolo (Voto 18) AND (Voto 30) Risposta In ogni ennupla il voto deve essere maggiore o uguale a 18 e minore o uguale a 30 Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.5.1 Descrivi in linguaggio italiano il vincolo (Voto 18) AND (Voto 30) Altra risposta (piu’ sintetica ma equivalente) In ogni ennupla il voto e’ compreso tra 18 e 30 Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Valore di verita’ dei vincoli di n-pla Per calcolare il valore di verita‘ di un vincolo in una n-pla, occorre sostituire i valori degli attributi nella n-pla e poi calcolare il valore vero o falso. Ad esempio per la n-pla <……, Voto: 24, ……> Il valore del vincolo: (Voto 18) AND (Voto 30) e‘ 24 >= 18 AND 24 ≤ 30 = vero Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di ennupla, esempio Impiegato Rossi Neri Bruni Stipendi Lordo 55.000 45.000 47.000 Netto 42.500 35.000 36.000 Ritenute 12.500 10.000 11.000 Domanda 3.5.2 Quale vincolo di n-pla vale Tra gli attributi Lordo, Ritenute, Netto? Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Risposta Impiegato Rossi Neri Bruni Stipendi Lordo 55.000 45.000 47.000 Netto 42.500 35.000 36.000 Ritenute 12.500 10.000 11.000 Lordo = (Ritenute + Netto) Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Esempio di vincoli di ennupla che gia‘ conosciamo (Voto = 30) OR NOT (Lode = "e lode") Studente Voto Lode Corso 32 01 276545 30 e lode 02 787643 27 03 739430 24 04 Esami vero falso 27 e lode Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di relazione: Vincoli di chiave Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Nella vita comune …… Nella vita comune noi abbiamo spesso bisogno di identificare un oggetto, una persona, un luogo. Ad esempio, per identificare una persona in un gruppo possiamo indicarla con un dito “Vedi quel tipo? L’ho conosciuto 10 anni fa” Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Nelle basi di dati …… Nelle basi di dati le singole ennuple rappresentano oggetti della realta’ Ad esempio una tabella Studente (Matricola, Nome, Cognome, Sesso) rappresenta un insieme di studenti universitari. Noi abbiamo bisogno di un vincolo di integrita’ che ci permetta di identificare univocamente ogni studente. Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Vincoli di chiave - motivazione Abbiamo necessita’ di individuare informazioni che ci permettano di rappresentare ogni oggetto di interesse con una ennupla differente e identificarlo quando se ne abbia necessita’ Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.5.2 Nella tabella Studente (Matricola, Nome, Cognome, Sesso) quali insiemi di attributi della tabella identificano univocamente, senza ambiguita’, uno studente? Due possibili risposte sono La matricola Il nome e cognome Quale e’ la risposta giusta? La matricola, perche’, soprattutto in universita’ grandi, ci potrebbero essere studenti differenti con stesso nome e cognome Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Identificazione delle ennuple Studente 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 Nella tabella Studente non ci sono due ennuple con lo stesso valore per l‘ attributo Matricola non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Altro esempio di identificazione di ennupla Studenti Uno studente e’ identificato dall’ attributo Matricola Matricola 276545 787643 Cognome Rossi Neri Bianchi Nome Mario Piero Luca 787643 787646 Esami Un esame e’ identificato dagli attributi Studente e Corso Studente Voto Lode Corso 30 01 276545 e lode 02 787643 27 03 739430 24 04 Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Il concetto di 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) Es. Matricola e‘ chiave perche‘ e‘ minimale. 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
Una superchiave che non e‘ 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 + Cognome] non sono una chiave: Sono superchiave Non sono superchiave minimale, perche‘ lo e‘ Matricola Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill Domanda 3.5.4 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 In questa relazione [Cognome + Nascita] e‘ superchiave? Risposta: No, vi sono due Rossi nati il 5/12/78 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’ di ennupla Sintassi di vincolo di integrita’ Valore di verita’ di vincolo di integrita’ Vincolo di integrita’ di relazione Vincolo di Superchiave Vincolo di Chiave Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill