marcozazza
Amministratori Capi
Numero di messaggi : 94
Punti : 5711
Reputazione : 0
Data d'iscrizione : 20.04.09
Età : 33
Località : Cairo Montenotte
|
Titolo: Relazioni fra tabelle di Access Mar Apr 21, 2009 4:13 pm |
|
|
La "Relazione" è un oggetto che permette la sistemazione logica dei dati all'interno di un database
Scopo di una relazione è inoltre evitare che si verifichi l'immissione di dati ripetuti in tabelle differenti e quindi diminuire la probabilità di errori e ridondanze.
(Per visualizzare la finestra delle relazioni, in qualunque database di access baste dare click sul menù Strumenti, quindi sulla voce 'Relazioni': se la finestra non contiene nulla significa che non sono mai state finora definite finora relazioni tra le tabelle del database)
Nel "groviglio" di queste relazioni è possibile individuare, nella parte bassa dello schema, il legame per esempio tra la tabella dei Continenti e quella delle Nazioni.
La tabella dei Continenti possiede 2 soli campi, un campo "chiave primaria" 'IdContinente' di tipo Numerico Intero ed un campo descrittivo alfabetico di tipo testo, 'Continente'.
La tabella delle Nazioni, tra i suoi sette campi, prevede anch'essa il campo 'IdContinente', che risulta collegato da "relazione" al corrispondente campo nella tabella dei Continenti
Esaminando più a fondo le caratteristiche di questa relazione per mezzo di Access si potrà notare che questa relazione è di tipo "uno a molti", il che significa che ciascun record della tabella dei Continenti deve avere un codice 'IdContinente' univoco, mentre molti records nella tabella delle Nazioni potranno utilizzare la medesima "chiave esterna".
Questa definizione consente la codifica di 'n' Nazioni quali appartenenti allo stesso Continente.
Facciamo ora doppio click sulla linea che collega la tabella Nazioni a quella dei Continenti: viene visualizzata la finestra di dialogo 'Modifica Relazioni'
Notiamo che la casella di opzione 'Applica integrità referenziale' è abilitata. In base a questo vincolo il database impedirà con tutte le sue forze che si verifichi la presenza di un record dotato di chiave esterna inesistente come chiave primaria nella tabella relazionata.
In altre parole Access non consentirà l'inserimento di una Nazione in un Continente che non esiste e viceversa non consentirà la cancellazione di un Continente cui fanno riferimento una o più Nazioni.
Attraverso la stessa finestra di dialogo 'Modifica relazioni', è possibile anche stabilire altre 2 regole di comportamento: la prima è 'Aggiorna campi correlati a catena'.
Se questa casella viene selezionata verranno aggiornati automaticamente i valori corrispondenti nella tabella correlata ogni volta che si modifica il valore di una chiave primaria nella tabella primaria, viceversa, se la casella è deselezionata (scelta consigliabile per la maggior parte dei casi), allora significa che si vuole proprio impedire che questa situazione si verifichi.
Questa ipotesi non riguarda l'esempio Continenti-Nazioni, poichè la chiave primaria di Continenti è un campo contatore e quindi mai potrà essere modificata, la chiave primaria potrebbe però essere formata da campi di solo testo (pensiamo al codice fiscale) oppure a combinazioni di più campi (esempio: Cognome Nome) quindi in questi altri casi potrebbe essere utile abilitare la casella 'Aggiorna campi correlati a catena'
La seconda regola è 'Elimina campi correlati a catena': se la si abilita verranno automaticamente eliminati i record correlati nella tabella correlata ogni volta che si elimina un record nella tabella primaria, viceversa se la disabilita (scelta consigliata).
Alcuni termini:
Chiave Primaria
Uno o più campi che determinano l'univocità di ogni record in una tabella.
Chiave Esterna
la chiave esterna, come quella primaria, può essere composta di uno o più campi, e normalmente presenta valori ripetuti nella tabella collegante, ma che diventano univoci in quella collegata. Una tabella può avere più chiavi esterne, ma una sola chiave primaria.
Relazione uno a molti
Una relazione tra due tabelle nelle quali ogni record di una tabella presenta più record correlati nell'altra tabella.
Relazione molti a molti
Una relazione tra due tabelle le quali presentano ciascuna una relazione uno-a-molti con una terza tabella comune.
Relazione uno ad uno
Una relazione tra due tabelle in cui ogni record di una tabella presenta un solo record correlato nell'altra tabella.
Join
E' una condizione che confronta due campi appartenenti a tabelle differenti e limita i record ritornati dal prodotto cartesiano. Tale condizione è detta 'condizione di join'.
|
|