Guida alle relazioni tra tabelle

Importante :  Il presente articolo è stato tradotto automaticamente, vedere la dichiarazione di non responsabilità. Per visualizzare la versione inglese dell'articolo, fare clic qui.

Uno degli obiettivi di buona progettazione del database consiste nel rimuovere la ridondanza dei dati (dati duplicati). Per tale scopo, dividere i dati in più tabelle in base a oggetto in modo che ogni fatto viene rappresentato una sola volta. È quindi fornire l'accesso con le proprietà che consente di riunire le informazioni suddivise, ovvero a tale scopo, posizionare campi comuni nelle tabelle correlate. Per eseguire questo passaggio correttamente, tuttavia, è necessario innanzitutto comprendere le relazioni tra le tabelle e quindi specificare queste relazioni nel database.

Per ulteriori informazioni, vedere l'articolo Nozioni fondamentali sulla progettazione di Database.

In questo articolo non viene illustrata relazioni in un database web. Database Web non supportano la finestra Relazioni. Utilizzare i campi di ricerca per creare relazioni nei database web. Per ulteriori informazioni, vedere l'articolo creare un database da condividere sul Web.

In questo articolo

Introduzione

Tipi di relazioni tra tabelle

Utilizzare le 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 oggetto nel database, è necessario fornire l'accesso con le proprietà che consente di riunire tali informazioni nuovamente quando necessario. A tale scopo, posizionare campi comuni nelle tabelle correlate e mediante la definizione di relazioni tra le tabelle. È quindi possibile creare query, maschere e report per visualizzare informazioni di più tabelle contemporaneamente. Ad esempio, il modulo illustrato di seguito è riportate informazioni provenienti da tabelle diverse:

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 sugli ordini.

Il nome del cliente visualizzato nella casella Fatturare a viene recuperato dalla tabella Clienti, i valori di ID ordine e Data ordine provengono dalla tabella Ordini, il nome del prodotto proviene dalla tabella Prodotti e i valori di Prezzo unitario e Quantità provengono dalla tabella Dettagli sugli ordini. Queste tabelle sono collegate in vari modi per consentire di visualizzare nella maschera informazioni provenienti da ciascuna di esse.

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 di questo tipo funziona collegando i dati nei campi chiave, in genere un campo con lo stesso nome in entrambe le tabelle. Nella maggior parte dei casi tali campi collegati 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 ad esempio associati agli ordini di cui sono responsabili creando una relazione tra i campi ID dipendente nelle tabelle Dipendenti e Ordini.

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

1. Il campo ID dipendente è presente in entrambe le tabelle, come chiave primaria...

2. ...e come chiave esterna.

Torna all'inizio

Tipi di relazioni tra tabelle

Esistono tre tipi di relazioni tra tabelle.

  • Relazione uno-a-molti

    Valutare la possibilità di un database che include una tabella clienti e una tabella ordini di rilevamento dell'ordine. Un cliente può effettuare qualsiasi numero di ordini. Di conseguenza, per qualsiasi cliente rappresentato nella tabella clienti, può essere rappresentati numerosi ordini nella tabella ordini. La relazione tra la tabella clienti e la tabella ordini è pertanto una relazione uno-a-molti.

    Per rappresentare una relazione uno-a-molti nella progettazione del database, creare la chiave primaria sul lato "uno" della relazione e aggiungerlo come un altro campo o i campi alla tabella sul lato "molti" della relazione. In questo caso, ad esempio, aggiungere un nuovo campo: campo ID dalla tabella clienti, ovvero alla tabella ordini e denominarla ID cliente. L'accesso è quindi possibile utilizzare l'opzione numero ID cliente nella tabella ordini per individuare il cliente corretto per ogni ordine.

  • Relazione molti-a-molti

    Considerare la relazione tra una tabella di prodotti e una tabella ordini. Un singolo ordine può includere più di un prodotto. Mano, un singolo prodotto può essere visualizzati in molti ordini. Pertanto, per ogni record nella tabella ordini, possono esistere numerosi record della tabella Products. Inoltre, per ogni record nella tabella prodotti, possono esistere numerosi record nella tabella ordini. Questo tipo di relazione tratta una relazione molti-a-molti perché, per qualsiasi prodotto, può essere molti ordini e, per qualsiasi ordine, possono essere presenti molti prodotti. Nota per rilevare 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. Inserire in questa terza tabella la chiave primaria di ognuna delle due tabelle. Nella terza tabella verrà quindi registrata ogni occorrenza o istanza della relazione. Tra la tabella Ordini e la tabella Prodotti esiste ad esempio una relazione molti-a-molti definita creando due relazioni uno-a-molti con la tabella Dettagli sugli ordini. Un ordine può includere molti prodotti e ciascun prodotto può essere presente in molti ordini.

  • Relazione uno-a-uno

    In una relazione uno-a ogni record nella prima tabella può avere un solo record corrispondente nella seconda tabella e ogni record nella seconda tabella può avere un solo record corrispondente nella prima tabella. Questo tipo di relazione non è comune perché, in genere le informazioni correlate in questo modo sono archiviate nella stessa tabella. È possibile utilizzare un tipo di relazione per dividere una tabella con molti campi, per isolare parte di una tabella per motivi di sicurezza o per memorizzare le informazioni che si applica solo a un sottoinsieme della tabella principale. Quando si identifica tale relazione, entrambe le tabelle devono condividere un campo comune.

Torna all'inizio

Utilizzare le relazioni tra tabelle

È possibile creare relazioni tra tabelle in modo esplicito utilizzando la finestra Relazioni oppure trascinando un campo dal riquadro Elenco campi. Access usa relazioni tra tabelle per sapere come unire le tabelle quando è necessario utilizzarli in un oggetto di database. Esistono diversi motivi perché è necessario 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 lavorare con i record da più di una tabella, è spesso necessario creare una query che unisce le tabelle. La query funziona confrontando i valori nel campo chiave primaria della prima tabella con un campo chiave esterna nella seconda tabella. Per restituire righe in cui sono elencati tutti gli ordini per ogni cliente, ad esempio, creare una query che unisce la tabella clienti con la tabella ordini in base al campo ID cliente. Nella finestra Relazioni è possibile specificare manualmente i campi da unire. Tuttavia, se si dispone già di una relazione definita tra le tabelle, Access fornisce il join predefinito in base a esistente della relazione. Inoltre, se si utilizza una delle procedure guidate di query, Access usa le informazioni raccolte da relazioni tra tabelle che è già stato definito per presentare all'utente scelte informate e per inserire automaticamente le impostazioni delle proprietà con valori predefiniti appropriati.

  • Le relazioni tra tabelle determinano la progettazione delle maschere e dei report

    Quando si progetta una maschera o report, Access usa le informazioni raccolte da relazioni tra tabelle che è già stato definito per presentare all'utente scelte informate e per inserire automaticamente le impostazioni delle proprietà con valori predefiniti appropriati.

  • Le relazioni tra tabelle costituiscono le basi su cui è possibile applicare l'integrità referenziale per evitare la presenza 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 progetta un database, si suddividono le informazioni in tabelle, ognuno dei quali dispone di una chiave primaria. Aggiungere quindi chiavi esterne alle tabelle correlate che fanno riferimento a tali chiavi primarie. La base per le relazioni tra tabelle e multitabella queste associazioni di chiave primaria chiave esterne. È importante, pertanto, che rimangano sincronizzati i riferimenti di chiave esterna di chiave primaria. Integrità referenziale garantisce che fa riferimento la sincronizzazione e si basa sulle relazioni tra tabelle.

Torna all'inizio

Informazioni sull'integrità referenziale

Quando si progetta un database, si suddividono le informazioni in più tabelle in base a oggetto per ridurre al minimo la ridondanza dei dati. È quindi fornire l'accesso con il mezzo per riunire nuovamente i dati insieme inserendo campi comuni nelle tabelle correlate. Ad esempio, per rappresentare una relazione uno-a-molti scrivere la chiave primaria dalla tabella "uno" e si verrà aggiunto come un altro campo della tabella "molti". Per riunire i dati, Access prende il valore nella tabella "molti" e cerca il valore corrispondente nella tabella "uno". In questo modo i valori nella tabella "molti" fanno riferimento a valori corrispondenti nella tabella "uno".

Si supponga che esista una relazione uno-a-molti tra Corrieri e Ordini e che si desideri eliminare il record di un corriere. Se al corriere che si desidera eliminare sono associati ordini nella tabella Ordini, quando si elimina il record del corriere tali 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.

Lo scopo dell'integrità referenziale è quello di evitare la presenza di record orfani e di mantenere sincronizzati i riferimenti in modo che tale situazione ipotetica non possa mai verificarsi.

Si applica l'integrità referenziale, consentendo di una relazione tra tabelle (per istruzioni dettagliate, vedere applicare l'integrità referenziale ). Dopo aver applicato, Access rifiuta le operazioni che violino l'integrità referenziale per la relazione tra tabelle. Di conseguenza, che Access rifiuta entrambi gli aggiornamenti da modificare la destinazione di un riferimento ed eliminazioni che consentono di rimuovere la destinazione di un riferimento. Tuttavia, è possibile che potrebbe essere necessario perfettamente valido per modificare la chiave primaria di una shipper con ordini nella tabella ordini. In questo caso, è necessario consente l'accesso aggiornare automaticamente tutte le righe interessate come parte di una singola operazione. In questo modo, Access garantisce che l'aggiornamento è completato in modo completo, in modo che il database non rimanga in uno stato incoerente con alcune righe aggiornate e altre no. Per questo motivo in Access sono supportati l'opzione Aggiorna campi correlati a catena. Quando si applica l'integrità referenziale e scegliere l'opzione Aggiorna campi correlati a catena e quindi aggiorna una chiave primaria, Access aggiorna automaticamente tutti i campi che fanno riferimento la chiave primaria.

È inoltre possibile potrebbe essere necessario eliminare una riga e tutti i record correlati, ad esempio un record Shipper e tutti gli ordini correlati per tale shipper. Per questo motivo, Access supporta l'opzione Elimina record correlati a catena. Quando si applica l'integrità referenziale e scegliere l'opzione Elimina record correlati a catena e quindi si elimina un record sul lato chiave primaria della relazione, verranno automaticamente eliminati tutti i record che fanno riferimento la chiave primaria.

Torna all'inizio

Visualizzare le relazioni tra tabelle

Per visualizzare le relazioni tra tabelle, fare clic su relazioni nella scheda Strumenti Database. La finestra Relazioni apre e Visualizza tutte le relazioni esistenti. Se si apre la finestra relazioni per la prima volta tabella che non è ancora state definite relazioni, verrà richiesto di aggiungere una tabella o query alla finestra.

Aprire la finestra Relazioni

  1. Nella scheda File fare clic su Apri.

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

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

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

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

    Verranno visualizzate tutte le relazioni definite nel database. Si noti che le tabelle nascoste (tabelle per il quale nascosta casella di controllo nella finestra di dialogo proprietà della tabella selezionata) e le relative relazioni non verranno visualizzati a meno che non sia selezionata la casella di controllo Mostra oggetti nascosti nella finestra di dialogo Opzioni di spostamento.

Una relazione tra tabelle è rappresentata da una linea di relazione tracciata tra le tabelle nella finestra Relazioni. Una relazione a cui non è applicata 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à. Sulla parte più spessa della linea su un lato della relazione verrà inoltre visualizzato il numero 1 mentre sulla parte più spessa della linea sull'altro lato verrà visualizzato il simbolo di infinito () .

Quando la finestra Relazioni è attiva, è possibile selezionare i comandi seguenti sulla barra multifunzione.

Nel gruppo Strumenti della scheda Progettazione:

  • 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 mediante questo comando le tabelle e le relazioni vengono solo nascoste e non eliminate.

  • 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 che non sono nascoste nella finestra Relazioni.

Nel gruppo Relazioni della scheda Progettazione:

  • Mostra tabella    Consente di visualizzare la finestra di dialogo Mostra tabella in cui è possibile selezionare le tabelle e le query da visualizzare nella finestra Relazioni.

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

  • Relazioni dirette    Consente di visualizzare 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. 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.

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

Torna all'inizio

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 tali campi contengano lo stesso tipo di dati. Se il campo chiave primaria è un campo di tipo Numerazione automatica, 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 collegare un campo di tipo Numerazione automatica e un campo numerico se la proprietà Dimensione campo di entrambi i campi è impostata su Intero lungo. Se entrambi i campi comuni sono numerici, è 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. Nella scheda File fare clic su Apri.

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

  3. Nel gruppo Relazioni 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.

  1. 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.

  2. 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.

  1. 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 nell'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.

  1. 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à. Solo se è stata selezionata la casella di controllo Applica integrità referenziale verrà inoltre visualizzato il numero 1 sulla parte più spessa della linea su un lato della relazione e verrà visualizzato il simbolo di infinito () sulla parte più spessa della linea sull'altro lato.

    Note : 

    • Per creare una relazione    Entrambi i campi comuni (in genere la chiave primaria e campi chiave esterna) devono avere un indice univoco. Questo errore indica che la proprietà indicizzato di questi campi deve essere impostata su Sì (duplicati non ammessi). Se entrambi i campi dispone di un indice univoco, verrà creata una relazione.

    • Per creare una relazione uno-a-molti    Il campo sul lato "uno" (in genere la chiave primaria) della relazione deve contenere un indice univoco. Questo errore indica che la proprietà indicizzato di questo campo deve essere impostata su Sì (duplicati non ammessi). Il campo sul lato "molti" deve non dispone di un indice univoco. Può avere un indice, ma è necessario consentire i duplicati. Di conseguenza, che impostare la proprietà indicizzato di questo campo a Noo Sì (duplicati ammessi). Quando un campo contiene un indice univoco e non presente in altro, Access crea una relazione uno-a-molti.

Creare una relazione tra tabelle utilizzando il riquadro Elenco campi

È possibile aggiungere un campo a una tabella esistente è aperta in visualizzazione Foglio dati trascinandola dal riquadro Elenco campi. Il riquadro Elenco campi vengono visualizzati i campi disponibili nelle tabelle correlate, nonché i campi disponibile in altre tabelle. Quando si trascina un campo da una tabella "altra" (non correlata) e quindi completa la ricerca guidata, tra la tabella nel riquadro Elenco campi e la tabella a cui si trascina il campo viene creata automaticamente una nuova relazione uno-a-molti. Questa relazione creata da Access, non applicare l'integrità referenziale per impostazione predefinita. Per applicare l'integrità referenziale, è necessario modificare la relazione. Vedere la sezione modificare una relazione tra tabelle per altre informazioni.

Aprire una tabella in visualizzazione Foglio dati

  1. Nella scheda File fare clic 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 fare clic su Apri.

Aprire il riquadro Elenco campi

  • Premere ALT+F8.

    Verrà visualizzato il riquadro Elenco campi.

L' Elenco dei campi riquadro vengono visualizzate tutte le altre tabelle nel database, raggruppati in categorie. Quando si lavora con una tabella in visualizzazione Foglio dati, i campi vengono visualizzati in uno dei due categorie nel riquadro Elenco campi: campi disponibili in altre tabelle e campi disponibili nelle tabelle correlate. La prima categoria sono elencati tutte le tabelle che hanno una relazione con la tabella che sta lavorando. La seconda categoria Elenca tutte le tabelle con cui la tabella non ha una relazione.

Quando nel riquadro Elenco campi 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, trascinare il campo desiderato dal riquadro Elenco campi alla tabella aperta in visualizzazione Foglio dati.

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

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

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

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

    Verrà avviata la Ricerca guidata.

  4. Seguire le istruzioni per completare la Ricerca guidata.

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

Quando si trascina un campo da una tabella "altra" (non correlata) e quindi completa la ricerca guidata, tra la tabella in Elenco campi e la tabella a cui si trascina il campo viene creata automaticamente una nuova relazione uno-a-molti. Questa relazione creata da Access, non applicare l'integrità referenziale per impostazione predefinita. Per applicare l'integrità referenziale, è necessario modificare la relazione. Vedere la sezione modificare una relazione tra tabelle per altre informazioni.

Torna all'inizio

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. Viene visualizzata la linea di relazione più spessa quando è selezionata. Con la linea di relazione selezionata, premere CANC. Si noti che quando si rimuove una relazione, anche la rimozione del supporto l'integrità referenziale per tale relazione, se questa funzionalità è abilitata. Di conseguenza, l'accesso non viene più impedisce la creazione di record orfani sul lato "molti" di una relazione.

  1. Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni. Se si dispongano non ancora state definite relazioni e questa è la prima volta che si sta aprendo la finestra relazioni, viene visualizzata la finestra di dialogo Mostra tabella. Se viene visualizzata la finestra di dialogo, fare clic su Chiudi.

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

Verranno visualizzate tutte le tabelle che sono state definite relazioni, con le 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.

  1. È 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. Prima di poter rimuovere la relazione, sarà necessario chiudere gli eventuali oggetti aperti che utilizzano tali tabelle.

Torna all'inizio

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 Progettazione. Verrà visualizzata la finestra di dialogo Modifica relazioni.

Apportare le modifiche desiderate nella finestra di dialogo Modifica relazioni

  1. Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni. Se si dispongano non ancora state definite relazioni e questa è la prima volta che si sta aprendo la finestra relazioni, viene visualizzata la finestra di dialogo Mostra tabella. Se viene visualizzata la finestra di dialogo, fare clic su Chiudi.

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

  • Verranno visualizzate tutte le tabelle che sono state definite relazioni, con le linee di relazione.

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

  • Fare doppio clic sulla linea di relazione.

  • 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 altre informazioni sul tipo di join e la relativa impostazione, vedere la sezione Impostare il tipo di join. Per altre 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, fatti relativi alla relazione determinano le strutture delle query. Ad esempio, se si definisce una relazione tra due tabelle e quindi creare una query che utilizza tali tabelle, Access seleziona automaticamente i campi in base ai campi specificati nella relazione corrispondenti predefiniti. È possibile ignorare questi valori predefiniti iniziali nella query, ma i valori forniti dalla relazione risulta spesso corretti. In quanto corrispondenti e raggruppare i dati da più di una tabella viene verranno eseguite di frequente in tutti i database più semplici, impostazioni predefinite per la creazione di relazioni può risultare utile e il salvataggio.

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 esegua il join tra 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 specificati per ogni relazione è il tipo di join. Il tipo di join indica Access i record da includere nel risultato di una query. Si consideri ad esempio nuovamente una query che unisce la tabella clienti e la tabella ordini nei campi comuni che rappresentano l'ID cliente. Usa il tipo di join predefinito (denominato un inner join), la query restituirà solo le righe dei clienti e le righe di ordine in cui i campi comuni (denominati anche i 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 left outer join. Un left outer join restituisce tutte le righe della tabella sul lato sinistro della relazione e solo le righe della tabella a destra per le quali viene individuata una corrispondenza. Un right outer join restituisce tutte le righe della tabella sul lato destro della relazione e solo le righe della tabella a sinistra per le quali viene individuata una corrispondenza.

Nota : In questo caso, i termini per indicare la posizione sinistra e destra non fanno riferimento alla posizione delle tabelle nella finestra Relazioni, bensì a quella 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.

La tabella seguente (con le tabelle clienti e ordini) mostra tre opzioni che vengono visualizzate nella finestra di dialogo Proprietà Join casella il tipo di join che usano, e se tutte le righe o le righe corrispondenti sono incluse per ogni tabella.

Opzione

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. Nel gruppo Relazioni della scheda Strumenti database fare clic su Relazioni.

Verrà visualizzata la finestra Relazioni. Se si dispongano non ancora state definite relazioni e questa è la prima volta che si sta aprendo la finestra relazioni, viene visualizzata la finestra di dialogo Mostra tabella. Se viene visualizzata la finestra di dialogo, fare clic su Chiudi.

  • 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.

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

  • Fare doppio clic sulla linea di relazione.

Verrà visualizzata la finestra di dialogo Modifica relazioni.

  1. Fare clic su tipo di Join

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

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

Torna all'inizio

Applicare l'integrità referenziale

Lo scopo dell'integrità referenziale è per evitare di record orfani e mantenere sincronizzati i riferimenti in modo che non sono presenti record che fanno riferimento a altri record che non esistono più. Si applica integrità referenziale, consentendo di una relazione tra tabelle. Dopo aver applicato, Access rifiuta le operazioni che violino l'integrità referenziale per la relazione tra tabelle. Accesso rifiuta gli aggiornamenti da modificare la destinazione di un riferimento e le eliminazioni che consentono di rimuovere la destinazione di un riferimento. Per avere accesso propagare referenziali aggiornamenti e le eliminazioni in modo che tutte le righe correlate vengono modificate di conseguenza, vedere la sezione impostare le opzioni di eliminazione a catena.

Attivare o disattivare l'integrità referenziale

  1. Nella finestra Relazioni 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.

Verrà visualizzata la finestra di dialogo Modifica relazioni.

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

  2. 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 sono presenti 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.

  • È possibile modificare un valore di chiave primaria della tabella primaria se si creano record orfani. Ad esempio, è possibile modificare un numero di ordine nella tabella Ordini se sono presenti voci assegnate a tale ordine nella tabella Dettagli ordine. È tuttavia possibile, scegliere di aggiornare un record principale 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 applicare l'integrità referenziale sono necessarie le condizioni seguenti:

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

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

    • Entrambe le tabelle deve essere presente nello stesso database di Access. Non applicare l'integrità referenziale su tabelle collegate. Tuttavia, se le tabelle di origine sono in formato Access, è possibile aprire il database in cui sono archiviate e abilitare l'integrità referenziale nel database.

Impostare le opzioni di correlazione a catena

Si verifichino situazioni in cui è necessario modificare il valore sul lato "uno" di una relazione. In questo caso, è necessario accedere per aggiornare automaticamente tutte le righe interessate come parte di una singola operazione. In questo modo, l'aggiornamento verrà interamente completato, in modo che il database non rimanga in uno stato incoerente, ovvero con alcune righe aggiornate e altre no. Access consente di evitare questo problema è possibile che supporta l'opzione Aggiorna campi correlati a catena. Quando si applica l'integrità referenziale e scegliere l'opzione Aggiorna campi correlati a catena e quindi aggiorna una chiave primaria, Access aggiorna automaticamente tutti i campi che fanno riferimento la chiave primaria.

È inoltre possibile eliminare una riga e tutti i record correlati, ad esempio, un record shipper e tutti gli ordini correlati per tale shipper. Per questo motivo, Access supporta l'opzione Elimina record correlati a catena. Quando si applica l'integrità referenziale e scegliere l'opzione Elimina record correlati a catena, verranno automaticamente eliminati tutti i record che fanno riferimento la chiave primaria quando si elimina il record che contiene la chiave primaria.

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

  1. Nella finestra Relazioni 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.

Verrà visualizzata la finestra di dialogo Modifica relazioni.

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

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

  3. 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.

Torna all'inizio

Nota : Dichiarazione di non responsabilità per la traduzione automatica: Il presente articolo è stato tradotto tramite un software di traduzione automatica e non da una persona. Microsoft offre le traduzioni automatiche per consentire a coloro che non conoscono la lingua inglese di leggere gli articoli sui prodotti, sui servizi e sulle tecnologie Microsoft. Dal momento che l'articolo è stato tradotto automaticamente, potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli.

Queste informazioni sono risultate utili?

Ottimo! Altri commenti?

Cosa possiamo migliorare?

Grazie per i tuoi commenti e suggerimenti

×