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

15 . Il modello relazionale Vers . 6.2 – Gennaio 2023
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