Guida alle relazioni tra tabelle

Uno degli obiettivi di una buona strutturazione del database è eliminare la ridondanza dei dati, ovvero i dati duplicati. Per raggiungere tale obiettivo, è possibile suddividere i dati in più tabelle in base all'argomento in modo che ogni fatto sia rappresentato solo una volta. Si indica quindi ad Microsoft Office Access 2007 il modo per ricollegare le informazioni suddivise, ovvero inserendo campi comuni nelle tabelle correlate. Tuttavia, per eseguire questo passaggio correttamente è necessario innanzitutto comprendere le relazioni tra le tabelle e quindi specificarle nel database di Office Access 2007.

In questo articolo

Introduzione

Tipi di relazioni tra tabelle

Perché creare relazioni tra tabelle

Informazioni sull'integrità referenziale

Visualizzare le relazioni tra tabelle

Creare una relazione tra tabelle

Eliminare una relazione tra tabelle

Modificare una relazione tra tabelle

Applicare l'integrità referenziale

Introduzione

Dopo aver creato una tabella per ogni argomento del database, è necessario indicare in Office Access 2007 il modo per ricollegare le informazioni quando se ne presenterà l'esigenza. A tale scopo, posizionare campi comuni nelle tabelle correlate e definire relazioni tra le tabelle. Sarà quindi possibile creare query, maschere e report per visualizzare contemporaneamente le informazioni provenienti da diverse tabelle. Nella maschera illustrata di seguito, ad esempio, sono riportate informazioni provenienti da numerose tabelle:

Maschera Ordini che visualizza contemporaneamente le informazioni correlate provenienti da cinque tabelle

1. Le informazioni nella maschera provengono dalla tabella Clienti...

2. ...dalla tabella Ordini...

3. ...dalla tabella Prodotti...

4. ...e dalla tabella Dettagli ordini.

Il nome del cliente visualizzato nella casella Fatturare a viene recuperato dalla tabella Clienti, i campi ID ordine e Data ordine dalla tabella Ordini, il nome del prodotto dalla tabella Prodotti e i valori Prezzo unitario e Quantità dalla tabella Dettagli ordini. Queste tabelle sono collegate in vari modi per consentire la visualizzazione di informazioni di vario tipo nella maschera.

Nell'esempio precedente i campi delle tabelle devono essere coordinati in modo da visualizzare le informazioni relative allo stesso ordine. Tale coordinazione viene realizzata tramite relazioni tra le tabelle. Una relazione funziona facendo corrispondere i dati nei campi chiave, in genere un campo con lo stesso nome per entrambe le tabelle. Nella maggior parte dei casi tali campi corrispondenti saranno la chiave primaria di una tabella che fornisce un identificatore univoco per ogni record e una chiave esterna dell'altra tabella. I dipendenti possono essere associati ad esempio agli ordini di cui sono responsabili creando una relazione tra i campi IDDipendente nelle tabelle Dipendenti e Ordini.

Campo ID dipendente usato come chiave primaria nella tabella Dipendenti e come chiave esterna nella tabella Ordini.

1. Il campo IDDipendente compare in entrambe le tabelle, come chiave primaria...

2. ...e come chiave esterna.

Inizio pagina

Tipi di relazioni tra tabelle

Esistono tre tipi di relazioni tra tabelle.

  • Relazione uno-a-molti

    Si consideri un database che tiene traccia degli ordini composto da una tabella Clienti e una tabella Ordini. Un cliente può effettuare qualsiasi numero di ordini. Di conseguenza, per qualsiasi cliente rappresentato nella tabella Clienti possono essere rappresentati numerosi ordini nella tabella Ordini. Tra la tabella Clienti e la tabella Ordini esiste pertanto una relazione uno-a-molti.

    Per rappresentare una relazione uno-a-molti nella progettazione del database, aggiungere la chiave primaria del lato "uno" della relazione come ulteriore campo o campi nella tabella sul lato "molti" della relazione. In questo caso, ad esempio, si aggiunge un nuovo campo, il campo ID della tabella Clienti, alla tabella Ordini che viene denominato ID cliente. L'ID cliente può quindi essere utilizzato da Access nella tabella Ordini per individuare il cliente corretto per ogni ordine.

  • Relazione molti-a-molti

    Si consideri la relazione tra una tabella Prodotti e una tabella Ordini. Un singolo ordine può includere più prodotti, mentre un singolo prodotto può essere incluso in molti ordini. A ogni record della tabella Ordini possono pertanto corrispondere numerosi record della tabella Prodotti e a ogni record della tabella Prodotti possono corrispondere numerosi record della tabella Ordini. Questo tipo di relazione viene denominata relazione molti-a-molti, poiché a qualsiasi prodotto possono corrispondere molti ordini e a qualsiasi ordine possono corrispondere molti prodotti. Per rilevare le relazioni molti-a-molti esistenti tra le tabelle, è importante considerare entrambi i lati della relazione.

    Per rappresentare una relazione molti-a-molti è necessario creare una terza tabella, in genere denominata tabella di collegamento, che consente di suddividere la relazione molti-a-molti in due relazioni uno-a-molti. Nella terza tabella viene inserita la chiave primaria di ognuna delle due tabelle, registrando così ogni occorrenza o istanza della relazione. La tabella Ordini e la tabella Prodotti ad esempio hanno una relazione molti-a-molti definita creando due relazioni uno-a-molti per la tabella Dettagli ordini. Un ordine può includere molti prodotti e ciascun prodotto può apparire in molti ordini.

  • Relazione uno-a-uno

    In una relazione uno-a-uno ogni record della prima tabella può avere solo un record corrispondente nella seconda tabella e viceversa. Questo tipo di relazione non è comune, in quanto le informazioni correlate vengono in genere memorizzate nella stessa tabella. È possibile utilizzare una relazione uno-a-uno per dividere una tabella con molti campi, per isolare parte di una tabella per ragioni di protezione o per memorizzare le informazioni valide solo per un sottoinsieme della tabella principale. Quando si identifica una relazione di questo tipo, entrambe le tabelle devono condividere un campo comune.

Inizio pagina

Perché creare relazioni tra tabelle

È possibile creare relazioni tra tabelle usando la finestra Relazioni oppure trascinando un campo dal riquadro Elenco campi. Office Access 2007 usa le relazioni tra tabelle per decidere come eseguire il join delle tabelle quando è necessario usarle in un oggetto di database. Esistono numerosi motivi per cui è consigliabile creare relazioni tra tabelle prima di creare altri oggetti di database, ad esempio maschere, query e report.

  • Le relazioni tra tabelle determinano le strutture delle query

    Per utilizzare i record provenienti da più di una tabella, spesso è necessario creare una query che unisce le tabelle. Una query funziona facendo corrispondere i valori nel campo chiave primaria della prima tabella con il campo chiave esterna nella seconda tabella. Per restituire ad esempio righe in cui sono elencati tutti gli ordini per ogni cliente, creare una query che unisce la tabella Clienti alla tabella Ordini basata sul campo ID cliente. Nella finestra Relazioni è possibile specificare manualmente i campi da unire. Se tuttavia tra le tabelle è già stata definita una relazione, in Office Access 2007 viene specificato il join predefinito, in base alla relazione tra tabelle esistente. Se si utilizza inoltre una delle Creazioni guidate Query, Access utilizza le informazioni raccolte dalle relazioni già definite per presentare all'utente scelte informate e prepopolare le impostazioni delle proprietà con valori predefiniti appropriati.

  • Le relazioni tra tabelle determinano le strutture delle maschere e dei report

    Quando si struttura una maschera o un report, in Office Access 2007 le informazioni raccolte dalle relazioni tra le tabelle già definite vengono utilizzate per presentare all'utente scelte informate e prepopolare le impostazioni delle proprietà con valori predefiniti appropriati.

  • Le relazioni tra tabelle sono le fondamenta su cui è possibile applicare l'integrità referenziale per impedire la creazione di record orfani nel database. Un record orfano è un record con un riferimento a un altro record inesistente, ad esempio un record ordine che fa riferimento a un record cliente inesistente.

    Quando si struttura un database, si suddividono le informazioni in tabelle, a ognuna delle quali è associata una chiave primaria. Alle tabelle correlate che fanno riferimento alle chiavi primarie vengono successivamente aggiunte chiavi esterne. Le coppie chiave esterna-chiave primaria rappresentano la base per le relazioni tra le tabelle e le query multitabella. È importante tuttavia assicurarsi che i riferimenti chiave esterna-chiave primaria rimangano sincronizzati. L'integrità referenziale aiuta a garantire la sincronizzazione dei riferimenti e dipende dalle relazioni tra le tabelle.

Inizio pagina

Informazioni sull'integrità referenziale

Quando si struttura un database, si suddividono le informazioni in molte tabelle in base all'argomento in modo da ridurre al minimo la ridondanza dei dati. In Office Access 2007 viene quindi indicato il modo per riunire le informazioni posizionando campi comuni nelle tabelle correlate. Per rappresentare una relazione uno-a-molti, ad esempio, si prende la chiave primaria dalla tabella "uno" e la si aggiunge come campo aggiuntivo alla tabella "molti". Per riunire le informazioni, viene considerato il valore nella tabella "molti" e viene eseguita la ricerca del valore corrispondente nella tabella "uno". In questo modo, i valori nella tabella "molti" fanno riferimento ai valori corrispondenti nella tabella "uno".

Si supponga di avere una relazione uno-a-molti tra Corrieri e Ordini e che si desideri eliminare un corriere. Se al corriere che si desidera eliminare sono associati ordini nella tabella Ordini, quando si elimina il record Corriere i relativi ordini diventeranno "orfani". Gli ordini continueranno a contenere un ID corriere ma l'ID non sarà più valido poiché il record a cui fa riferimento è stato eliminato.

Scopo dell'integrità referenziale è di impedire la creazione di record orfani e di mantenere in sincronia i riferimenti in modo che tale situazione ipotetica non possa mai verificarsi.

È possibile applicare l'integrità referenziale abilitandola per una relazione tra tabelle. Per istruzioni dettagliate, vedere Applicare l'integrità referenziale. Dopo aver applicato l'integrità referenziale, Access rifiuta le operazioni che comporterebbero la violazione dell'integrità referenziale per quella determinata relazione. Ciò significa che verranno automaticamente rifiutati sia gli aggiornamenti che determinano la modifica della destinazione di un riferimento sia le eliminazioni che determinano la rimozione della destinazione di un riferimento. È tuttavia possibile che si abbia effettivamente la necessità di modificare la chiave primaria di un corriere con ordini nella tabella Ordini. In tal caso, sarà necessario fare in modo che Access aggiorni automaticamente tutte le righe interessate nell'ambito di una singola operazione. In questo modo, l'aggiornamento verrà interamente completato, garantendo che il database non venga lasciato in uno stato incoerente, ovvero con alcune righe aggiornate e altre no. Per questo motivo, in Access è disponibile l'opzione Aggiorna campi correlati a catena. Quando si applica l'integrità referenziale e si sceglie l'opzione Aggiorna campi correlati a catena e quindi si aggiorna una chiave primaria, tutti i campi che fanno riferimento alla chiave primaria vengono aggiornati automaticamente.

È inoltre possibile che sia necessario eliminare una riga e tutti i record correlati, ad esempio un record Corriere e tutti gli ordini correlati relativi a tale corriere. A tale scopo, Access supporta l'opzione Elimina record correlati a catena. Quando si applica l'integrità referenziale e si seleziona l'opzione Elimina record correlati a catena e quindi si elimina un record sul lato della chiave primaria della relazione, tutti i record che fanno riferimento alla chiave primaria vengono eliminati automaticamente.

Inizio pagina

Visualizzare le relazioni tra tabelle

Per visualizzare le relazioni tra le tabelle, fare clic su Relazioni nella scheda Strumenti database. Verrà visualizzata la finestra Relazioni in cui sono riportate tutte le relazioni esistenti. Se ancora non sono state definite relazioni tra le tabelle e la finestra Relazioni viene aperta per la prima volta, verrà richiesto di aggiungere una tabella o query alla finestra.

Aprire la finestra Relazioni

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

  4. Se il database contiene relazioni, verrà visualizzata la finestra Relazioni. Se il database non contiene alcuna relazione e si apre per la prima volta la finestra Relazioni, verrà visualizzata la finestra di dialogo Mostra tabella. Fare clic su Chiudi per chiudere la finestra di dialogo.

  5. Nel gruppo Relazioni della scheda Struttura fare clic su Tutte le relazioni.

    Verranno visualizzate tutte le relazioni definite nel database. Si noti che le tabelle nascoste, ovvero quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non verranno visualizzate fino a quando non verrà selezionata la casella di controllo Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

    Per altre informazioni sull'opzione Mostra oggetti nascosti, vedere l'articolo Guida al riquadro di spostamento.

Finestra Relazioni

1. Chiave primaria

2. Questa linea rappresenta la relazione

3. Chiave esterna

Una relazione tra tabelle è rappresentata da una linea di relazione tracciata tra le tabelle nella finestra Relazioni. Una relazione che non applica l'integrità referenziale viene visualizzata come una linea sottile tra i campi comuni che supportano la relazione. Quando si seleziona la relazione facendo clic sulla relativa linea, la linea diventa più spessa per indicare che è selezionata. Se a questa relazione si applica l'integrità referenziale, la linea risulterà più spessa alle estremità. Verrà inoltre visualizzato il numero 1 sul punto di maggior spessore della linea su un lato della relazione e verrà visualizzato il simbolo di infinito () sul punto di maggiore spessore sull'altro lato.

Quando la finestra Relazioni è attiva, è possibile selezionare i comandi seguenti sulla barra multifunzione, che fa parte dell'interfaccia utente Microsoft Office Fluent:

Nel gruppo Strumenti della scheda Struttura:

  • Modifica relazioni    Consente di visualizzare la finestra di dialogo Modifica relazioni. Quando si seleziona una linea di relazione, è possibile fare clic su Modifica relazioni per modificare la relazione tra le tabelle. È anche possibile fare doppio clic sulla linea di relazione.

  • Cancella layout    Consente di rimuovere tutte le tabelle e le relazioni dalla visualizzazione nella finestra Relazioni. Tenere presente che questo comando nasconde soltanto le tabelle e le relazioni, non le elimina.

  • Report relazioni    Consente di creare un report in cui sono visualizzate le tabelle e le relazioni del database. Nel report sono visualizzate solo le tabelle e le relazioni non nascoste nella finestra Relazioni.

Nel gruppo Relazioni della scheda Struttura:

  • Mostra tabella    Consente di visualizzare la finestra di dialogo Mostra tabella dove selezionare le tabelle e le query da visualizzare nella finestra Relazioni.

  • Nascondi tabella    Consente di nascondere la tabella selezionata nella finestra Relazioni.

  • Relazioni dirette    Visualizza tutte le relazioni e le tabelle correlate della tabella selezionata nella finestra Relazioni, se non sono già visualizzate.

  • Tutte le relazioni    Consente di visualizzare tutte le relazioni e le tabelle correlate del database nella finestra Relazioni. Le tabelle nascoste, ovvero quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non verranno visualizzate se non viene selezionato Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

    Per altre informazioni sull'opzione Mostra tabelle nascoste, vedere l'articolo Guida al riquadro di spostamento.

  • Chiudi    Consente di chiudere la finestra Relazioni. Se sono state apportate modifiche al layout della finestra Relazioni, verrà richiesto se salvare le modifiche.

Inizio pagina

Creare una relazione tra tabelle

È possibile creare una relazione tra tabelle utilizzando la finestra Relazioni oppure trascinando un campo in un foglio dati dal riquadro Elenco campi. Quando si crea una relazione tra tabelle, non è necessario che i campi comuni abbiano gli stessi nomi, sebbene ciò avvenga spesso. È invece necessario che i campi comuni contengano lo stesso tipo di dati. Se il campo chiave primaria è un campo Contatore, anche il campo chiave esterna può essere un campo Numerico se la proprietà Dimensione campo di entrambi i campi è impostata sullo stesso valore. È ad esempio possibile impostare una corrispondenza tra un campo Contatore e un campo Numerico se la proprietà Dimensione campo i entrambi i campi è impostata su Intero lungo. Se entrambi i campi comuni sono di tipo Numerico, è necessario che l'impostazione della proprietà Dimensione campo sia la stessa per entrambi i campi.

Creare una relazione tra le tabelle utilizzando la finestra Relazioni

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

  4. Se non è ancora stata definita alcuna relazione, verrà visualizzata automaticamente la finestra di dialogo Mostra tabella. Se non viene visualizzata, nel gruppo Relazioni della scheda Progettazione fare clic su Mostra tabella.

    Nella finestra di dialogo Mostra tabella verranno visualizzate tutte le tabelle e le query incluse nel database. Per visualizzare solo le tabelle, fare clic su Tabelle. Per visualizzare solo le query, fare clic su Query. Per visualizzare entrambe, fare clic su Entrambe.

  5. Selezionare una o più tabelle o query e quindi fare clic su Aggiungi. Dopo aver aggiunto le tabelle o le query alla finestra Relazioni, fare clic su Chiudi.

  6. Trascinare un campo (in genere la chiave primaria) da una tabella a un campo comune (la chiave esterna) nell'altra tabella. Per trascinare più campi, premere il tasto CTRL, fare clic su ogni campo desiderato e quindi trascinare la selezione.

    Verrà visualizzata la finestra di dialogo Modifica relazioni.

  7. Verificare che i nomi di campo visualizzati corrispondano ai campi comuni da utilizzare per la relazione. Se un nome di campo non è corretto, fare clic su di esso e selezionare un nuovo campo dall'elenco

    Per applicare l'integrità referenziale per la relazione, selezionare la casella di controllo Applica integrità referenziale. Per ulteriori informazioni sull'integrità referenziale, vedere le sezioni Informazioni sull'integrità referenziale e Applicare l'integrità referenziale.

  8. Fare clic su Crea.

    Verrà tracciata una linea di relazione tra le due tabelle. Se è stata selezionata la casella di controllo Applica integrità referenziale la linea risulterà più spessa alle estremità. Inoltre, solo se è stata selezionata la casella di controllo Applica integrità referenziale verrà visualizzato il numero 1 sul punto di maggior spessore della linea su un lato della relazione e verrà visualizzato il simbolo di infinito () sul punto di maggior spessore sull'altro lato.

Trascinare un campo da una tabella al campo corrispondente in un'altra tabella.

Note : 

  • Per creare una relazione uno-a-uno    È necessario che entrambi i campi comuni (in genere i campi chiave primaria e chiave esterna) dispongano di un indice univoco, ovvero che la proprietà Indicizzato di tali campi sia impostata su Sì (Duplicati non ammessi). Se entrambi i campi dispongono di un indice univoco, verrà creata una relazione uno-a-uno.

  • Per creare una relazione uno-a-molti    Il campo sul lato "uno" (in genere la chiave primaria) della relazione deve disporre di un indice univoco, ovvero la proprietà Indicizzato per questo campo deve essere impostata su Sì (Duplicati non ammessi). Il campo sul lato "molti" della relazione non deve disporre di un indice univoco, ovvero può disporre di un indice che tuttavia consenta i duplicati. La proprietà Indicizzato per questo campo può pertanto essere impostata su No o Sì (Duplicati ammessi). Se un campo dispone di un indice univoco e l'altro non ne dispone, verrà creata una relazione uno-a-molti..

Creare una relazione tra tabelle utilizzando il riquadro Elenco campi

In Office Access 2007 è possibile aggiungere un campo a una tabella esistente aperta in visualizzazione Foglio dati trascinando il campo dal riquadro Elenco campi. Nel riquadro Elenco campi vengono visualizzati i campi disponibili nelle tabelle correlate, nonché i campi disponibili nelle altre tabelle. Quando si trascina un campo da un'altra tabella, ovvero da una tabella non correlata, e si completa la Ricerca guidata, viene creata automaticamente una relazione uno-a-molti tra la tabella indicata nel riquadro Elenco campi e la tabella nella quale è stato trascinato il campo. A tale relazione, creata da Access, non viene applicata l'integrità referenziale per impostazione predefinita. Affinché venga applicata l'integrità referenziale, sarà necessario modificare la relazione. Per ulteriori informazioni, vedere la sezione Modificare una relazione tra tabelle.

Aprire una tabella in visualizzazione Foglio dati

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel riquadro di spostamento fare clic con il pulsante destro del mouse nella tabella alla quale si desidera aggiungere il campo e per la quale si desidera creare la relazione e quindi scegliere Visualizzazione Foglio dati dal menu di scelta rapida.

Aprire il riquadro Elenco campi

  • Nel gruppo Campi e colonne della scheda Foglio dati fare clic su Aggiungi campi esistenti.

    Immagine della barra multifunzione di Access

    Verrà visualizzato il riquadro Elenco campi.

Nel riquadro Elenco campi vengono visualizzate tutte le altre tabelle incluse nel database raggruppate in categorie, Quando si utilizza una tabella in visualizzazione Foglio dati, i relativi campi vengono visualizzati in una delle due categorie disponibili nel riquadro Elenco campi, ovvero Campi disponibili nelle tabelle correlate e Campi disponibili in altre tabelle. Nella prima categoria sono incluse tutte le tabelle per le quali è stata definita una relazione con quella che si sta utilizzando. Nella seconda categoria vengono elencate tutte le tabelle non correlate a quella in uso.

Nel riquadro Elenco campi, quando si fa clic sul segno più (+) accanto a un nome di tabella, viene visualizzato un elenco di tutti i campi disponibili nella tabella. Per aggiungere un campo alla tabella in uso, trascinarlo dall'Elenco campi in visualizzazione Foglio dati.

Aggiungere un campo e creare una relazione utilizzando il riquadro Elenco campi

  1. Nel gruppo Campi e colonne della scheda Foglio dati fare clic su Aggiungi campi esistenti.

    Immagine della barra multifunzione di Access

    Verrà visualizzato il riquadro Elenco campi.

  2. In Campi disponibili in altre tabelle fare clic sul segno più (+) accanto a un nome di tabella per visualizzare l'elenco dei campi della tabella.

  3. Trascinare il campo desiderato dal riquadro Elenco campi nella tabella aperta in visualizzazione Foglio dati.

  4. Quando viene visualizzata la riga di inserimento, rilasciare il campo nella posizione indicata.

    Verrà avviata la Ricerca guidata.

  5. Seguire le istruzioni per completare la Ricerca guidata.

    Il campo verrà visualizzato nella tabella in visualizzazione Foglio dati.

Quando si trascina un campo da un'altra tabella, ovvero da una tabella non correlata, e si completa la Ricerca guidata, viene creata automaticamente una relazione uno-a-molti tra la tabella indicata in Elenco campi e la tabella nella quale è stato trascinato il campo. A tale relazione, creata da Access, non viene applicata l'integrità referenziale per impostazione predefinita. Per applicare l'integrità referenziale, sarà necessario modificare la relazione. Per altre informazioni, vedere la sezione Modificare una relazione tra tabelle.

Inizio pagina

Eliminare una relazione tra tabelle

Per rimuovere una relazione tra tabelle, è necessario eliminare la linea di relazione nella finestra Relazioni. Posizionare con attenzione il cursore sulla linea di relazione e quindi fare clic sulla linea. Quando è selezionata, la linea di relazione risulta più spessa. Con la linea di relazione selezionata, premere CANC. Si noti che la rimozione di una relazione comporta anche la rimozione del supporto dell'integrità referenziale per tale relazione, nel caso sia stata attivata. La creazione di record orfani sul lato "molti" della relazione non verrà quindi più impedita da Access.

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni.

Se non è stata ancora definita una relazione e la finestra Relazioni viene aperta per la prima volta, verrà visualizzata la finestra di dialogo Mostra tabella. Se la finestra di dialogo viene visualizzata, fare clic su Chiudi.

  1. Nel gruppo Relazioni della scheda Progettazione fare clic su Tutte le relazioni.

Verranno visualizzate tutte le tabelle per le quali sono state definite relazioni, con le relative linee di relazione.

  1. Fare clic sulla linea di relazione relativa alla relazione da eliminare. Quando è selezionata, la linea di relazione risulta più spessa.

  2. Premere CANC.

    –oppure–

    Fare clic con il pulsante destro del mouse e quindi scegliere Elimina.

  3. È possibile che in Access venga visualizzato il messaggio seguente: Eliminare definitivamente la relazione selezionata dal database? Se viene visualizzato questo messaggio di conferma, fare clic su .

Nota : Se una delle tabelle utilizzate nella relazione tra tabelle è in uso da parte di un altro utente o processo oppure in un oggetto di database aperto, ad esempio una maschera, non sarà possibile eliminare la relazione. Chiudere gli eventuali oggetti aperti che utilizzano tali tabelle prima di rimuovere la relazione.

Inizio pagina

Modificare una relazione tra tabelle

È possibile modificare una relazione tra tabelle selezionando la relazione nella finestra Relazioni e quindi modificandola. Posizionare con attenzione il cursore sulla linea di relazione e quindi fare clic sulla linea. Quando è selezionata, la linea di relazione risulta più spessa. Con la linea di relazione selezionata, fare doppio clic oppure fare clic su Modifica relazioni nel gruppo Strumenti della scheda Struttura. Verrà visualizzata la finestra di dialogo Modifica relazioni.

Apportare le modifiche desiderate nella finestra di dialogo Modifica relazioni

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni.

Se non è stata ancora definita una relazione e la finestra Relazioni viene aperta per la prima volta, verrà visualizzata la finestra di dialogo Mostra tabella. Se la finestra di dialogo viene visualizzata, fare clic su Chiudi.

  1. Nel gruppo Relazioni della scheda Progettazione fare clic su Tutte le relazioni.

Vengono visualizzate tutte le tabelle per le quali sono state definite relazioni, con le relative linee di relazione. Si noti che le tabelle nascoste, ossia quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non vengono visualizzate fino a quando non si seleziona l'opzione Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

Per altre informazioni sull'opzione Mostra oggetti nascosti, vedere l'articolo Guida al riquadro di spostamento.

  1. Fare clic sulla linea di relazione relativa alla relazione che si desidera modificare. Quando è selezionata, la linea di relazione risulta più spessa.

  2. Fare doppio clic sulla linea di relazione.

    -oppure-

    Nel gruppo Strumenti della scheda Progettazione fare clic su Modifica relazioni.

    Verrà visualizzata la finestra di dialogo Modifica relazioni.

    finestra di dialogo modifica relazioni

  3. Apportare le modifiche desiderate e quindi fare clic su OK.

    Nella finestra di dialogo Modifica relazioni è possibile modificare una relazione tra tabelle. In particolare è possibile modificare le tabelle o le query, nonché i campi, su entrambi i lati della relazione. È inoltre possibile impostare il tipo di join oppure applicare l'integrità referenziale e scegliere un'opzione di correlazione a catena. Per ulteriori informazioni sul tipo di join e la relativa impostazione, vedere la sezione Impostare il tipo di join. Per ulteriori informazioni su come applicare l'integrità referenziale e scegliere un'opzione di correlazione a catena, vedere la sezione Applicare l'integrità referenziale.

Impostare il tipo di join

Quando si definisce una relazione tra tabelle, i fatti relativi alla relazione determinano la struttura della query. Ad esempio, se si definisce una relazione tra due tabelle e quindi si crea una query che utilizza tali tabelle, Access seleziona automaticamente i campi corrispondenti predefiniti in base ai campi specificati nella relazione. È possibile ignorare tali valori predefiniti iniziali nella query, ma i valori forniti dalla relazione risulteranno spesso corretti. Poiché la definizione delle corrispondenze e la raccolta dei dati da più tabelle sono operazioni frequenti per tutti i database ad eccezione di quelli più semplici, l'impostazione di valori predefiniti mediante la creazione di relazioni può rappresentare un vantaggio e consentire di risparmiare tempo.

Una query a più tabelle consente di unire le informazioni di diverse tabelle individuando le corrispondenze dei valori nei campi comuni. L'operazione che esegue la corrispondenza e il collegamento è denominata join. Si supponga, ad esempio, che si desideri visualizzare gli ordini dei clienti. A tale scopo, è possibile creare una query che colleghi con join la tabella Clienti e la tabella Ordini nel campo ID Cliente. Il risultato della query conterrà le informazioni sul cliente e sull'ordine solo per le righe in cui è stata trovata una corrispondenza

Uno dei valori che è possibile specificare per ogni relazione è il tipo di join. Il tipo di join indica ad Access quali record includere nel risultato di una query. Ad esempio, si consideri di nuovo una query che collega con join la tabella Clienti e la tabella Ordini nei campi comuni che rappresentano l'ID cliente. Utilizzando il tipo di join predefinito, denominato inner join, la query restituisce sole le righe Cliente e le righe Ordine in cui i campi comuni, denominati anche campi collegati, sono uguali.

Si supponga tuttavia che si desideri includere tutti i clienti, anche quelli che non hanno ancora effettuato un ordine. A tale scopo, è necessario modificare il tipo di join da inner join a outer join sinistro. Un outer join sinistro restituisce tutte le righe della tabella sul lato sinistro della relazione e solo quelle per le quali viene individuata una corrispondenza nella tabella a destra. Un outer join destro restituisce tutte le righe della tabella sul lato destro della relazione e solo quelle per le quali viene individuata una corrispondenza nella tabella a sinistra.

Nota : In questo caso, sinistra e destra non fanno riferimento alla posizione delle tabelle nella finestra Relazioni, bensì alla loro posizione nella finestra Modifica relazioni.

È consigliabile valutare il risultato che si desidera ottenere da una query che esegue il join tra le tabelle in questa relazione e impostare di conseguenza il tipo di join.

Impostare il tipo di join

  1. Nella finestra di dialogo Modifica relazioni fare clic su Tipo join.

    Verrà visualizzata la finestra di dialogo Proprietà join.

  2. Selezionare l'opzione desiderata e quindi fare clic su OK.

Nella tabella seguente vengono utilizzate le tabelle Clienti e Ordini per illustrare le tre scelte visualizzate nella finestra di dialogo Proprietà join, il tipo di join utilizzato e il modo in cui vengono inclusi i risultati per ogni tabella, ovvero tutte le righe oppure solo le righe corrispondenti.

Scelta

Join relazionale

Tabella sinistra

Tabella destra

1. Includi solo le righe in cui i campi collegati da entrambe le tabelle sono uguali.

Inner join

Righe corrispondenti

Righe corrispondenti

2. Includi tutti i record di 'Clienti' e solo i record di 'Ordini' in cui i campi collegati sono uguali.

Left outer join

Tutte le righe

Righe corrispondenti

3. Includi tutti i record di 'Ordini' e solo i record di 'Clienti' in cui i campi collegati sono uguali.

Right outer join

Righe corrispondenti

Tutte le righe

Quando si sceglie l'opzione 2 o 3, sulla linea della relazione viene visualizzata una freccia che punta verso il lato della relazione che visualizza solo le righe corrispondenti.

Apportare modifiche nella finestra di dialogo Proprietà join

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni.

Se non è stata ancora definita una relazione e la finestra Relazioni viene aperta per la prima volta, verrà visualizzata la finestra di dialogo Mostra tabella. Se la finestra di dialogo viene visualizzata, fare clic su Chiudi.

  1. Nel gruppo Relazioni della scheda Progettazione fare clic su Tutte le relazioni.

Verranno visualizzate tutte le tabelle per le quali sono state definite relazioni, con le relative linee di relazione. Si noti che le tabelle nascoste, ovvero quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non verranno visualizzate fino a quando non verrà selezionata l'opzione Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

Per altre informazioni sull'opzione Mostra oggetti nascosti, vedere l'articolo Guida al riquadro di spostamento.

  1. Fare clic sulla linea di relazione relativa alla relazione che si desidera modificare. Quando è selezionata, la linea di relazione risulta più spessa.

  2. Fare doppio clic sulla linea di relazione.

    -oppure-

    Nel gruppo Strumenti della scheda Progettazione fare clic su Modifica relazioni.

    Verrà visualizzata la finestra di dialogo Modifica relazioni.

  3. Fare clic su Tipo join.

  4. Nella finestra di dialogo Proprietà join fare clic su un'opzione e quindi su OK.

    Finestra di dialogo Proprietà join

  5. Apportare eventuali altre modifiche alla relazione e quindi fare clic su OK.

Inizio pagina

Applicare l'integrità referenziale

Scopo dell'integrità referenziale è di impedire la presenza di record orfani e mantenere sincronizzati i riferimenti, in modo che non vi siano record che facciano riferimento a record non più esistenti. È possibile applicare l'integrità referenziale attivandola per una relazione tra tabelle. Dopo l'applicazione dell'integrità referenziale, Access rifiuta le operazioni che comporterebbero la violazione dell'integrità referenziale per quella determinata relazione. In Access verranno automaticamente rifiutati gli aggiornamenti che determinano la modifica della destinazione di un riferimento e le eliminazioni che determinano la rimozione della destinazione di un riferimento. Per fare in modo che gli aggiornamenti e le eliminazioni referenziali vengano propagati da Access in modo che tutte le righe correlate vengano modificate di conseguenza, vedere la sezione Impostare le opzioni di correlazione a catena.

Attivare o disattivare l'integrità referenziale

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni.

Se non è stata ancora definita una relazione e la finestra Relazioni viene aperta per la prima volta, verrà visualizzata la finestra di dialogo Mostra tabella. Se la finestra di dialogo viene visualizzata, fare clic su Chiudi.

  1. Nel gruppo Relazioni della scheda Progettazione fare clic su Tutte le relazioni.

Vengono visualizzate tutte le tabelle per le quali sono state definite relazioni, con le relative linee di relazione. Si noti che le tabelle nascoste, ossia quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non vengono visualizzate fino a quando non si seleziona l'opzione Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

Per altre informazioni sull'opzione Mostra oggetti nascosti, vedere l'articolo Guida al riquadro di spostamento.

  1. Fare clic sulla linea di relazione relativa alla relazione che si desidera modificare. Quando è selezionata, la linea di relazione risulta più spessa.

  2. Fare doppio clic sulla linea di relazione.

    -oppure-

    Nel gruppo Strumenti della scheda Progettazione fare clic su Modifica relazioni.

    Verrà visualizzata la finestra di dialogo Modifica relazioni.

  3. Selezionare la casella di controllo Applica integrità referenziale.

  4. Apportare eventuali altre modifiche alla relazione e quindi fare clic su OK.

Dopo aver applicato l'integrità referenziale, sono valide le regole seguenti:

  • In un campo chiave esterna di una tabella correlata non è possibile immettere valori che non siano presenti nel campo chiave primaria della tabella primaria, poiché in tal caso verrebbero creati record orfani.

  • Non è possibile eliminare un record da una tabella primaria se esistono record corrispondenti in una tabella correlata. Non è ad esempio possibile eliminare il record di un dipendente da una tabella Dipendenti se vi sono ordini assegnati a tale dipendente nella tabella Ordini. È tuttavia possibile scegliere di eliminare un record primario e tutti i record correlati in un'unica operazione selezionando la casella di controllo Elimina record correlati a catena.

  • Non è possibile modificare un valore di chiave primaria, poiché in tal modo verrebbero creati record orfani. Non è ad esempio possibile modificare un numero di ordine nella tabella Ordini se vi sono voci assegnate a tale ordine nella tabella Dettagli sugli ordini. È tuttavia possibile scegliere di aggiornare un record primario e tutti i record correlati in un'unica operazione selezionando la casella di controllo Aggiorna campi correlati a catena.

    Note : Se si incontrano difficoltà nell'applicazione dell'integrità referenziale, tenere presente che per l'applicazione dell'integrità referenziale sono necessarie le condizioni seguenti:

    • Il campo comune della tabella primaria deve essere una chiave primaria oppure disporre di un indice univoco.

    • I dati contenuti nei campi comuni devono essere dello stesso tipo. L'unica eccezione è che un campo Contatore può essere correlato a un campo Numerico la cui proprietà Dimensione campo è impostata su Intero lungo.

    • Entrambe le tabelle devono esistere nello stesso database di Access. L'integrità referenziale non può essere applicata a tabelle collegate. Se le tabelle di origine sono in formato Access, sarà tuttavia possibile aprire il database in cui sono memorizzate le tabelle e attivare l'integrità referenziale in tale database.

Impostare le opzioni di correlazione a catena

È possibile che si verifichino situazioni in cui si abbia effettivamente la necessità di modificare il valore sul lato "uno" di una relazione. In tal caso, sarà necessario fare in modo che Access aggiorni automaticamente tutte le righe interessate nell'ambito di una singola operazione. In questo modo, l'aggiornamento verrà interamente completato, garantendo che il database non venga lasciato in uno stato incoerente, ovvero con alcune righe aggiornate e altre no. Per evitare che si verifichi questo problema, è possibile utilizzare l'opzione Aggiorna campi correlati a catena disponibile in Access. Quando si applica l'integrità referenziale e si sceglie l'opzione Aggiorna campi correlati a catena e quindi si aggiorna una chiave primaria, tutti i campi che fanno riferimento alla chiave primaria vengono aggiornati automaticamente.

È inoltre possibile che sia necessario eliminare una riga e tutti i record correlati, ad esempio un record corriere e tutti gli ordini correlati relativi a tale corriere. A tale scopo, Access supporta l'opzione Elimina record correlati a catena. Quando si applica l'integrità referenziale e si seleziona l'opzione Elimina record correlati a catena, tutti i record che fanno riferimento alla chiave primaria vengono eliminati automaticamente quando si elimina il record che contiene la chiave primaria.

Attivare o disattivare le opzioni di aggiornamento e/o eliminazione a catena

  1. Fare clic sul pulsante Microsoft Office Icona del pulsante Office e quindi su Apri.

  2. Nella finestra di dialogo Apri selezionare e aprire il database.

  3. Nel gruppo Mostra/Nascondi della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni.

Se non è stata ancora definita una relazione e la finestra Relazioni viene aperta per la prima volta, verrà visualizzata la finestra di dialogo Mostra tabella. Se la finestra di dialogo viene visualizzata, fare clic su Chiudi.

  1. Nel gruppo Relazioni della scheda Progettazione fare clic su Tutte le relazioni.

Vengono visualizzate tutte le tabelle per le quali sono state definite relazioni, con le relative linee di relazione. Si noti che le tabelle nascoste, ossia quelle per le quali è stata selezionata la casella di controllo Nascosto nella finestra di dialogo Proprietà della tabella, e le relative relazioni non vengono visualizzate fino a quando non si seleziona l'opzione Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

Per altre informazioni sull'opzione Mostra oggetti nascosti, vedere Guida al riquadro di spostamento.

  1. Fare clic sulla linea di relazione relativa alla relazione che si desidera modificare. Quando è selezionata, la linea di relazione risulta più spessa.

  2. Fare doppio clic sulla linea di relazione.

    -oppure-

    Nel gruppo Strumenti della scheda Progettazione fare clic su Modifica relazioni.

    Verrà visualizzata la finestra di dialogo Modifica relazioni.

  3. Selezionare la casella di controllo Applica integrità referenziale.

  4. Selezionare la casella di controllo Aggiorna campi correlati a catena o Elimina campi correlati a catena oppure selezionarle entrambe.

  5. Apportare eventuali altre modifiche alla relazione e quindi fare clic su OK.

Nota : Se la chiave primaria è un campo di tipo Numerazione automatica, la selezione della casella di controllo Aggiorna campi correlati a catena non avrà alcun effetto, poiché non è possibile modificare il valore di un campo di tipo Numerazione automatica.

Inizio pagina

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×