Sobes.tech
Junior

Comment la relation est-elle atteinte dans une base de données relationnelle?

sobes.tech IA

Réponse de l'IA

Les relations dans les systèmes de gestion de bases de données relationnelles (SGBDR) sont établies à l'aide de clés étrangères (Foreign Keys).

Une clé étrangère est une colonne ou un ensemble de colonnes dans une table qui fait référence à la clé primaire dans une autre table. Ainsi, une relation est établie entre les enregistrements de deux tables.

Exemples de types de relations :

  • Un-à-plusieurs (One-to-Many) : Un enregistrement dans la première table est lié à plusieurs enregistrements dans la deuxième table. Par exemple, un département peut avoir plusieurs employés. Dans la table Employees, il y aura une clé étrangère référant à la clé primaire dans la table Departments.
  • Plusieurs-à-plusieurs (Many-to-Many) : Plusieurs enregistrements dans la première table sont liés à plusieurs enregistrements dans la deuxième table. Par exemple, un étudiant peut suivre plusieurs cours, et un cours peut être suivi par plusieurs étudiants. Cela se réalise via une table intermédiaire (table de relations) contenant des clés étrangères référant aux clés primaires des deux tables.
  • Un-à-un (One-to-One) : Un enregistrement dans la première table est lié à un seul enregistrement dans la deuxième table. Ce type de relation est moins courant et est souvent utilisé pour diviser une table verticalement ou pour stocker des données optionnelles. Il est réalisé par une clé étrangère dans la deuxième table référant à la clé primaire dans la première, souvent avec une contrainte d'unicité sur la clé étrangère.

Exemple de création d'une table avec une clé étrangère en SQL :

-- Création de la table Departments
CREATE TABLE Departments (
    department_id INT PRIMARY KEY, -- Clé primaire
    department_name VARCHAR(100)
);

-- Création de la table Employees avec une clé étrangère
CREATE TABLE Employees (
    employee_id INT PRIMARY KEY,
    employee_name VARCHAR(100),
    department_id INT, -- Colonne pour la clé étrangère
    FOREIGN KEY (department_id) REFERENCES Departments(department_id) -- Définition de la clé étrangère
);

Les clés étrangères assurent l'intégrité référentielle des données, empêchant la création de liens "fantômes" (lorsqu'une clé étrangère fait référence à un enregistrement inexistant dans la table liée).