Usare le relazioni

Introduzione alle relazioni tra tabelle

Il browser in uso non supporta le funzionalità video. Installare Microsoft Silverlight, Adobe Flash Player o Internet Explorer 9.

Prova

La potenza di un database relazionale consiste nella combinazione di dati tra tabelle. A questo scopo, è prima di tutto necessario stabilire relazioni tra le tabelle. Quindi, impostare Access per combinare i dati in query, maschere e report.

Per vedere tutte le relazioni definite per un database, apri un modello di Access, passa alla scheda Strumenti database e seleziona Relazioni.

Nota: Se apri un database vuoto o se non hai definito una relazione tra tabelle, Access ti chiede di aggiungere una tabella o una query. Per poter aggiungere una relazione servono almeno due tabelle. L'ideale è creare tutte le tabelle come prima cosa. Per altre informazioni, vedi Creare relazioni con la Ricerca guidata e Creare relazioni con il riquadro Relazioni.

Panoramica della visualizzazione Relazioni

Le linee che vedi nella visualizzazione Relazioni indicano le connessioni tra le tabelle. Nell'immagine seguente la tabella a sinistra è la tabella padre. La tabella a destra è la tabella figlio. La linea tra di esse collega i campi (in questo caso ID ordine e ID prodotto) usati per la corrispondenza dei dati.

Le relazioni sono indicate da linee tracciate tra campi padre e figlio.

Le linee e i simboli mostrano in che modo sono correlate le tabelle:

  • Una linea di connessione spessa indica l'applicazione dell'integrità referenziale dei dati. Va bene. Mantiene sincronizzati i dati.

  • Nell'illustrazione il numero 1 indica che ci può essere un solo record corrispondente nella tabella. Nella tabella Ordini visualizzata qui solo un record corrisponde a ogni ordine.

  • Il simbolo ∞ indica che diversi record possono includere lo stesso ID. Nella tabella Dettagli ordine visualizzata qui, un ordine (indicato dal relativo ID ordine) può comparire più volte, poiché lo stesso ordine può includere più prodotti.

Tipi di relazioni tra tabelle

Esistono tre tipi di relazioni tra tabelle:

  • Uno-a-uno Si ha quando ogni elemento in ciascuna tabella compare una sola volta. Ad esempio, ogni dipendente può avere una sola auto aziendale da usare. Per altre informazioni, vedi Creare relazioni uno-a-uno.

  • Uno-a-molti Si ha quando un elemento di una tabella può avere una relazione con più elementi di un'altra tabella. Ad esempio, ogni ordine d'acquisto può includere più prodotti.

  • Molti-a-molti. Si ha quando uno o più elementi di una tabella possono avere una relazione con uno o più elementi di un'altra tabella. Ad esempio, ogni ordine può avere più prodotti e ogni prodotto può essere incluso in più ordini. Per altre informazioni, vedi Creare relazioni molti-a-molti.

Relazioni uno-a-molti

Una delle relazioni più comuni tra le tabelle di un database ben progettato è la relazione uno-a-molti.

Le relazioni tra tabelle normalmente si basano sulla chiave primaria di una delle tabelle. La chiave primaria è un identificatore univoco (spesso numerico) per ogni record. Per mostrare che le informazioni contenute in due tabelle diverse sono correlate, in genere si crea una relazione usando la chiave primaria di una delle tabelle.

Nella relazione visualizzata qui, ad esempio, ogni persona nella tabella Contatti ha un ID, che corrisponde alla chiave primaria (indicata dal simbolo della chiave accanto a esso). L'ID compare anche nel campo Proprietario della tabella Beni. Per inviare un messaggio di posta elettronica alla persona associata a un bene, ottieni il valore dal campo Indirizzo di posta elettronica. Per farlo, cerca il valore nel campo Proprietario della tabella Beni e quindi cerca l'ID corrispondente nella tabella Contatti. Il numero 1 a un'estremità della linea di connessione e il simbolo ∞ all'altra estremità indicano la presenza di una relazione uno-a-molti, quindi un contatto potrebbe essere associato a diversi beni.

Relazione uno-a-molti

Modificare una relazione

Se stai modificando un database esistente o se hai creato il database da un modello, puoi modificare le relazioni esistenti in base alle tue esigenze.

Nota: Se le tabelle che vuoi modificare sono in uso devi prima chiuderle, insieme agli eventuali oggetti aperti che le usano.

  1. Seleziona Strumenti database > Relazioni.

  2. Seleziona le linea di connessione di due tabelle correlate.

    Suggerimento: Se non vedi la relazione che ti interessa, nel gruppo Relazioni della scheda Struttura seleziona Tutte le relazioni.

  3. Nella scheda Struttura seleziona Modifica relazioni.

    Modificare una relazione esistente tra tabelle

    Tabella/query è la tabella padre a sinistra (in questo esempio, Clienti).

    Tabella/query correlata è la tabella figlio (in questo esempio, Ordini).

    Anche se le tabelle non appaiono in questo ordine nella visualizzazione Relazioni, il loro posizionamento nella finestra di dialogo indica la direzione della linea che le connette tra loro e la relazione. Questo è importante, ad esempio, se la relazione è di tipo uno-a-molti, poiché indica che la tabella a sinistra è il lato "uno" (la tabella padre) e la tabella a destra è il lato "molti" (la tabella figlio).

  4. Per cambiare i campi che connettono le tabelle, seleziona un campo diverso sotto ogni tabella visualizzata. In questo esempio il campo ID nella tabella Clienti è connesso al campo ID cliente nella tabella Ordini.

  5. Cambia il modo in cui Access sincronizza i dati tra le tabelle.

    Applica integrità referenziale

    Seleziona questa opzione per impedire la generazione di dati non validi e mantenere sincronizzati i riferimenti nelle relazioni fra tabelle.

    Ad esempio, immagina che esista una relazione uno-a-uno fra la tabella Dipendenti e la tabella Indennità dipendenti. Se un dipendente lascia l'azienda e lo rimuovi quindi dalla tabella Dipendenti, viene rimosso anche il record dipendente correlato nella tabella Indennità dipendenti.

    A volte l'applicazione dell'integrità referenziale non ha senso. Si supponga, ad esempio, di avere una relazione uno-a-molti tra Corrieri e Ordini. Si elimina uno spedizioniere e lo spedizioniere esegue il mapping agli ordini nella tabella Ordini. Questi ordini diventano orfani, ovvero contengono ancora un ID corriere, ma l'ID non è più valido perché il record a cui fa riferimento non esiste più.

    Aggiorna campi correlati a catena

    Seleziona questa opzione per assicurarti che i dati nei campi correlati vengano aggiornati in tutte le tabelle correlate.

    Ad esempio, immagina di voler semplicemente cambiare l'ID di uno spedizioniere. L'impostazione di questa opzione assicura che l'ID spedizioniere venga aggiornato, non solo nella tabella Spedizionieri ma anche in qualsiasi altra tabella connessa a questa che include a loro volta quello stesso ID, come ad esempio la tabella Ordini.

    Elimina record correlati a catena

    Seleziona questa opzione se non hai bisogno di conservare determinati record in alcune tabelle anche se potrebbero essere eliminati da altre tabelle.

    Immagina ad esempio di eliminare uno spedizioniere. Se questa opzione è selezionata, Access elimina tutti i record in tutte le tabelle che fanno riferimento a quell'ID spedizioniere, inclusi tutti gli ordini (nella tabella Ordini) spediti da quello spedizioniere. Devi selezionare questa opzione solo se vuoi sicuramente eliminare la cronologia degli ordini.

  6. Per modificare la relazione tra le tabelle da inner join a outer join, seleziona il pulsante Tipo join. Per altre informazioni, vedi Creare query con outer join.

Eliminare una relazione tra tabelle

Nota: Se le tabelle che vuoi modificare sono in uso devi prima chiuderle, insieme agli eventuali oggetti aperti che le usano.

Per rimuovere una relazione tra tabelle:

  1. Seleziona Strumenti database > Relazioni.

  2. Seleziona la linea di connessione tra le due tabelle correlate.

    Suggerimento: Se non vedi la relazione che ti interessa, nel gruppo Relazioni della scheda Struttura seleziona Tutte le relazioni.

  3. Premi CANC. Se ti viene chiesto di confermare l'eliminazione della relazione, scegli .

Nota: Quando si rimuove una relazione, viene rimosso anche il supporto dell'integrità referenziale, se presente. Di conseguenza, Access non impedirà più le modifiche che producono record orfani sul lato molti di un relazione uno-a-molti.

Altre informazioni

Creare, modificare o eliminare una relazione

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.