Skip to main content

El poder de les tecles estrangeres en bases de dades relacionals

Anonim

Els dissenyadors de bases de dades fan un ampli ús de les claus quan es desenvolupen bases de dades relacionals. Entre les més freqüents, aquestes tecles són claus primàries i claus estrangeres. Una clau externa de base de dades és un camp en una taula relacional que coincideix amb la columna de clau principal d'una altra taula. Per comprendre com funciona una clau externa, fem una ullada a la idea d'una base de dades relacional.

Alguns fonaments bàsics de bases de dades relacionals

En una base de dades relacional, les dades s'emmagatzemen en taules que contenen files i columnes, fent que sigui fàcil de cercar i manipular. Hi ha algunes matemàtiques serioses darrere del concepte d'una base de dades relacional (àlgebra relacional, proposada per E.F.

Codd a IBM el 1970), però aquest no és el tema d'aquest article.

Per a propòsits pràctics (i no matemàtics), una base de dades relacional emmagatzema dades relacionades en files i columnes. A més, i aquí és on es fa interessant, la majoria de les bases de dades estan dissenyades perquè les dades d'una taula puguin accedir a les dades d'una altra taula. Aquesta capacitat de crear relacions entre taules és el poder real d'una base de dades relacional.

Ús de claus externes

La majoria de les taules, especialment aquelles en bases de dades grans i complexes, tenen claus primàries. Les taules que estan dissenyades per accedir a altres taules també han de tenir una clau externa.

Per utilitzar la base de dades Northwinds que es cita habitualment, aquí teniu un extracte d'una taula de productes:

El extracte de la taula de productes de la base de dades Northwind
ProductIDNom del producteCategoria IDQuantitatPerUPreu unitari
1Chai110 caixes x 20 bosses18.00
2Chang1Ampolles de 24 a 12 oz19.00
3Xarop anisat212 ampolles de 550 ml10.00
4Chef Anton's Cajun Seasoning248 - pots de 6 oz22.00
5Chef Anton's Gumbo Mix236 caixes21.35
6Ànim de Boysenberry Spread212 - pots de 8 oz25.00
7Pears seques orgàniques del tio Bob712 - 1 lb pkgs.30.00

El ProductID La columna és la clau principal d'aquesta taula. Assigna una ID única a cada producte.

Aquesta taula també conté una columna de clau externa, Categoria ID. Cada producte de la taula del producte es vincula a una entrada de la taula Categories que defineix la categoria de producte.

Tingueu en compte aquest extracte de la taula de categories de la base de dades:

Extracte de la taula de categories de Northwind Database
Categoria IDCategoriaNameDescripció
1BegudesRefrescs, cafès, tes, cerveses i ales
2CondimentsSalses dolces i salades, condiments, espècies i condiments
3ConfectionsPostres, caramels i pans dolços
5Productes làcticsFormatges

La columna Categoria ID és la clau principal d'aquesta columna. (No té clau externa perquè no necessita accés a una altra taula). Totes les claus estrangeres a la taula del producte es connecten a una clau principal a la taula Categories. Per exemple, el producte Chai se li assigna una categoria "Begudes", mentre que el xarop anís està en la categoria condiments.

Aquest tipus d'enllaç crea una infinitat de formes d'utilitzar i reutilitzar dades en una base de dades relacional.