Modèle de données relationnel - SGBD

Bonjour, les passionnés de bases de données en herbe ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde des Modèles de Données Relationnelles. En tant que votre enseignant de informatique bienveillant du quartier, je vais vous guider à travers ce concept fondamental des systèmes de gestion de bases de données (SGBD). Ne vous inquiétez pas si vous êtes nouveau dans la programmation - nous allons commencer par les bases et progresser pas à pas. Alors, prenez une tasse de café et plongez avec moi !

DBMS - Relational Data Model

Concepts

Qu'est-ce qu'un Modèle de Données Relationnel ?

Imaginez que vous organisez une bibliothèque massive. Vous avez des livres, des auteurs, des genres et des éditeurs. Comment garderiez-vous trace de toutes ces informations efficacement ? C'est là que le modèle de données relationnel devient utile !

Un modèle de données relationnel est une manière de structurer les données dans une base de données qui organise l'information en tables (également appelées relations) avec des lignes et des colonnes. C'est comme créer une série de tableurs interconnectés.

Reprenons avec un exemple :

CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
AuthorID INT,
GenreID INT,
PublisherID INT
);

CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
Name VARCHAR(50),
BirthDate DATE
);

Dans cet exemple, nous avons créé deux tables : Books et Authors. Chaque table a des colonnes (champs) qui décrivent différents attributs. Les BookID et AuthorID sont des identifiants uniques pour chaque enregistrement dans leurs tables respectives.

Composants Clés du Modèle Relationnel

  1. Tables (Relations) : Ce sont les structures principales qui contiennent les données. Dans notre exemple de bibliothèque, Books et Authors sont des tables.

  2. Attributs (Colonnes) : Ils représentent les propriétés des entités dans nos tables. Par exemple, Title et Name sont des attributs.

  3. Tuples (Lignes) : Chaque ligne dans une table représente un enregistrement ou une instance unique de l'entité.

  4. Domaine : C'est l'ensemble des valeurs autorisées pour un attribut. Par exemple, le domaine pour BookID pourrait être les entiers positifs.

  5. Clés : Ce sont des attributs spéciaux utilisés pour identifier les enregistrements de manière unique et établir des relations entre les tables.

Types de Clés

Plongons plus profondément dans les clés avec un tableau pratique :

Type de Clé Description Exemple
Clé Primaire Identifie de manière unique chaque enregistrement dans une table BookID dans la table Books
Clé Étrangère Référence la clé primaire d'une autre table AuthorID dans la table Books
Clé Candide Could potentially be used as a primary key ISBN pour les livres
Clé Composée Une clé qui se compose de plusieurs colonnes (CourseID, StudentID) pour une table d'inscription aux cours

Relations

L'un des aspects les plus puissants du modèle relationnel est sa capacité à établir des relations entre les tables. Il y a trois principaux types :

  1. Un à Un (1:1) : Chaque enregistrement dans Table A est lié à un enregistrement dans Table B.

Exemple :

CREATE TABLE Passport (
PassportID INT PRIMARY KEY,
PassportNumber VARCHAR(20),
ExpiryDate DATE,
CitizenID INT UNIQUE,
FOREIGN KEY (CitizenID) REFERENCES Citizens(CitizenID)
);
  1. Un à Plusieurs (1:N) : Un enregistrement dans Table A peut être lié à plusieurs enregistrements dans Table B.

Exemple :

CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
  1. Plusieurs à Plusieurs (M:N) : Plusieurs enregistrements dans Table A peuvent être liés à plusieurs enregistrements dans Table B.

Exemple :

CREATE TABLE StudentCourses (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

Contraintes

Maintenant, parlons des contraintes - les règles qui aident à maintenir l'intégrité et la cohérence de nos données. Pensez à eux comme les bibliothécaires qui s'assurent que les livres sont correctement classés et rangés.

Types de Contraintes

Type de Contrainte Description Exemple
NOT NULL Assure qu'une colonne ne peut pas avoir une valeur NULL Name VARCHAR(50) NOT NULL
UNIQUE Assure que toutes les valeurs dans une colonne sont différentes Email VARCHAR(100) UNIQUE
Clé Primaire Identifie de manière unique chaque enregistrement dans une table StudentID INT PRIMARY KEY
Clé Étrangère Assure l'intégrité référentielle entre les tables FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
CHECK Assure que toutes les valeurs dans une colonne satisfont une condition spécifique CHECK (Age >= 18)
DEFAULT Définit une valeur par défaut pour une colonne lorsqu'aucune valeur n'est spécifiée Balance DECIMAL(10,2) DEFAULT 0.00

Voyons ces contraintes en action :

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE,
Age INT CHECK (Age >= 18),
EnrollmentDate DATE DEFAULT CURRENT_DATE,
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);

Dans cet exemple :

  • StudentID est la clé primaire.
  • Name ne peut pas être null.
  • Email doit être unique pour chaque étudiant.
  • Age doit être de 18 ans ou plus.
  • EnrollmentDate sera définie par défaut à la date actuelle si elle n'est pas spécifiée.
  • DepartmentID est une clé étrangère qui fait référence à la table Departments.

Ces contraintes aident à maintenir l'intégrité et la cohérence des données dans notre base de données. Ils sont comme les règles dans notre bibliothèque qui assurent que les livres sont correctement classés, identifiés de manière unique et liés aux auteurs et éditeurs appropriés.

En conclusion de cette introduction au Modèle de Données Relationnel, j'espère que vous commencez à voir à quel point cette approche à la gestion des données est puissante et organisée. C'est comme avoir une bibliothèque parfaitement organisée où chaque livre est à sa place, easily findable, et connecté à toutes les informations pertinentes.

Souvenez-vous, apprendre les bases de données est un voyage. Ne vous inquiétez pas si tout ne devient pas clair immédiatement. Pratiquez la création de tables, l'établissement de relations et la définition de contraintes. Bientôt, vous serez en mesure de concevoir des structures de bases de données efficaces et robustes comme un pro !

Dans notre prochain cours, nous plongerons plus profondément dans l'interrogation de ces structures relationnelles en utilisant SQL. Jusque-là, bon data modeling !

Credits: Image by storyset