Skip to main content

Il potere delle chiavi esterne nei database relazionali

Linux Tutorial for Beginners: Introduction to Linux Operating System (Giugno 2025)

Linux Tutorial for Beginners: Introduction to Linux Operating System (Giugno 2025)
Anonim

I progettisti di database fanno ampio uso di chiavi nello sviluppo di database relazionali. Tra le più comuni di queste chiavi ci sono le chiavi primarie e le chiavi esterne. Una chiave esterna del database è un campo in una tabella relazionale che corrisponde alla colonna della chiave primaria di un'altra tabella. Per capire come funziona una chiave esterna, diamo un'occhiata più da vicino all'idea di un database relazionale.

Alcune nozioni di base sui database relazionali

In un database relazionale, i dati vengono archiviati in tabelle contenenti righe e colonne, semplificando la ricerca e la manipolazione. Esiste una seria matematica dietro il concetto di un database relazionale (algebra relazionale, proposto da E.F.

Codd in IBM nel 1970), ma questo non è l'argomento di questo articolo.

Per scopi pratici (e non matematici), un database relazionale memorizza i dati correlati in righe e colonne. Inoltre - ed ecco dove diventa interessante - la maggior parte dei database sono progettati in modo che i dati in una tabella possano accedere ai dati in un'altra tabella. Questa capacità di creare relazioni tra tabelle è il vero potere di un database relazionale.

Utilizzo di chiavi esterne

La maggior parte delle tabelle, in particolare quelle in database complessi e di grandi dimensioni, ha chiavi primarie. Le tabelle progettate per accedere ad altre tabelle devono avere anche una chiave esterna.

Per utilizzare il database Northwinds comunemente citato, ecco un estratto da una tabella di prodotto:

Estratto della tabella dei prodotti del database Northwind
Codice prodottoNome del prodottoIDCategoriaQuantityPerUPrezzo unitario
1Chai110 scatole x 20 borse18.00
2Chang124 - 12 bottiglie di oz19.00
3Sciroppo d'anice212 - flaconi da 550 ml10.00
4Condimento Cajun dello Chef Anton2Vasetti da 48 - 6 once22.00
5Gumbo Mix dello Chef Anton236 scatole21.35
6Diffusione di Boysenberry della nonna2Vasetti da 12 - 8 once25.00
7Pere secche organiche dello zio Bob712 - 1 libbra pkgs.30.00

Il Codice prodotto la colonna è la chiave primaria di questa tabella. Assegna un ID univoco a ciascun prodotto.

Questa tabella contiene anche una colonna chiave esterna, IDCategoria. Ogni prodotto nella tabella Prodotto si collega a una voce nella tabella Categorie che definisce la categoria di quel prodotto.

Prendi nota di questo estratto dalla tabella Categorie del database:

Estratto da tabella delle categorie del database di Northwind
IDCategoriaNome della categoriaDescrizione
1BevandeBibite, caffè, tè, birre e birre
2condimentiSalse, condimenti, creme e condimenti dolci e salati
3confezioniDessert, caramelle e animelle
5latticiniformaggi

La colonna IDCategoria è la chiave principale di questa colonna. (Non ha alcuna chiave esterna perché non ha bisogno di accedere a un'altra tabella.) Ogni chiave esterna nella tabella Prodotto si collega a una chiave primaria nella tabella Categorie. Ad esempio, al prodotto Chai viene assegnata una categoria "Bevande", mentre Anice Sciroppo si trova nella categoria Condimenti.

Questo tipo di collegamento crea una miriade di modi per utilizzare e riutilizzare i dati in un database relazionale.