![]() |
|
|
||
|
![]() |
|
Quando si dichiara una relazione tra i campi (collegamento di dati) di due o più tabelle si crea un'associazione tra i records delle rispettive tabelle. Se ad un record della prima tabella corrispondono uno o più records della seconda, allora, cancellare (o modificare il campo dal quale parte la relazione) quel record (che appartiene alla prima tabella) significa alterare l'integrità delle relazioni che da esso prendevano vita. Il vincolo d'integrità è costituito da procedure che si occupano di mantenere la corretta gestione delle relazioni e delle regole che ne conseguono. Nota: Il principio del vincolo d'integrità è fatto salvo nelle relazioni che sono dichiarate con l'apposita procedura di dichiarazione delle relazioni. Per tutte le altre relazioni che sono dichiarate in particolari ambienti di lavoro (come, ad esempio, nell'ambiente di ricerca dei dati) tale vincolo non viene osservato dal motore (gestore) del database. Poniamo come esempio, la relazione che è esposta graficamente nell'immagine. E' di tipo uno ad uno (come si vede dai due numeri "1" che sono posti accanto il campo interessato di ciascuna tabella), che significa: ad ogni elemento della prima tabella ne corrisponde uno ed uno soltanto della seconda tabella, dato che i due campi sono anche chiavi primarie delle rispettive tabelle. Si tratta allora di una relazione biunivoca tra insiemi distinti e separati. |
![]() |
|
Entriamo nell'ambiente della prima tabella (denominata "TabellaRubrica") e tentiamo di cancellare un record (quello che contiene nel campo "Identificativo" il valore "0002"). Posizioniamo il mouse sul rettangolo alla sinistra dei campi del record e premiamo il pulsante destro. Nel menù a discesa che appare, selezioniamo la voce "Elimina riga". |
![]() |
|
Ci viene richiesta la conferma. Clicchiamo sulla voce "Si". |
![]() |
|
In questo caso, per salvare il vincolo di integrità delle relazioni e delle regole che le riguardano, appare il messaggio "Errore nel cancellare i record di dati specificati". Questo avviene perché da un campo dei records della tabella sono effettuate delle relazioni verso un campo dei records di un'altra tabella. |
![]() |
|
Se, invece, effettuiamo la stessa fase con un record (quello che contiene nel campo "Identificatore" il valore "0002") che appartiene alla seconda tabella di dati (denominata "TabellaRubricaDettagli") ... |
![]() |
|
... dopo la usuale conferma di effettuare la cancellazione del record ... |
![]() |
|
... esso viene cancellato, dato che, in questo caso, non viene alterato alcun vincolo di integrità. |
