LE RELAZIONI

Transcript

LE RELAZIONI
LE RELAZIONI
La corretta rappresentazione della realta' memorizzata in un database richiede spesso l'utilizzo di piu' tabelle,
perche' altrimenti si potrebbero avere delle ridondanze di dati (stessi dati ripetuti in piu' punti della tabella) o
addirittura delle inconsistenze (dati diversi che si riferiscono alla stessa cosa) che possono far diventare il
database incoerente (non rispondente alla realta' da rappresentare).
Le tabelle possono essere messe in relazione tra loro "essere legate", in modo da poter accedere ai campi di
entrambe le tabelle.
La tabella dalla quale inizia il collegamento si chiama Tabella primaria o principale, mentre la tabella nella quale
finisce il collegamento si dice Tabella correlata.
Le tabelle, per poter essere messe in relazione, devono avere ognuna un campo dello stesso tipo di dati, se il
tipo del campo e' numerico devono avere anche lo stesso formato.
Il campo di collegamento della Tabella principale deve essere la sua chiave primaria, il campo di collegamento
della Tabella correlata viene detto chiave esterna.
Le relazioni tra due tabelle possono essere di tre tipi:
1:1 se ad ogni record della tabella principale corrisponde uno ed un solo record della tabella correlata e
viceversa;
1:N se ad ogni record della tabella principale corrispondono uno o piu' record della tabella correlata e non
viceversa;
N:M se ad ogni record della tabella principale corrispondono uno o piu' record della tabella correlata e
viceversa;
Per definire una relazione uno-a-molti o una relazione uno-a-uno
Chiudere tutte le tabelle aperte. Non è possibile creare o modificare relazioni tra tabelle aperte.
Se non e' visibile la finestra degli oggetti del database, premere F11 per visualizzarla rapidamente.
Fare clic sul pulsante Relazioni
sulla barra degli strumenti.
Se nel database non sono ancora state definite relazioni, verrà automaticamente visualizzata la finestra di
dialogo Mostra tabella.
Se è necessario aggiungere le tabelle che si desidera correlare e la finestra di dialogo Mostra tabella non viene
visualizzata, fare clic sul pulsante Mostra tabella
sulla barra degli strumenti.
Fare doppio clic sui nomi delle tabelle che si desidera correlare, quindi chiudere la finestra di dialogo Mostra
tabella. Per creare una relazione nell'ambito della stessa tabella, aggiungere due volte la tabella.
Trascinare il campo che si desidera correlare da una tabella sul campo correlato nell'altra tabella.
Per trascinare più campi, premere il tasto CTRL, fare clic su ogni campo desiderato e quindi eseguire il
trascinamento.
Nella maggior parte dei casi si trascina il campo chiave primaria (visualizzato in grassetto) da una tabella su un
campo simile (spesso con lo stesso nome), detto chiave esterna nell'altra tabella.
Se la chiave esterna e' la chiave primaria della tabella correlata, la relazione verra' classificata da Access come
"Uno-a-uno", in caso contrari la relazione sara' classificata come "Uno-a-molti".
Le relazioni in ACCESS rev. By Pelle_c
Verrà visualizzata la finestra di dialogo Modifica relazioni.
Assicurarsi che i nomi dei campi visualizzati nelle due colonne siano quelli desiderati. Se necessario, è possibile
modificarli.
Se necessario, impostare le opzioni di relazione relative all'integrita' referenziale (regole che vengono seguite
per preservare le relazioni definite fra le tabelle quando si immettono o si eliminano record).
Se e' applicata l'integrita' referenziale apparira' agli estremi della relazione 1 e 1 (Uno-a-uno) oppure 1 e ∞
(Uno-a-molti).
Scegliere il pulsante Crea per creare la relazione.
Quando si chiude la finestra Relazioni verrà richiesto se si desidera salvare il layout (modo in cui sono
visualizzate le tabelle e le relazioni). Le relazioni create verranno salvate comunque nel database,
indipendentemente dal fatto che si salvi o meno il layout.
Nota: Le relazioni possono essere create sia per le query sia per le tabelle, con la differenza che per le query
non viene applicata l'integrità referenziale.
Per definire una relazione molti-a-molti
1. Dopo aver creato le due tabelle tra le quali definire una relazione N:M, creare una terza tabella,
denominata tabella di collegamento, e aggiungervi i nuovi campi con le stesse definizioni dei campi
chiave primaria provenienti da ognuna delle altre due tabelle. Nella tabella di collegamento i campi
chiave primaria fungono da chiavi esterne. È possibile aggiungere altri campi alla tabella di
collegamento, analogamente a qualsiasi altra tabella.
2. Nella tabella di congiunzione impostare la chiave primaria per includere tutti i campi chiave primaria
presenti nelle altre due tabelle.
3. Definire una relazione uno-a-molti tra ognuna delle due tabelle primarie e la tabella di collegamento.
Per modificare una relazione
Chiudere tutte le tabelle aperte. Non è possibile creare o modificare relazioni tra tabelle aperte.
Le relazioni in ACCESS rev. By Pelle_c
Premere F11 per passare alla finestra del database.
Fare clic sul pulsante Relazioni
sulla barra degli strumenti.
Se è necessario aggiungere le tabelle che si desidera correlare e la finestra di dialogo Mostra tabella non viene
visualizzata, fare clic sul pulsante Mostra tabella
sulla barra degli strumenti.
Fare clic col tasto destro sulla linea che rappresenta la relazione e selezionare modifica, elimina o ridefinisci.
Se e' stata scelta modifica verrà visualizzata la finestra di dialogo Modifica relazioni.
dalla quale e' possibile modificare i campi da correlare ed impostare le opzioni di relazione relative all'integrita'
referenziale.
La casella Applica integrita' referenziale indica, se selezionata, che il database non accetta orfani, cioe' record
della tabella correlata che non abbiano un record corrispondente nella tabella principale.
Se si applica l'integrita' referenziale nella relazione sopraindicata, non verra' permesso di inserire nella Tabella2
(correlata), record che abbiano un codice socio non esistente nella Tabella1(principale).
Se la casella Applica integrita' referenziale e' selezionata le due caselle Aggiorna campi correlati a catena ed
Elimina record correlati a catena sono attive.
La casella Aggiorna campi correlati a catena indica come deve comportarsi il database nel caso si cerchi di
modificare il valore del campo chiave della tabella principale se ci sono record correlati.
Se la casella e' selezionata, il valore del campo chiave esterna di tutti i record correlati sara' modificato,
altrimenti verra' impedita la modifica del valore della chiave primaria della tabella principale.
La casella Elimina record correlati a catena indica come deve comportarsi il database nel caso si cerchi di
eliminare un record della tabella principale se ci sono record correlati.
Se la casella e' selezionata, tutti i record correlati verranno eliminati, altrimenti verra' impedita la cancellazione
del record della tabella principale.
E' possibile modificare le query in modo che possano rispondere alle varie esigenze inserendo campi calcolati,
funzioni e parametri. E' possibile con l'uso di espressioni usare campi in una tabella per calcolare nuovi valori.
Le relazioni in ACCESS rev. By Pelle_c