Tipi di relazioni tra tabelle
Una relazione associa i dati di colonne chiave, che in genere hanno lo stesso nome in entrambe le tabelle.Nella maggior parte dei casi la relazione associa la chiave primaria di una tabella, che fornisce un identificativo univoco per ciascuna riga, a una voce nella chiave esterna dell'altra tabella.Le vendite di libri possono essere associate ad esempio ai titoli dei libri specifici venduti creando una relazione fra la colonna title_id nella tabella titles (la chiave primaria) e la colonna title_id nella tabella sales (la chiave esterna).
Esistono tre tipi di relazioni fra le tabelle.Il tipo di relazione creato dipende da come sono definite le colonne correlate.
Relazioni uno-a-molti
Relazioni molti-a-molti
Relazioni uno-a-uno
[!NOTA]
Viene visualizzata una nuova versione di Progettazione tabelle per i database nel formato SQL Server 2012. In questo argomento viene descritta la versione precedente di Progettazione tabelle, utilizzata con i database in formati precedenti di SQL Server.
Nella nuova versione è possibile modificare definizioni di tabella mediante un'interfaccia grafica o direttamente in un riquadro di script. Se si utilizza l'interfaccia grafica, la definizione della tabella viene automaticamente aggiornata nel riquadro di script. Per applicare il codice SQL nel riquadro di script, selezionare il pulsante Aggiorna. Per ulteriori informazioni sulla nuova versione, vedere Procedura: Creazione di oggetti di database tramite Progettazione tabelle.
Relazioni uno-a-molti
Una relazione uno-a-molti è il tipo più comune di relazione.In questo tipo di relazione, per una riga della tabella A possono essere presenti numerose righe corrispondenti nella tabella B; per una riga nella tabella B invece può esistere solo una riga corrispondente nella tabella A.La relazione tra le tabelle publishers e titles, ad esempio, è del tipo uno-a-molti: ciascun editore crea numerosi titoli, ma ogni titolo proviene da un solo editore.
Creare una relazione uno-a-molti solo se una delle colonne correlate è una chiave primaria o prevede un vincolo univoco.
Il lato chiave primaria di una relazione uno-a-molti è identificato da un 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 nella tabella A può avere numerose righe corrispondenti nella tabella B e viceversa.Per creare una simile relazione, è necessario definire una terza tabella, definita tabella di collegamento, la cui chiave primaria è costituita dalle chiavi esterne della tabella A e della tabella B.Tra le tabelle authors e titles, ad esempio, esiste una relazione del tipo molti-a-molti, definita in base alla relazione uno-a-molti di ciascuna di queste tabelle con la tabella titleauthors.La chiave primaria della tabella titleauthors è data dalla combinazione della colonna au_id (la chiave primaria della tabella authors) e la colonna title_id (la chiave primaria della tabella titles).
Relazioni uno-a-uno
In una relazione uno-a-uno una riga nella tabella A può avere una sola riga corrispondente nella tabella B e viceversa.Una relazione uno-a-uno viene creata se entrambe le colonne correlate sono chiavi primarie o prevedono vincoli univoci.
Questo tipo di relazione non è comune perché la maggior parte delle informazioni correlate in questo modo appartiene a un'unica tabella.È possibile utilizzare una relazione uno-a-uno per:
Suddividere una tabella con molte colonne.
Isolare parte di una tabella a scopo di sicurezza.
Archiviare dati temporanei che potrebbero essere facilmente cancellati semplicemente eliminando la tabella.
Archiviare informazioni applicabili solo a un sottoinsieme della tabella principale.
Il lato chiave primaria di una relazione uno-a-uno è identificato da un simbolo di chiave,così come il lato chiave esterna.
Vedere anche
Concetti
Cenni preliminari sull'integrità referenziale