180 likes | 333 Views
Informatica. Introduzione alle basi di dati Lezione 6 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006. Vincoli interrelazionali. Vincoli interrelazionali sono i vincoli che coinvolgono più relazioni del base di dati
E N D
Informatica Introduzione alle basi di dati Lezione 6 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006
Vincoli interrelazionali • Vincoli interrelazionali sono i vincoli che coinvolgono più relazioni del base di dati • Per verificarli, considerare istanze di più relazioni
Vincoli interrelazionali • Vincoli di integrità referenziale (foreign keys, referential integrity constraints): • Servono a garantire che i riferimenti tra tabelle siano possibili • Un vincolo di integrità referenziale fra insieme di attributi X di una relazione R1 ed una relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R1 compaiono come valori della chiave (primaria) dell’istanza di R2
Vincoli di integrità referenziale • Per esempio: le relazioni Studenti(Matricola,Cognome,Nome,DataNascita) Corsi(Codice,Titolo,Docente) Esami(Numero,Studente,Voto,Lode,Corso) • Un numero può comparire in attributo Studente di una tupla di relazione Esami solo se compare come valore di Matricola in istanza di relazione Studenti
Vincoli di integrità referenziale • Se chiave di R2 è composta da un solo attributo B, X è composto di un solo attributo A • Vincolo di integrità referenziale tra A in R1 e B in R2 è soddisfatto se, per ogni tupla t1 in R1 per cui t1[A] non è nullo, esiste una tupla t2 in R2 tale che t1[A] = t2[B]
Vincoli di integrità referenziale • Se chiave di R2 contiene più attributo bisogna stabilire corrispondenza tra attributi di R1 e R2 • Chiave di R2: {B1,…,Bp} • X={A1,…,Ap} • Vincolo di integrità referenziale tra {A1,…,Ap} in R1 e {B1,…,Bp} in R2 è soddisfatto se, per ogni tupla t1 in R1 per cui t1[{A1,…,Ap}] non contiene valori nulli, esiste una tupla t2 in R2 tale che t1[Ai] = t2[Bi] per 1ip
Vincoli di integrità referenziale Infrazioni Agenti Auto
Vincoli di integrità referenziale Infrazioni Agenti Auto
Vincoli di integrità referenziale Infrazioni Agenti Auto
Vincoli di integrità referenziale • Ordinamento di attributi in vincoli referenziali è essenziale perché non sempre la corrispondenza tra tabelle si può stabilire per nome di attributo • Per esempio: • Incidenti(Codice,Prov1,Numero1,Prov2,Numero2) • Auto(Prov,Numero,Proprietario,Indirizzo) • Prov1, Numero1 e Prov2, Numero2 sono diversi dai nomi della chiave primaria di Auto
Vincoli di integrità referenziale • Non tutti i DBMS permettono di definire chiavi primarie • Definire esplicitamente attributi coinvolti in vincoli di integrità
Esercizi • La tabella seguente soddisfa il vincolo (SeggiAperti>400) AND (SeggiAperti<600) ?
Esercizi • La tabella seguente soddisfa il vincolo (NOT(Lode = “lode”)) OR (Voto = 30) ?
Esercizi • Quale sono le superchiave (o qual è la superchiave) della tabella seguente?
Esercizi • Quale sono le chiave (o qual è la chiave) della tabella seguente?
Esercizi • Esiste un vincolo di integrità referenziale dal attributo Studente al attributo Matricola?