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

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

Altre risorse

Operazioni con le relazioni

Operazioni con le chiavi