ACC2000: Definizione di relazioni tra tabelle in un database di Microsoft Access

Traduzione articoli Traduzione articoli
Identificativo articolo: 304467 - Visualizza i prodotti a cui si riferisce l?articolo.
Richiedente: Richiede la conoscenza dell'interfaccia utente a utente singolo computer.

Il contenuto di questo articolo Ŕ applicabile solo ai database Microsoft Access (mdb).

Espandi tutto | Chiudi tutto

In questa pagina

Sommario

In questo articolo viene descritto come definire le relazioni in un database di Microsoft Access. ╚ articolata come segue:
  • Descrizione delle relazioni tra tabelle
  • Tipi di relazioni tra tabelle
    • Relazioni di uno a molti
    • Relazioni molti a molti
    • Relazioni one-To-One

  • Definizione di relazioni tra tabelle
    • Definizione di un relazioni: uno-a-molti o One-To-One
    • Definizione di molti a molti relazioni

  • IntegritÓ referenziale
  • Aggiornamenti ed Elimina a catena
  • Tipi di join

Informazioni

Descrizione delle relazioni tra tabelle

In un database relazionale, le relazioni consentono di evitare dati ridondanti. Ad esempio, se si progetta un database in cui verrÓ tenuta traccia di informazioni sui libri, sarÓ necessario una tabella denominata titles contenente informazioni su ogni libro, ad esempio la Rubrica? titolo s, la data di pubblicazione e l'editore. ╚ inoltre disponibile informazioni da memorizzare sull'editore, quali numero telefonico dell'editore, indirizzo e codice di avviamento postale. Se fosse necessario memorizzare tutte queste informazioni nei titoli tabella, il server di pubblicazione? s numero di telefono verrebbe duplicato per ogni titolo che il server di pubblicazione di stampa.

Una soluzione di migliore consiste nel memorizzare le informazioni sull'editore una sola volta in una tabella separata, server di pubblicazione. ╚ quindi necessario inserire un puntatore nella tabella titles che faccia riferimento a una voce nella tabella publishers.

Per assicurarsi che i dati non sono sincronizzati, Ŕ possibile applicare l'integritÓ referenziale tra le tabelle titles e publishers. Relazioni con integritÓ referenziale garantire che le informazioni di una tabella corrispondano a informazioni contenute in un altro. Ad esempio, ogni titolo nella tabella titles deve essere associato a un editore specifico nella tabella publishers. Impossibile aggiungere un titolo al database di un editore che non esiste nel database.

Tipi di relazioni tra tabelle

Una relazione funziona facendo corrispondere i dati delle colonne chiave, in genere colonne con lo stesso nome in entrambe le tabelle. Nella maggior parte dei casi, la relazione associa la chiave primaria di una tabella, che fornisce un identificatore univoco per ogni riga, con una voce nella chiave esterna in altra tabella. Vendite, ad esempio, sono possibile associare con i titoli specifici venduti creando una relazione tra la colonna di title_id nella tabella titles (la chiave primaria) e la colonna title_id nella tabella Sales (la chiave esterna).

Esistono tre tipi di relazioni tra tabelle. Il tipo di relazione creato dipende la come sono definite le colonne correlate.

Relazioni di uno a molti

Una relazione di uno-a-molti Ŕ il tipo pi¨ comune di relazione. In questo tipo di relazione, una riga della tabella A pu˛ avere numerose righe corrispondenti nella tabella B, mentre una riga nella tabella B pu˛ avere solo una riga corrispondente nella tabella a. Ad esempio, le tabelle publishers e titles hanno una relazione di uno-a-molti: ciascun editore produce molti libri, ma ogni titolo proviene da un solo editore.

Una relazione uno a molti viene creata se solo una delle colonne correlate Ŕ una chiave primaria o ha un vincolo unique.

In Access, il lato chiave primaria di una relazione uno-a-molti Ŕ denotato dal simbolo di chiave. Il lato chiave esterna di una relazione Ŕ identificato da un simbolo di infinito.

Relazioni molti a molti

In una relazione molti a molti, una riga della tabella A Ŕ in possibile di avere numerose righe corrispondenti nella tabella B e viceversa. ╚ possibile creare tali una relazione definendo una terza tabella, denominata tabella di congiunzione, la cui chiave primaria Ŕ costituita dalle chiavi esterne di entrambe tabelle A e b. Ad esempio, la tabella authors e la tabella di titoli hanno una relazione molti a molti definita da una relazione uno-a-molti da ciascuna di queste tabelle per la tabella AutoriTitoli. La chiave primaria della tabella AutoriTitoli Ŕ la combinazione della colonna au_id (la tabella authors? chiave di s primaria) e la colonna title_id (la tabella titles? chiave di s primaria).

Relazioni one-To-One

In una relazione uno-a-uno, una riga della tabella A Ŕ in possibile di avere pi¨ di una riga corrispondente nella tabella B e viceversa. Una relazione uno-a-uno viene creata se entrambe le colonne correlate sono chiavi primarie o hanno vincoli univoci.

Questo tipo di relazione non Ŕ comune quanto la maggior parte delle informazioni correlate in questo modo tutti in una tabella. ╚ possibile utilizzare una relazione uno-a-uno:
  • Dividere una tabella con molte colonne.
  • Isolare parte di una tabella per motivi di protezione.
  • Memorizzare i dati temporanei che possono essere eliminati con facilitÓ semplicemente eliminando la tabella.
  • Memorizzare le informazioni valide solo per un sottoinsieme della tabella principale.
In Access, il lato chiave primaria di una relazione uno-a-uno Ŕ denotato dal simbolo di chiave. Inoltre, il lato chiave esterna Ŕ identificato da un simbolo di chiave.

Definizione di relazioni tra tabelle

Quando si crea una relazione tra tabelle, i campi correlati non sono necessario avere gli stessi nomi. Tuttavia, i tipo a meno che il campo chiave primaria sia un campo contatore di dati stessi devono corrispondere a campi correlati. ╚ possibile associare un campo contatore con un campo numerico solo se la proprietÓ FieldSize di entrambi i campi corrispondenti corrisponde. Ad esempio, Ŕ possibile confrontare un campo contatore e un campo numerico se la proprietÓ FieldSize di entrambi i campi Ŕ intero lungo. Anche se entrambi i campi corrispondenti sono campi di tipo numerico, devono avere l'impostazione della proprietÓ Dimensione campo sia uguale.

Definizione di un relazioni: uno-a-molti o One-To-One

Per creare un uno a molti o di una relazione uno-a-uno, attenersi alla seguente procedura:
  1. Chiudere tutte le tabelle eventualmente aperte. Impossibile creare o modificare le relazioni tra tabelle aperte.
  2. Premere F11 per passare alla finestra del database.
  3. Nel menu Strumenti , fare clic su relazioni .
  4. Se non sono ancora state definite le relazioni nel database, viene visualizzata automaticamente la finestra di dialogo Mostra tabella . Se si desidera aggiungere le tabelle che si desidera correlare, ma la finestra di dialogo Mostra tabella non Ŕ visualizzata, scegliere Mostra tabella dal menu relazioni .
  5. Fare doppio clic sui nomi delle tabelle che si desidera correlare e chiudere la finestra di dialogo Mostra tabella . Per creare una relazione tra una tabella e se stesso, Ŕ anche possibile aggiungere tale tabella due volte.
  6. Trascinare il campo che si desidera correlare da una tabella al campo correlato in altra tabella. Per trascinare pi¨ campi, premere CTRL, fare clic su ogni campo e quindi trascinarli.

    Nella maggior parte dei casi si trascina il campo chiave primaria (visualizzato in grassetto) da una tabella a un campo simile (spesso con lo stesso nome), detto chiave esterna in altra tabella.
  7. La finestra di dialogo Modifica relazioni Ŕ visualizzata. Verificare che i nomi di campo visualizzati nelle due colonne siano corretti. ╚ possibile modificare i se necessario.

    Se necessario, impostare le opzioni di relazione. Se si desiderano informazioni su un elemento specifico nella finestra di dialogo Modifica relazioni , fare clic sul pulsante punto interrogativo e quindi fare clic sull'elemento. Queste opzioni verranno essere illustrate in dettaglio pi¨ avanti in questo articolo.
  8. Fare clic su Crea per creare la relazione.
  9. Ripetere i passaggi 5 a 8 per ogni coppia di tabelle che si desidera correlare.

    Quando si chiude la finestra di dialogo Modifica relazioni , verrÓ richiesto se si desidera salvare il layout. Se si salva il layout o non, le relazioni create vengono salvate nel database.

    Nota: ╚ possibile creare relazioni in query, nonchÚ le tabelle. Tuttavia, l'integritÓ referenziale non viene applicata con le query.

Definizione di molti a molti relazioni

Per creare una relazione molti a molti, attenersi alla seguente procedura:
  1. Creare le due tabelle verranno con una relazione molti a molti.
  2. Creare una terza tabella, chiamata tabella di congiunzione e quindi aggiungere ai campi di nuovo di tabella di collegamento con le stesse definizioni dei campi chiave primaria da ciascuna delle altre due tabelle. Nella tabella di collegamento i campi chiave primaria fungono da chiavi esterne. ╚ possibile aggiungere altri campi alla tabella di congiunzione analogamente a qualsiasi altra tabella.
  3. Nella tabella collegamento, impostare la chiave primaria per includere i campi chiave primaria delle altre due tabelle. Pu˛ ad esempio, una tabella di collegamento AutoriTitoli la chiave primaria potrebbe essere costituita i campi OrderID e ProductID.

    Nota : per creare una chiave primaria, attenersi alla seguente procedura:
    1. Aprire una tabella in visualizzazione struttura.
    2. Selezionare il campo o i campi che si desidera definire come chiave primaria. Per selezionare un campo, fare clic sul selettore di riga per il campo desiderato.

      Per selezionare pi¨ campi, tenere premuto il tasto CTRL e quindi fare clic il selettore di riga per ogni campo.
    3. Fare clic su Chiave primaria sulla barra degli strumenti.

      Nota: Se si desidera l'ordine dei campi in una chiave primaria multicampo pu˛ essere diverso da quello degli stessi campi nella tabella, fare clic su indici sulla barra degli strumenti per visualizzare la finestra di dialogo indici e quindi riordinare i nomi dei campi per l'indice denominato ChiavePrimaria .
  4. Definire una relazione uno-a-molti tra ognuna delle due tabelle primarie e la tabella di collegamento.

IntegritÓ referenziale

L'integritÓ referenziale Ŕ un sistema di regole che vengono utilizzati per garantire che le relazioni tra i record nelle tabelle correlate siano valide e che non accidentalmente eliminare o modificare i dati correlati. ╚ possibile impostare l'integritÓ referenziale quando vengono soddisfatte tutte le condizioni seguenti:
  • Il campo corrispondente della tabella primaria Ŕ una chiave primaria o dispone di un indice univoco.
  • I campi correlati hanno lo stessi tipo di dati. Esistono due eccezioni. Un campo contatore pu˛ essere correlato a un campo con l'impostazione proprietÓ Dimensione campo intero lungo, e un campo di tipo contatore con l'impostazione proprietÓ Dimensione campo ID replica pu˛ essere correlato a un campo con l'impostazione proprietÓ Dimensione campo ID replica.
  • Entrambe le tabelle appartengono allo stesso database di Microsoft Access. Se le tabelle sono tabelle collegate, devono essere le tabelle in formato Microsoft Access ed Ŕ necessario aprire il database in cui sono memorizzate per impostare l'integritÓ referenziale. L'integritÓ referenziale non pu˛ essere applicata per tabelle collegate di database in altri formati.
Le seguenti regole valide quando si utilizza l'integritÓ referenziale:

  • Non Ŕ possibile immettere un valore nel campo chiave esterna della tabella correlata che non esiste nella chiave primaria della tabella primaria. ╚ possibile tuttavia immettere un valore null nella chiave esterna, specificando che i record non sono correlati. Ad esempio, non pu˛ essere un ordine in cui Ŕ assegnato a un cliente che non esiste, ma pu˛ essere assegnato a un immettendo un valore di null nel campo IDCliente.
  • Non Ŕ possibile eliminare un record da una tabella primaria se esistono record corrispondenti in una tabella correlata. Non Ŕ possibile, ad esempio, eliminare record di un dipendente della tabella Impiegati se ci sono ordini assegnati al dipendente nella tabella Ordini.
  • Non Ŕ possibile modificare un valore di chiave primaria nella tabella primaria, se tale record ha record correlati. Non Ŕ possibile, ad esempio, modificare l'ID di un dipendente nella tabella Impiegati se ci sono ordini assegnati al dipendente nella tabella Ordini.

Aggiornamenti ed Elimina a catena

Per le relazioni in cui viene applicata l'integritÓ referenziale, Ŕ possibile specificare se si desidera che venga automaticamente aggiornamento a catena o eliminazione a catena i record correlati. Se si impostano queste opzioni, eliminare e aggiornare le operazioni, normalmente impedite dalle sono consentite regole di integritÓ referenziale. Quando si eliminano record o si modificano valori di chiave primaria in una tabella primaria, verrÓ apporta le modifiche necessarie alle tabelle correlate per mantenere l'integritÓ referenziale.

Se seleziona la casella di controllo Aggiorna campi correlati a catena quando si definisce una relazione, ogni volta che si modifica la chiave primaria di un record nella tabella primaria, la chiave primaria viene automaticamente aggiornata con il nuovo valore in tutti i record correlati. Ad esempio, se si modifica l'ID di un cliente nella tabella clienti, il CustomerID campo nella tabella Ordini viene aggiornato automaticamente per tutti gli ordini del cliente in modo che la relazione non interrotta. Microsoft Access estende gli aggiornamenti senza visualizzare alcun messaggio.

Nota: Se la chiave primaria della tabella primaria Ŕ un campo contatore, selezionare la casella di controllo Aggiorna campi correlati a catena non avrÓ alcun effetto, poichÚ non Ŕ possibile modificare il valore di un campo contatore.

Se si seleziona la casella di controllo Elimina record correlati a catena quando si definisce una relazione, ogni volta che si eliminano record nella tabella primaria, verrÓ automaticamente eliminati i record correlati nella tabella correlata. Ad esempio, se si elimina un record cliente dalla tabella clienti, gli ordini di tutti i clienti vengono eliminati automaticamente dalla tabella Ordini (compresi i record nella tabella Dettagli ordini correlati ai record). Quando si eliminano record da una maschera o un foglio dati con la casella di controllo Elimina record correlati a catena selezionata, verrÓ visualizzato un messaggio di avviso che indica la possibilitÓ che vengano eliminati anche i record correlati. Tuttavia, quando si eliminano record utilizzando una query di eliminazione, verranno automaticamente eliminati i record di tabelle correlate senza visualizzare un messaggio di avviso.

Tipi di join

Esistono tre tipi di join, come indicato di seguito:

opzione 1 definisce un inner join. Un inner join Ŕ un join in cui i record di due tabelle vengono combinati nei risultati di una query solo se valori nei campi collegati soddisfano una condizione specificata. In una query, il join predefinito Ŕ un inner join che seleziona i record solo se i valori dei campi collegati tramite join corrispondono.

opzione 2 definisce un left outer join. Un left outer join Ŕ un join nel quale tutti i record il lato sinistro dell'operazione LEFT JOIN nell'istruzione SQL della query vengono aggiunti ai risultati della query, anche se esistono valori corrispondenti nel campo collegato della tabella di destra.

opzione 3 definisce un right outer join. Un right outer join Ŕ un join nel quale tutti i record destra dell'operazione RIGHT JOIN nell'istruzione SQL della query vengono aggiunti ai risultati della query, anche se esistono valori corrispondenti nel campo collegato della tabella di sinistra.

Riferimenti

Per ulteriori informazioni sulle relazioni in Microsoft Access, fare clic all'argomento "Creazione e Progettazione tabelle" nella Guida di Microsoft Access 2000 pagina il seguente sito Web Microsoft:
Microsoft Access 2000 Help
Per ulteriori informazioni sulle relazioni in Microsoft Access, scegliere Guida in linea di Access dal menu Guida , digitare creare o modificare relazioni nell'Assistente di Office o nella ricerca libera e scegliere il pulsante Cerca per visualizzare gli argomenti restituiti.

ProprietÓ

Identificativo articolo: 304467 - Ultima modifica: martedý 29 giugno 2004 - Revisione: 2.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Access 2000 Standard Edition
Chiavi:á
kbmt kbhowto KB304467 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 304467
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com