O poder das teclas estranxeiras en bases de datos relacionales

Unha clave estranxeira abre a porta a un mundo enteiro de datos

Os deseñadores de bases de datos utilizan amplamente as teclas ao desenvolver bases de datos relacionales. Entre as máis comúns destas claves están as teclas primarias e as teclas estranxeiras. A chave estranxeira de base de datos é un campo dunha táboa relacional que coincide coa columna de chave primaria dunha outra táboa. Para entender como funciona unha chave estranxeira, vexamos máis de cerca a idea dunha base de datos relacional.

Algúns principios básicos de bases de datos relacionales

Nunha base de datos relacional, os datos almacénanse en táboas que conteñen filas e columnas, facilitando a busca e manipulación. Hai algunhas matemáticas serias detrás do concepto dunha base de datos relacional (álxebra relacional, proposta por EF

Codd en IBM en 1970), pero ese non é o tema deste artigo.

Para fins prácticos (e non matemáticos), unha base de datos relacional almacena datos "relacionados" en filas e columnas. Ademais, e aquí é onde se fai interesante, a maioría das bases de datos están deseñadas para que os datos dunha táboa poidan acceder aos datos noutra táboa. Esta capacidade de crear relacións entre táboas é o verdadeiro poder dunha base de datos relacional.

Usar chaves estranxeiras

A maioría das táboas, especialmente aquelas en bases de datos grandes e complexas, teñen teclas primarias. As táboas que están deseñadas para acceder a outras táboas tamén deben ter unha chave estranxeira.

Para usar a base de datos Northwinds comúnmente citada, aquí tes un fragmento dunha táboa de produtos:

O extracto da táboa de produtos da Base de Datos Northwind
ProdutoID ProdutoName CategoríaID CantidadePerU Prezo por unidade
1 Chai 1 10 caixas x 20 bolsas 18.00
2 Chang 1 Botellas de 24 a 12 oz 19.00
3 Xarope anisado 2 Botellas de 12 a 550 ml 10.00
4 Chef Anton's Cajun Seasoning 2 48 - 6 botes de onza 22.00
5 Chef Anton's Gumbo Mix 2 36 caixas 21.35
6 Grandes Girlenberry Spread 2 12 - jarras de ocho onzas 25.00
7 Peras secas orgánicas do tio Bob 7 12 - 1 lb pkgs. 30.00

A columna ProductID é a clave principal desta táboa. Asigna un ID exclusivo a cada produto.

Esta táboa tamén contén unha columna de chave estranxeira, CategoríaID . Cada produto na táboa do produto vincúlase a unha entrada na táboa categorías que define a categoría do produto.

Nota este fragmento da táboa Categorías da base de datos:

Extracto da táboa das categorías da base de datos de Northwind
CategoríaID CategoryName Descrición
1 Bebidas Refrescos, cafés, tés, cervexas e alas
2 Condimentos Salsas doces e saborosas, saborosas, comestibles e condimentos
3 Confections Sobremesas, doces e panaditas
5 Productos lácteos Queixos

A categoría categoríaID é a clave principal desta columna. (Non ten chave estranxeira porque non ten necesidade de acceder a outra táboa). Todas as chaves estranxeiras na táboa do produto enlazan a unha chave primaria na táboa Categorías. Por exemplo, o produto Chai ten asignada unha categoría "Bebidas", mentres que o xarope anís está na categoría condimentos.

Este tipo de ligazón crea unha infinidade de formas de usar e reutilizar datos nunha base de datos relacional.