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.

Il punto di forza di un database relazionale è la sua capacità di combinare i dati di più tabelle. A tale scopo devi prima di tutto stabilire una relazione tra le tabelle, in modo che Access possa 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 che è applicata l'integrità referenziale dei dati. È una cosa positiva, poiché mantiene i dati sincronizzati.

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

    In alcuni casi l'applicazione dell'integrità referenziale non ha alcuna utilità. Ad esempio, immagina che esista una relazione uno-a-molti fra la tabella Spedizionieri e la tabella Ordini e di dover eliminare uno spedizioniere associato a più ordini nella tabella Ordini. Questi ordini diventano orfani, in quanto contengono ancora un ID spedizioniere, ma tale 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 una relazione

Eliminare una relazione

Formazione su Excel

Formazione su Outlook

Dopo aver aggiunto tabelle nel database, puoi crearne le reciproche relazioni. Le relazioni sono importanti perché ricollegano le tabelle dopo che dividi i dati e anche perché hanno un notevole impatto sul modo in cui progetti le query e ottieni risposte dai dati.

Qualsiasi database relazionale usa tre tipi di relazione tra le tabelle. Uno-a-molti, molti-a-molti e uno-a-uno.

La relazione che usi dipende dai dati. Una relazione uno-a-molti avviene quando un singolo record in una tabella è correlato a uno o più record in un'altra tabella.

Il nostro database di esempio ha questo tipo di relazione. Un cliente può avere uno o più numeri di telefono, ognuno dei quali è correlato a un solo cliente.

Una relazione molti-a-molti avviene quando un singolo record nella tabella A può essere correlato a uno o più record nella tabella B e quando anche un singolo record nella tabella B può essere correlato a uno o più record nella tabella A.

Puoi osservare relazioni molti-a-molti nei database che tengono traccia degli ordini, in cui un ordine può contenere molti prodotti e un prodotto può fare parte di più ordini.

Questo tipo di relazione può essere osservato anche nei database degli studenti, in cui gli studenti possono occupare diverse classi.

Una relazione uno-a-uno avviene quando un singolo record in una tabella è correlato a un solo record in un'altra tabella. Ad esempio, un singolo dipendente che guida una sola auto aziendale. Questo tipo di relazione non è molto comune, ma è anzi piuttosto raro.

Selezioniamo ora Strumenti database e quindi Relazioni. Viene visualizzato il riquadro Relazioni. Userai spesso questo strumento.

È qui che puoi creare e gestire la maggior parte delle relazioni. Questa che vedi è una tipica relazione: due tabelle con una linea che le collega. La linea indica che le tabelle sono correlate.

Inoltre, si tratta di una relazione uno-a-molti. Il tipo di relazione è indicato dalla linea, che ha a un'estremità un UNO e all'altra il simbolo di INFINITO. Questi simboli si riferiscono a un paio di concetti importanti.

Prima di tutto, la tabella sul lato UNO è la tabella PADRE, mentre la tabella sul lato MOLTI è una tabella FIGLIO.

In secondo luogo, la maggior parte delle relazioni ha due LATI. In questo caso, hai una tabella sul lato UNO e una tabella sul lato MOLTI.

I lati sono importanti perché determinano la progettazione delle query.

Selezioniamo ora la linea della relazione e quindi, sulla barra multifunzione, selezioniamo Modifica relazioni.

Sono tre le impostazioni che hanno effetto sui dati e che ti aiutano a usare le relazioni correttamente: l'integrità referenziale, gli aggiornamenti a catena e le eliminazioni a catena. Ecco come funzionano.

Prima di tutto, l'integrità referenziale sincronizza i record in entrambe le tabelle. Poiché è fondamentale per assicurare la correttezza dei dati, è opportuno impostare questa opzione praticamente sempre.

Dopo aver applicato l'integrità referenziale, puoi aggiungere un numero di telefono solo se la tabella Clienti contiene un nome. Questa opzione previene la creazione dei cosiddetti dati ORFANI, ovvero dati senza record padre.

Ad esempio, immagina un importo di vendita che non sia collegato ad alcun ordine e capirai perché l'impostazione dell'integrità referenziale è così importante.

L'impostazione degli aggiornamenti a catena fa sì che qualsiasi modifica sul lato padre venga applicata a catena a qualsiasi record correlato sul lato FIGLIO o MOLTI.

Se il nome di un cliente cambia, ad esempio, devi semplicemente immettere questa modifica nella tabella Clienti perché cambino tutti i record correlati.

L'impostazione delle eliminazioni a catena controlla se è possibile eliminare i dati. Se non la selezioni, non puoi eliminare dati. Se la selezioni, quando elimini un record Access elimina qualsiasi elemento correlato al record.

Se elimini un cliente, ad esempio, vengono eliminati anche i suoi numeri di telefono.

Questo è importante perché impedisce la presenza di record orfani, come i numeri di telefono senza cliente. D'altro canto, ricorda che le regole definite nella tua azienda potrebbero impedire l'eliminazione dei dati. Queste regole possono avere un ruolo importante nella progettazione del tuo database.

Conosci ora le relazioni tra tabelle, inclusi l'uso del riquadro Relazioni di Access e le impostazioni delle relazioni che ti aiutano a gestire in modo più efficace il tuo database di Access.

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.

×