5° Anno TEORIA 3. Un modello logico: il modello relazionale | Page 18

15. Il modello relazionale Vers. 8.0 – Gennaio 2026
Vincoli di integrità nel modello logico relazionale
Sappiamo che una base di dati è un insieme di relazioni che varia nel tempo e che è soggetto a continue modifiche, cancellazioni ed inserimenti di nuovi dati. Abbiamo già detto che tali operazioni su una base di dati devono essere eseguite rispettando un insieme di regole che servono per mantenere l’ integrità dei dati.
Quindi per specificare il fatto che alcune relazioni sono corrette dal punto di vista di chi sviluppa l’ applicazione ed altre non lo sono, viene introdotto il concetto di vincolo di integrità.
DEF: Si definisce vincolo di integrità( nel modello relazionale) una proprietà che deve essere soddisfatta da tutte le istanze di una o più relazioni affinchè le informazioni contenute nella base dati restino corrette e significative( ossia consistenti) per qualsiasi utente / applicazione le utilizzi.
Esempio: consideriamo la relazione Dipendente che contiene informazioni anagrafiche relative ad un lavoratore di una certa azienda espressa in forma tabellare:
Matricola Cognome Nome Stipendio DataNascita DataAssunzione 2345 Rossi Gianni 1200.00 01 / 01 / 1987 04 / 09 / 1986 4667 Neri Alfonso-1250.00 08 / 07 / 1971 05 / 09 / 2006 4667 Bianchi Adele 1300.00 12 / 08 / 1988 06 / 09 / 2006
Oss. 1: L’ attributo“ Stipendio” del dipendente“ Neri Alfonso” ha un valore pari a-1250.00 che pur essendo corretta dal punto di vista del tipo del dominio intero(-1250.00 è un numero intero negativo), rappresenta un dato inverosimile per uno stipendio reale;
Oss. 2: Nella relazione“ Dipendente” vi sono due ennuple che hanno lo stesso valore per l’ attributo Matricola che pur essendo del tutto lecito dal punto di vista strutturale, porta ad una incongruenza nella rappresentazione della realtà che si vuole modellare in quanto non è possibile che due lavoratori abbiano lo stesso numero di matricola;
Oss. 3: Nella relazione“ Dipendente” vi è una ennupla che ha nel campo DataNascita e DataAssunzione due valori del tutto leciti dal punto di vista del tipo del dominio“ data” ma che portano ad una incongruenza nella rappresentazione della realtà che si vuole modellare in quanto non è possibile che un dato lavoratore abbia data di nascita successiva alla data di assunzione.
Conseguenze: in questo caso dovremmo poter specificare:- un vincolo di integrità che ci assicuri che lo stipendio sia un numero maggiore di zero;- un vincolo di integrità che affermi che non possano esserci due dipendenti con lo stesso numero di matricola;- un vincolo di integrità che affermi che per ciascun dipendente occorre controllare che la data di assunzione sia successiva alla data di nascita.
Alla luce dell’ esempio fatto possiamo considerare ogni vincolo come un’ asserzione( ricorda la preposizione dell’ algebra di Boole) che per ogni istanza di una certa relazione possa essere solamente vera oppure falsa.
Ciò significa che riguardo a tutte le varie istanze possibili sulla base dei domini, degli schemi di relazione e degli schemi di base di dati verranno considerate accettabili esclusivamente quelle istanze di base di dati per le quali TUTTI I VINCOLI DI INTEGRITA’ risultino veri( ossia possono verificarsi nella realtà di interesse)
Se arriva un dato che non rispetta un vincolo di integrità, diremo che quel dato( quell’ istanza) viola un vincolo qualsiasi di integrità.
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 18