Les clés primaires jouent un rôle important dans les bases de données relationnelles en renforçant l’intégrité des données et en facilitant la récupération des données. De plus, les clés primaires peuvent être référencées par un autre type de clé afin de définir les relations entre les tables dans les bases de données relationnelles.
Voici quelques exemples courants de clés primaires que l’on trouve dans différentes bases de données :
Avant d’aborder les clés primaires, il est utile de comprendre les bases des systèmes de bases de données relationnelles et le rôle des différentes clés dans leur conception.
Les bases de données relationnelles stockent des données structurées qui possèdent des liens entre elles, dans plusieurs tables. Ces bases de données sont gérées par des systèmes de gestion de bases de données relationnelles (SGBDR) tels qu’IBM Db2, Oracle Database, Microsoft SQL Server et des systèmes de bases de données open source tels que PostgreSQL et mySQL.
SQL (Structured Query Language) est un langage de programmation couramment utilisé pour interagir avec les bases de données, même si certains systèmes prennent en charge d’autres langages.
Dans le domaine des bases de données, une clé désigne une colonne ou un ensemble ordonné de colonnes qui sert à identifier les lignes de données dans une table. Les clés permettent d’organiser les bases de données en montrant les relations entre les tables liées, en identifiant les enregistrements uniques et en garantissant l’exactitude et l’intégrité des données. C’est ce qui contribue à la réussite et à l’efficacité des requêtes SQL dans les bases de données.
Une clé primaire, aussi appelée clé primaire SQL, attribut un identifiant unique à chaque enregistrement lié à une valeur de clé primaire. Voici quelques caractéristiques importantes des clés primaires :
Une clé primaire peut correspondre à une colonne déjà existante dans la table : on parle alors de clé naturelle. Cependant, il arrive qu’aucune colonne ne remplisse à elle seule les contraintes d’une clé primaire, c’est-à-dire des valeurs à la fois uniques et non nulles.
Dans ce cas, une nouvelle colonne de valeurs uniques, ne provenant pas des données existantes de la table, peut être créée pour servir de clé primaire. Cette clé créée artificiellement est appelée clé de substitution.
Les systèmes de gestion de bases de données relationnelles sont souvent capables de générer des valeurs uniques pour une colonne, qui peuvent ensuite être utilisées en tant que clé de substitution. La fonctionnalité d’auto-incrémentation de mySQL en est un exemple.
Les clés primaires peuvent aussi être des clés composites, c’est-à-dire qu’elles sont constituées de plusieurs colonnes de valeurs.
Les clés primaires composites, qui sont des combinaisons uniques de colonnes servant à identifier des enregistrements, peuvent être utilisées à la place des clés de substitution. Par exemple, une colonne contenant les noms de famille des clients peut être associée à une colonne contenant leurs dates de naissance pour former une clé primaire composite.
SQL prend en charge un large éventail de types de données, allant des horodatages (représentations de dates et d’heures) aux chaînes de caractères de longueur variable (varchar). Mais tous les types de données ne conviennent pas aux clés primaires.
Il est souvent recommandé d’utiliser en tant que clés primaires des colonnes contenant des valeurs numériques, en particulier des entiers, car celles-ci sont généralement traitées plus rapidement par les systèmes de gestion de bases de données relationnelles.
Les autres clés utilisées dans la gestion de bases de données sont les suivantes :
Les clés primaires sont un sous-ensemble de clés uniques. Les clés uniques suivent ce qu’on appelle une contrainte d’unicité, c’est-à-dire la règle selon laquelle les valeurs d’une clé sont valides uniquement si elles sont uniques. Si toutes les clés primaires sont des clés uniques, toutes les clés uniques ne sont pas des clés primaires. En effet, contrairement aux clés primaires, les clés uniques peuvent inclure des valeurs nulles.
Les clés candidates sont des clés qui pourraient servir de clés primaires, car elles contiennent des valeurs uniques et aucune valeur nulle. La différence avec les clés primaires réside dans le fait qu’une table existante peut avoir plusieurs clés candidates, mais une seule clé primaire.
Les super clés s’apparentent aux clés primaires composites dans la mesure où elles peuvent inclure plusieurs colonnes et servir à identifier des enregistrements. Cependant, les super clés peuvent également inclure plus de colonnes ou d’informations que ce qui est strictement nécessaire pour identifier de manière unique un enregistrement, contrairement aux clés primaires composites qui s’en tiennent au stricte minimum.
Une clé étrangère figurant dans une table renvoie à une clé primaire précise dans une autre table afin de définir une relation entre les tables. Par exemple, une clé étrangère figurant dans une table contenant des informations sur les commandes des clients peut faire référence à une colonne de clé primaire contenant des identifiants client uniques dans une autre table contenant les données des clients. De cette façon, une commande passée par un client donné peut être liée à des informations importantes le concernant, telles que son adresse e-mail et sa date de naissance.
Afin de comprendre comment les clés primaires et les clés étrangères définissent les relations entre les tables dans les bases de données relationnelles, penchons-nous sur les contraintes d’intégrité référentielle.
Les contraintes d’intégrité référentielle, également appelées contraintes référentielles ou contraintes de clé étrangère, sont des règles qui exigent que les valeurs de clé étrangère d’une table correspondent aux valeurs de clé primaire d’une autre table.
Par exemple, dans une base de données d’employés, une contrainte d’intégrité référentielle peut spécifier que chaque employé de la table EMPLOYEE doit être membre d’un service de l’entreprise répertorié dans la table DEPARTMENT.
Par exemple, dans ce cas, la table DEPARTMENT utilise une colonne de numéros de département uniques comme clé primaire, tandis que la table EMPLOYEE contient une clé étrangère stockant les mêmes numéros. Cette correspondance garantit le respect de la contrainte de clé étrangère.
Étant donné que la table DEPARTMENT contient la clé primaire référencée par la clé étrangère de la table EMPLOYEE, la clé EMPLOYEE est considérée comme dépendante de la table DEPARTMENT. De ce fait, la table DEPARTMENT est considérée comme la « table parente » dans cette relation.
Les contraintes d’intégrité référentielle empêchent l’insertion de données erronées dans les bases de données. Par exemple, un utilisateur ne serait pas autorisé à ajouter un enregistrement d’employé à la table EMPLOYEE (voir illustration ci-dessous) si le numéro de service figurant dans cet enregistrement n’existait pas dans la table DEPARTMENT.
Les systèmes de gestion de bases de données relationnelles peuvent créer ou nécessiter la création d’un index unique correspondant à chaque clé primaire de la base de données. Dans ce contexte, un index désigne un ensemble de pointeurs qui renvoient à des lignes d’une table. Son rôle consiste à améliorer les performances, notamment en optimisant la récupération des données.
La modélisation des données fournit une représentation visuelle du schéma d’une base de données, ou un plan des relations entre les données contenues dans les tables d’une base de données. Les modèles de données peuvent inclure des informations sur les clés primaires et les clés étrangères utilisées pour maintenir ces relations.
Les instructions SQL sont des commandes utilisées pour interagir avec les bases de données relationnelles. Dans le langage SQL, les clés primaires des tables peuvent être attribuées ou ajoutées à l’aide des instructions CREATE TABLE ou ALTER TABLE.
Prenons par exemple une instruction CREATE TABLE pour une table de noms d’employés appelée EMP à l’aide de Db2 d’IBM. Les noms de colonnes sont ID (pour identifiant d’employé), FIRSTNME (pour le prénom) et LASTNAME (pour le nom), avec un maximum de 15 caractères pour chacune. Lorsque ID est sélectionné en tant que clé primaire, l’instruction peut se présenter comme suit :
Dans les instructions ALTER TABLE (pour les tables existantes) dans Db2, les clés primaires sont ajoutées à l’aide de la clause ADD PRIMARY KEY, tandis que les clés étrangères sont ajoutées à l’aide de la clause ADD CONSTRAINT en combinaison avec une référence à la table parente.
Utilisez les solutions de base de données IBM pour répondre aux différents besoins en matière de workload sur le cloud hybride.
Découvrez IBM Db2, une base de données relationnelle qui offre des performances, une évolutivité et une fiabilité élevées pour le stockage et la gestion des données structurées. Elle est disponible en tant que solution SaaS sur IBM Cloud ou en autohébergement.
Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.