Skip to main content

La puissance des clés étrangères dans les bases de données relationnelles

PowerBoost n°233 (03/05/2014) : L'incroyable tracteur du maquis corse ! (Mai 2024)

PowerBoost n°233 (03/05/2014) : L'incroyable tracteur du maquis corse ! (Mai 2024)
Anonim

Les concepteurs de bases de données utilisent largement les clés lors du développement de bases de données relationnelles. Parmi les plus courantes de ces clés figurent les clés primaires et les clés étrangères. Une clé étrangère de base de données est un champ dans une table relationnelle qui correspond à la colonne de clé primaire d'une autre table. Pour comprendre le fonctionnement d'une clé étrangère, examinons de plus près l'idée d'une base de données relationnelle.

Quelques bases des bases de données relationnelles

Dans une base de données relationnelle, les données sont stockées dans des tables contenant des lignes et des colonnes, ce qui facilite la recherche et la manipulation. Le concept de base de données relationnelle (algèbre relationnelle, proposé par E.F.) repose sur des calculs sérieux.

Codd chez IBM en 1970), mais ce n’est pas le sujet de cet article.

À des fins pratiques (et non mathématiciens), une base de données relationnelle stocke les données associées sous forme de lignes et de colonnes. En outre - et voici où cela devient intéressant - la plupart des bases de données sont conçues pour que les données d’une table puissent accéder aux données d’une autre table. Cette capacité à créer des relations entre les tables constitue le véritable pouvoir d'une base de données relationnelle.

Utilisation de clés étrangères

La plupart des tables, en particulier celles des grandes bases de données complexes, ont des clés primaires. Les tables conçues pour accéder à d'autres tables doivent également avoir une clé étrangère.

Pour utiliser la base de données Northwinds fréquemment citée, voici un extrait d'un tableau Product:

Extrait de la table des produits de la base de données Northwind
ID de produitProductNameID de catégorieQuantityPerUPrix ​​unitaire
1Chai110 boîtes x 20 sacs18.00
2Chang1Bouteilles de 24 à 12 oz19.00
3Sirop d'Anis2Bouteilles de 12 à 550 ml10.00
4Assaisonnement Cajun du chef Anton248 - pots de 6 oz22.00
5Gumbo Mix du chef Anton236 boîtes21.35
6Tartinade aux baies de grand-mère2Pots de 12 à 8 oz25.00
7Poires séchées biologiques d'oncle Bob712 - 1 lb pkgs.30.00

le ID de produit colonne est la clé primaire de cette table. Il attribue un identifiant unique à chaque produit.

Cette table contient également une colonne de clé étrangère, ID de catégorie. Chaque produit de la table Produit est lié à une entrée de la table Catégories qui définit la catégorie de ce produit.

Notez cet extrait de la table Categories de la base de données:

Extrait de la table des catégories de la base de données Northwind
ID de catégorieNom de catégorieLa description
1BoissonsBoissons gazeuses, cafés, thés, bières et ales
2CondimentsSauces sucrées et salées, relives, tartinades et assaisonnements
3ConfectionsDesserts, bonbons et ris de veau
5Les produits laitiersLes fromages

La colonne ID de catégorie est la clé primaire de cette colonne. (Elle n'a pas de clé étrangère car elle n'a pas besoin d'accéder à une autre table.) Chaque clé étrangère de la table Product est liée à une clé primaire de la table Catégories. Par exemple, le produit Chai est affecté à la catégorie "Boissons", tandis que Sirop à l'anis est dans la catégorie Condiments.

Ce type de liaison crée une multitude de façons d'utiliser et de réutiliser des données dans une base de données relationnelle.