Contenu du cours
Module 1 : Introduction aux base de données relationnelles
0/2
Module 3 : Maîtriser le langage SQL avancé
0/1
BASES DE DONNÉES RELATIONNELLES ET SQL : COMPRENDRE ET INTERROGER LES BASES DE DONNÉES

Fondements des bases de données relationnelles

Objectif pédagogique : Découvrir les concepts essentiels des SGBD relationnels, schémas et clés pour structurer efficacement les données.

À la fin de ce chapitre, tu seras capable de…

  • Identifier les caractéristiques des systèmes de gestion de bases de données relationnelles
  • Définir la structure d’un schéma de base de données avec les types appropriés
  • Distinguer les rôles des clés primaires et étrangères dans les tables
  • Analyser l’organisation des données dans les tables relationnelles

💡 Prérequis : Notions de base en informatique et compréhension des concepts de données structurées

Mise en contexte

Vous utilisez quotidiennement des applications qui stockent des millions de données : comptes bancaires, profils sociaux, commandes en ligne. Comment ces informations sont-elles organisées pour être retrouvées instantanément ? Découvrez les fondements des bases de données relationnelles qui structurent notre monde numérique, depuis les tables de véhicules jusqu’aux systèmes complexes d’entreprise.

Introduction

Ce module a pour but de faire découvrir les fondements des bases de données relationnelles en exposant quelques concepts clés. Nous découvrirons dans un premier temps les des systèmes de gestion de base de données relationnelles, ensuite nous verrons ce que c’est qu’un schéma et les clés.

1 – Les système de gestion de base de données relationnelles

Un système de gestion de base de données (SGBD) est un logiciel permettant aux utilisateurs d’accéder à une base de données. Il permet de gérer les accès et interprèter les requêtes pour stocker, récupérer, ajouter, modifier ou supprimer des données.

On distingue deux grandes familles de SGDB : les SGDB relationnelles (SGDBR) et les SGDB NoSQL.

Les bases de données (BDD) relationnelles commencent dans les années 70 et ont gagné en popularité dans les années 80 et 90. En effet, les années 1980 marquent l’industrialisation des SGBD. Des solutions commerciales telles qu’Oracle, DB2 (IBM), SQL Server (Microsoft) et Ingres s’imposent dans les entreprises.
Ces bases de données utilisent des tables pour stocker les données. Ces tables ont généralement un schéma fixe, c’est-à-dire qu’on définit la forme des tables (nombre de colonnes, titres, type des données et éventuellement d’autres contraintes). Les SGDBR utilisent en général SQL (Structured Query Language), un langage permettant de créer des requêtes sur les bases de données. Le langage SQL est très répandu et plutôt simple. C’est donc un incontournable des acteurs de la Data. Nous verrons dans ce cours comment l’utiliser.

2 – Les schémas

Le schéma définit la structure de la base de données, c’est-à-dire les tables, les colonnes et les types de données. Il sert de plan pour l’organisation des données et assure la cohérence et l’intégrité des informations stockées.

Regardons un exemple de table : ici cette table appelée Vehicules et contient des données sur différents véhicules.

Chaque ligne de la table représente donc un véhicule et les colonnes correspondent aux caractéristiques de ces véhicules. Lorsque nous parlons de schéma, nous pouvons voir ici que cette table a 4 colonnes id_vehicule, immatriculation, type_vehicule et modele_vehicule : la première, consituée de nombres entiers, correspond à l’identifiant du véhicule, la deuxième constituée de chaînes de caractères représente le numéro d’immatriculation du véhicule, la troisième donne le type de véhicule et la dernière fournit la marque et le modèle du véhicule.

Nous venons de définir le schéma de cette table. Nous avons donné le nom et le type de chacune des variables. On peut représenter la table de manière formelle avec la formule suivante :

Vehicules(id_vehicule, immatriculation, type_vehicule, modele_vehicule)

Les types :

Les colonnes d’une table ont un type de données bien défini. Les types de variables peuvent varier d’un SGDB à l’autre mais on retrouve classiquement les types suivants :

  • INTEGER

Ce type est utilisé pour stocker des nombres entiers, positifs ou négatifs. Il est couramment employé pour les identifiants, les compteurs ou les valeurs discrètes ne comportant pas de décimales.

  • FLOAT

Il permet de représenter des nombres réels avec une précision approximative. Il est adapté aux valeurs nécessitant des décimales.

  • NUMERIC (ou DECIMAL)

Il permet de stocker des nombres décimaux avec une précision fixe et définie à l’avance. Contrairement au FLOAT, il garantit une exactitude parfaite des valeurs décimales, ce qui le rend particulièrement adapté aux données financières ou monétaires où chaque centime compte.

  • BOOLEAN

Il ne peut prendre que deux valeurs : vrai ou faux (true ou false). Il est parfait pour représenter des états binaires comme la disponibilité d’un produit, l’activation d’une option ou la validation d’une information.

  • DATE

Il sert à stocker une date sans information d’heure, généralement sous la forme année-mois-jour. Il est utilisé pour enregistrer des événements calendaires, comme des dates de naissance ou de création.

  • DATETIME (ou TIMESTAMP)

Ce type combine une date et une heure, permettant de représenter précisément un instant dans le temps. Ce type est utile pour tracer des événements horodatés, tels que des transactions ou des connexions.

  • DOUBLE

Il correspond à un type de nombre réel en double précision. Il offre une plage de valeurs et une précision supérieures à FLOAT, tout en restant une représentation approximative.

  • VARCHAR

Il est utilisé pour stocker des chaînes de caractères de longueur variable. La taille maximale est définie à la création de la colonne, ce qui permet d’optimiser l’espace de stockage tout en offrant de la flexibilité pour les données textuelles.

3 – Les clés

3.1 – Les clés primaires :

Nous avons vu que la colonne id_vehicule est l’identifiant du véhicule. Il est donc important que cet identifiant soit toujours rempli, et qu’il soit différents pour chacun des véhicules : sa valeur doit absolument être unique. On parle alors de clé primaire (ou primary key) de la table.

À contrario, les colonnes immatriculation, type_vehicule et modele_vehicule ne subissent pas ces contraintes : deux véhicules peuvent avoir le même type, la même marque et le même modèle. Le fait que la colonne id_vehicule est la clé primaire, la table Vehicule peut être représentée avec la notation suivante :

Vehicules(id_vehicule, immatriculation, type_vehicule, modele_vehicule).

La clé primaire est soulignée dans la représentation de la table. Une entreprise de location de véhicules dispose d’une base de données pour stocker les informations sur les véhicules, les clients, les reservations et les factures entre autres. La base de données est constituée de plusieurs tables reliées entre elles. Parmis ces tables il y a la table Clients :

Exercice : Donner la définition de la table ci-dessus en précisant quelle est la clé primaire.
3.2 – Les clés étrangères :
Les bases de données relationnelles contiennent plusieurs tables en général. Une clé étrangère est une colonne (ou plusieurs colonnes) d’une table qui fait référence à la clé primaire d’une autre table, afin de modéliser le lien entre les lignes de ces deux tables.

Dans la base de données de l’entreprise, il y a une table nommée ‘Reservations’ qui enregistre chaque réservation des clients :

La table Reservatios peut se représenter de la façon suivante : Reservations(id_reservation, code_reservation, id_client)

On remarque que la clé primaire de la table Clients est référencée dans la table Reservations. On dit alors que la colonne id_client dans la table Reservations est une clé étrangère (ou foreign key). La vraie représentaton de la table Reservations est alors :

Reservations(id_reservation, code_reservation, #id_client)

Le caractère # est utilisé par convention pour désigner une clé étrangère.

3.3 – Les clés composites :
Une clé composite est une clé primaire qui se compose de deux colonnes ou plus. Elle permet d’identifier de manière unique un enregistrement (une ligne) dans une table lorsqu’aucune colonne ne peut le faire. Supposons la colonne id_reservation n’existe pas dans la table Reservations. Alors, une réservation est identifiée de façon unique par la combinaison de les colonnes code_reservation et id_client. Le couple (code_reservation, id_client) est donc la clé primaire de la table. Voici son schéma : Reservations(#code_reservation, #id_client)

4 – Les schémas relationnels

On a vu que les tables pouvaient avoir des relations entre elles via les clés étrangères. La définition de ces relations correspond à la création d’un schéma relationnel. On représente généralement le schéma relationnel par des diagrammes UML (figure ci-dessous). On peut distinguer 3 types de relations selon le nombre d’entités mises en relation :

  • One to One : une ligne d’une table est associée à une et une seule ligne d’une autre table.
  • One to Many : une ligne d’une table peut être associée à une ou plusieurs lignes d’une autre table.
  • Many to Many : plusieurs lignes d’une table peuvent être associées à une même ou à plusieurs lignes d’une autre table.

5 – Conclusion

💡 À retenir :

  • Les clés primaires identifient de manière unique une ligne d’une table.
  • Les clés étrangères sont les clés primaires d’autres tables.
  • Les clés peuvent être composites.
  • Les différents schémas relationnels.

Nous savons maintenant ce qu’est une base de données relationnelles ainsi que quelques-unes de ses caractéristiques. Nous pouvons à présent suivre le cours sur le langage SQL. Il nous permettra de créer des requêtes pour récupérer des données pertinentes d’une base de données relationnelle.

0% Terminer
Discuter avec nous