Skip to main content

Introduction aux relations de base de données

Le terme de base de données "relationnel" ou "relation" décrit la manière dont les données des tables sont connectées.

Les nouveaux arrivants dans le monde des bases de données ont souvent du mal à voir la différence entre une base de données et un tableur. Ils consultent des tableaux de données et reconnaissent que les bases de données vous permettent d'organiser et d'interroger les données de nouvelles façons, mais ne parviennent pas à saisir l'importance de la relations entre les données qui donnent son nom à la technologie de base de données relationnelle.

Les relations vous permettent de décrire les connexions entre différentes tables de base de données de manière puissante. Ces relations peuvent ensuite être exploitées pour effectuer des requêtes inter-tables puissantes, appelées jointures.

Types de relations de base de données

Il existe trois types différents de relations de base de données, chacune nommée en fonction du nombre de lignes de la table pouvant être impliquées dans la relation. Chacun de ces trois types de relations existe entre deux tables.

  • Relations individuelles se produit lorsque chaque entrée de la première table a une et une seule contrepartie dans la seconde table. Les relations un à un sont rarement utilisées car il est souvent plus efficace de simplement placer toutes les informations dans un seul tableau. Certains concepteurs de base de données tirent parti de cette relation en créant des tables contenant un sous-ensemble des données d'une autre table.
  • Relations un à plusieurs sont le type le plus courant de relation de base de données. Ils se produisent lorsque chaque enregistrement de la table A correspond à un ou plusieurs enregistrements de la table B, mais que chaque enregistrement de la table B ne correspond qu'à un seul enregistrement de la table A. Par exemple, la relation entre une table Enseignants et une table d’élèves dans une école primaire La base de données serait probablement une relation un-à-plusieurs, car chaque élève n'a qu'un seul enseignant, mais chaque enseignant a plusieurs élèves. Cette conception un à plusieurs aide à éliminer les données en double.
  • Relations plusieurs à plusieurs se produisent lorsque chaque enregistrement de la table A correspond à un ou plusieurs enregistrements de la table B et que chaque enregistrement de la table B correspond à un ou plusieurs enregistrements de la table A. Par exemple, la relation entre une table Enseignants et une table de cours serait probablement multiple. plusieurs parce que chaque enseignant peut enseigner plus d’un cours et que chaque cours peut avoir plus d’un instructeur.

    Relations d'auto-référencement: un cas particulier

    Les relations d'auto-référencement se produisent lorsqu'il n'y a qu'une seule table impliquée. Un exemple courant est une table Employees contenant des informations sur le superviseur de chaque employé. Chaque superviseur est également un employé et a son propre superviseur. Dans ce cas, il existe une relation d'auto-référencement un à plusieurs, chaque employé ayant un seul superviseur, mais chaque superviseur pouvant avoir plus d'un employé.

    Création de relations avec des clés étrangères

    Vous créez des relations entre les tables en spécifiant une clé étrangère. Cette clé indique à la base de données relationnelle comment les tables sont liées. Dans de nombreux cas, une colonne de la table A contient des clés primaires référencées à partir de la table B.

    Reprenons l'exemple des tableaux Enseignants et Etudiants. La table Enseignants contient uniquement un identifiant, un nom et une colonne de cours:

    Enseignants
    InstructorIDNom de l'enseignantCours
    001John DoeAnglais
    002Jane SchmoeMath

     

     

     

    La table Étudiants comprend un ID, un nom et une colonne de clé étrangère:

    Étudiants
    Carte d'étudiantNom d'étudiantTeacher_FK
    0200Lowell Smith001
    0201Brian Short001
    0202Corky Mendez002
    0203Monica Jones001

     

     

     

     

    La colonne Teacher_FK dans la table des étudiants fait référence à la valeur de clé primaire d'un instructeur dans la table des enseignants.

    Fréquemment, les concepteurs de base de données utilisent "PK" ou "FK" dans le nom de la colonne pour identifier facilement une colonne de clé primaire ou étrangère.

    Notez que ces deux tableaux illustrent une relation un-à-plusieurs entre les enseignants et les étudiants.

    Relations et intégrité référentielle

    Une fois que vous avez ajouté une clé étrangère à une table, vous pouvez créer une contrainte de base de données qui applique l’intégrité référentielle entre les deux tables. Cela garantit que les relations entre les tables restent cohérentes. Lorsqu'une table a une clé étrangère vers une autre table, le concept d'intégrité référentielle indique que toute valeur de clé étrangère dans la Table B doit faire référence à un enregistrement existant dans la Table A.

     

    Mise en œuvre des relations

    En fonction de votre base de données, vous implémentez les relations entre les tables de différentes manières. Microsoft Access fournit un assistant qui vous permet facilement de lier des tables et d'appliquer également l'intégrité référentielle.

    Si vous écrivez directement SQL, vous devez d'abord créer la table Teachers, en déclarant une colonne d'ID comme clé primaire:

    CREATE TABLE Enseignants (

    Instructor INT AUTO_INCREMENT PRIMARY KEY, Nom_enseignant VARCHAR (100), Cours VARCHAR (100));

    Lorsque vous créez la table Students, vous déclarez la colonne Teacher_FK comme une clé étrangère faisant référence à la colonne InstructorID dans la table Teachers ':

    CREATE TABLE Students ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR (100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) RÉFÉRENCES Teachers (InstructorID)));

    Utilisation de relations pour joindre des tables

    Une fois que vous avez créé une ou plusieurs relations dans votre base de données, vous pouvez exploiter leur puissance en utilisant des requêtes SQL JOIN pour combiner des informations provenant de plusieurs tables. Le type de jointure le plus courant est une jointure SQL INNER JOIN ou une jointure simple. Ce type de jointure renvoie tous les enregistrements qui remplissent la condition de jointure de plusieurs tables.Par exemple, cette condition JOIN renvoie le nom Student_Name, Teacher_Name et Course, où la clé étrangère de la table Students correspond à la clé primaire de la table Teachers:

    SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseDES ÉTUDIANTSINNER JOIN EnseignantsON Students.Teacher_FK = Teachers.InstructorID;

    Cette déclaration produit une table qui ressemble à ceci:

     

    Table retournée à partir de l'instruction de jointure SQL

    Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish