Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAldobrandino Magnani Modificato 10 anni fa
1
Informatica Introduzione alle basi di dati Lezione 6 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico: 2005-2006
2
2 Vincoli interrelazionali Vincoli interrelazionali sono i vincoli che coinvolgono più relazioni del base di dati Per verificarli, considerare istanze di più relazioni
3
3 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
4
4 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
5
5 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]
6
6 Vincoli di integrità referenziale KA B… R1R2
7
7 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 1 i p
8
8 Vincoli di integrità referenziale KAi Bi… R1R2
9
9 Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero 98755426/10/0245634RM2F7643 63087615/10/9345653FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto
10
10 Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero 98755426/10/0245634RM2F7643 63087615/10/9345653FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto
11
11 Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero 98755426/10/0245634RM2F7643 63087615/10/9345653FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto
12
12 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
13
13 Vincoli di integrità referenziale Non tutti i DBMS permettono di definire chiavi primarie Definire esplicitamente attributi coinvolti in vincoli di integrità
14
14 Esercizi La tabella seguente soddisfa il vincolo (SeggiAperti>400) AND (SeggiAperti<600) ? RegioneSeggiAperti Piemonte567 Lombardia670 Puglia504 Sicilia594
15
15 Esercizi La tabella seguente soddisfa il vincolo (NOT(Lode = “lode”)) OR (Voto = 30) ? StudenteVotoLode 12345619No 65432130No 45612324No 32165420Sì 13524624No
16
16 Esercizi Quale sono le superchiave (o qual è la superchiave) della tabella seguente? StudenteVotoLode 12345619No 65432130No 45612324No 32165430Sì 13524625No
17
17 Esercizi Quale sono le chiave (o qual è la chiave) della tabella seguente? StudenteVotoLode 12345619No 65432130No 45612324No 32165430Sì 13524625No
18
18 Esercizi Esiste un vincolo di integrità referenziale dal attributo Studente al attributo Matricola? StudenteVotoLodeData 12345619No1/2/06 65432130No3/2/06 45612324No2/2/06 32165430Sì7/2/06 12345621No9/2/06 13524625No1/2/06 MatricolaNomeCognome 654321MarioRossi 321654FrancaVerde 123456MartaBianco 456123LiviaNero 135246GianfrancoBianco
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.