Bases de données

Fichiers plats ou systèmes à traitement traditionnel

Dans cette approche, les données sont stockées dans des fichiers au format simple (comme CSV, par exemple). Chaque fichier serait indépendant et ne contiendrait aucune relation explicite entre les entités. Cela signifie que pour relier les informations entre les fichiers, il faudrait parcourir manuellement chaque fichier ou écrire des programmes spécifiques pour les croiser.
Pour illustration, considérons la gestion des emprunts des livres par les élèves dans une bibliothèque d'un lycée.

Fichier 1 : eleves (fichier eleves.csv)
id_eleve nom email classe
1 Martine Durand martine.durand@mail.com T07
2 Hermine Nyaleu hermine.nyaleu@mail.com 108
3 Léon Leroy leon.leroy@mail.com T03
4 Aïcha Djérouni aicha.djerouni@mail.com T07
5 Philippe Gaspar philippe.gaspar@mail.com T05
Fichier 2 : livres (fichier livres.csv)
titre auteur genre éditeur année_publication
La chance d'une vie John Grisham roman JCLattès 2022
Méditations métaphysiques René Descartes essai Flammarion 2011
Les Misérables Victor Hugo roman Larousse 2007
Belle Greene Alexandra Lapierre roman Flammarion 2021
Son nom sur la liste John Grisham roman JCLattès 2023
Le réseau John Grisham roman JCLattès 2024
Jacaranda Gaël Faye roman Grasset 2024
Fichier 3 : emprunts (fichier emprunts.csv)
id_eleve nom classe titre auteur date_emprunt date_retour
1 Martine Durand T07 La chance d'une vie John Grisham 15-09-2024 25-09-2024
2 Hermine Nyaleu T08 Méditations métaphysiques René Descartes 20-09-2024 30-09-2024
4 Aïcha Djérouni T07 Les Misérables Victor Hugo 18-09-2024 28-09-2024
4 Aïcha Djérouni T07 Belle Greene Alexandra Lapierre 01-10-2024 10-10-2024
1 Martine Durand T07 Son nom sur la liste John Grisham 01-10-2024 10-10-2024
1 Martine Durand T07 Le réseau John Grisham 25-09-2024 05-10-2024
1 Martine Durand T07 Le réseau John Grisham 25-09-2024 05-10-2024
2 Hermine Nyaleu T08 Jacaranda Gaël Faye 01-10-2024 10-10-2024

Dans cet exemple :

    • L'élève, Martine Durand, a emprunté trois livres : « La chance d'une vie », « Son nom sur la liste » et « Le réseau ».
    • Redondance : Son nom, sa classe et son id_eleve sont répétés à chaque ligne pour chaque emprunt qu’elle a effectué.
    • L'auteur, John Grisham, a écrit plusieurs livres empruntés (« La chance d'une vie », « Son nom sur la liste » et « Le réseau »).
    • Redondance : Son nom est répété pour chaque roman écrit.

Conséquences de la redondance

  1. Problèmes de stockage :
    • Dans ce fichier d’emprunts, chaque fois qu’un élève emprunte un livre, toutes ses informations (id_eleve, nom, classe) sont répétées.
    • De même, chaque fois qu’un livre est emprunté, les informations sur l’auteur sont également répétées.
  2. Cela conduit à une duplication inutile des données, augmentant la taille du fichier et le nombre de répétitions.
  3. Difficulté de mise à jour :
    • Si Martine Durand change de classe, on devrait manuellement modifier chaque ligne de ce fichier où son nom apparaît pour refléter cette nouvelle information, augmentant le risque d'erreurs.
    • Si l'auteur John Grisham change de nom ou une information sur ses livres change (comme l’année de publication), on devrait mettre à jour toutes les lignes où cet auteur est mentionné.
  4. Anomalies de suppression :
    Si un emprunt est supprimé, il est possible que des informations sur l'élève ou le livre soient également perdues.
  5. Difficulté de gestion :
    Pour obtenir des informations sur un élève particulier ou un livre, il faudrait parcourir manuellement tout le fichier ou écrire un script personnalisé pour analyser les données.
    Dans une base de données relationnelle, une simple requête SQL peut le faire automatiquement sans répétition.

Bases de données

1. Définitions

Les bases de données (BD) jouent un rôle essentiel dans presque tous les domaines où les ordinateurs sont utilisés : les affaires, le commerce électronique, les médias sociaux, l'ingénierie, la médecine, la génétique, le droit, l’éducation…
Par données, nous entendons des faits connus qui peuvent être enregistrés et qui ont une signification implicite. Par exemple, considérez les noms, les numéros de téléphone et les adresses des personnes que vous connaissez.

  • Une base de données est une collection de données structurées stockées sur un support permanent.
    Un ensemble aléatoire de données ne peut pas être correctement qualifié de base de données.
  • Les BD s'appuient sur le concept d'entité.
    une entité est un objet ayant une existence physique (par exemple, une personne, une voiture, une maison ou un employé particulier) ou un objet ayant une existence conceptuelle (par exemple, une entreprise, un emploi, un prêt, un livre ou un cours).
    Chaque entité est définie par des attributs, c’est-à-dire des caractéristiques particulières qui la décrivent. Les valeurs d'attributs qui décrivent chaque entité constituent une partie essentielle des données stockées dans la base de données. Par exemple, une entité Employé peut être décrite par le nom de l'employé, son âge, son adresse, son salaire et son poste.
  • Une base de données est conçue, construite et remplie de données dans un but précis. Elle a un groupe d'utilisateurs ciblés et des applications préconçues dans lesquelles ces utilisateurs sont intéressés.

Une BD est toujours accompagnée de métadonnées.
Les métadonnées fournissent une description des caractéristiques des données, l'ensemble des relations qui lient les données et les contraintes des données à stocker dans la BD. C'est pourquoi on définit une BD comme une collection autodescriptive
Par exemple, le composant de métadonnées stocke des informations telles que le nom de chaque élément de données, le type de valeurs (numériques, dates ou texte) stockées sur chaque élément de données, si l'élément de données peut être laissé vide ou non, etc.
Par conséquent, les métadonnées fournissent des informations qui complètent et élargissent la valeur et l'utilisation des données.
L'exemple précédent vu sous le modèle d'une base de données relationnelle.

Table (relation) Eleve
id_eleve nom email classe
1 Martine Durand martine.durand@mail.com T07
2 Hermine Nyaleu hermine.nyaleu@mail.com T08
3 Léon Leroy leon.leroy@mail.com T03
4 Aïcha Djérouni aicha.djerouni@mail.com T07
5 Philippe Gaspar philippe.gaspar@mail.com T05
Table (relation) Auteur
id_auteur nom
1 John Grisham
2 René Descartes
3 Victor Hugo
4 Alexandra Lapierre
5 Gaël Faye
Table (relation) Livre
id_livre titre id_auteur genre éditeur année_publication
1 La chance d'une vie 1 roman JCLattès 2022
2 Méditations métaphysiques 2 essai Flammarion 2011
3 Les Misérables 3 roman Larousse 2007
4 Belle Greene 4 roman Flammarion 2021
5 Son nom sur la liste 1 roman JCLattès 2023
6 Le réseau 1 roman JCLattès 2024
7 Jacaranda 5 roman Grasset 2024
Table (relation) emprunt
id_emprunt id_eleve id_livre date_emprunt date_retour
1 1 1 2024-09-15 2024-09-25
2 2 2 2024-09-20 2024-09-30
3 2 7 2024-09-20 2024-09-30
4 4 3 2024-09-18 2024-09-28
5 4 4 2024-10-01 2024-10-10
6 1 5 2024-09-25 2024-10-05
7 4 1 2024-10-01 2024-10-10
8 1 6 2024-09-25 2024-10-05

2. Système de gestion de bases de données

L'idée derrière une BD est que l'utilisateur, qu'il s'agisse d'une personne travaillant de manière interactive ou d'un programme d'application, n'a pas à se soucier de la manière dont les données sont physiquement stockées sur le disque. L'utilisateur formule les demandes de manipulation de données en termes de relations de données.
Un Système de Gestion de Base de Données (SGBD) est un système informatisé qui permet aux utilisateurs de créer et de maintenir une BD. C'est un logiciel (ensemble de programmes) qui contrôle l'accès aux données stockées dans la base de données, d'une part, et traduit, d'autre part, la demande de données de l'utilisateur et le stockage physique des données.
Un SGBD est composé de plusieurs types de langages qui permettent de définir, manipuler, contrôler et interroger les données :

  • Langage de définition des données (DDL - Data Definition Language)
    Le DDL est utilisé pour définir et modifier la structure de la base de données, notamment la création, la modification et la suppression des objets de la base de données comme les tables, les index, les vues, les schémas, etc.
  • Langage de manipulation des données (DML - Data Manipulation Language)
    Le DML permet de manipuler les données elles-mêmes, c’est-à-dire d’insérer, de mettre à jour, de supprimer ou de récupérer des données dans la base de données.
    • l'interrogation (requête) ;
      Exemples :
      Quels sont les noms des produits dont le prix < 100 € ?
      Quelle est la liste des produits qui ont été commandés par un client déterminé ?
      Quelle est la date de la dernière commande du client s’appelant Y ?
    • La mise à jour de la BD (insertion, suppression, modification).
  • Langage de contrôle des données (DCL - Data Control Language)
    Le DCL est utilisé pour gérer les permissions et contrôler l'accès aux données au sein de la base de données. Il permet de définir les autorisations que les utilisateurs ou rôles peuvent avoir sur les objets de la base.
  • Langage de contrôle des transactions (TCL - Transaction Control Language)
    Le TCL est utilisé pour gérer les transactions dans une base de données. Il permet de garantir que les modifications apportées aux données respectent les propriétés ACID (Atomicité, Cohérence, Isolation, Durabilité) et que les transactions sont exécutées correctement.
  • etc.
Un environnement simplifié d'un système de base de données

Principales caractéristiques d'un SGBD
Donc un SGBD assure :

  • l'accès multi-utilisateurs et contrôle des accès
    Un SGBD permet à plusieurs utilisateurs d'accéder et de manipuler les données simultanément, tout en gérant les conflits d'accès et de gestion des transactions.
  • la description des données via un DDL ;
  • la manipulation des données au travers d’un DML ;
  • l'interrogation des données (langage de requêtes)
    • Les SGBD fournissent un langage de requête, généralement le SQL (Structured Query Language), pour interroger et manipuler les données.
    • Les utilisateurs peuvent effectuer des opérations comme la sélection, l'insertion, la mise à jour et la suppression de données.
  • la sûreté, notamment :
    • Vérifier les droits d’accès des utilisateurs ;
    • Limiter les accès non autorisés ;
    • Chiffrer les informations sensibles ;
    • Assurer l'intégrité des données
      en définissant les règles qui maintiennent l’intégrité de la base de données (contraintes d’intégrité).
      Exemple : Le salaire doit être compris entre 400 € et 20 000 €.
  • la sécurité ;
    • Assurer la sauvegarde et la restauration des données ;
    • Limiter les erreurs de saisie, de manipulation.
      Exemple : Le personnel ne devrait pas avoir accès au programme de paie.
    • La concurrence d’accès : détecter et traiter les cas où il y a conflit d’accès entre plusieurs utilisateurs.
  • l'indépendance des données
    • Indépendance physique : La manière dont les données sont stockées physiquement sur le disque peut être modifiée sans affecter les applications qui y accèdent.
      Un SGBD isole l'utilisateur des détails de stockage physique.
    • Indépendance logique : La structure logique de la base de données (schéma) peut être modifiée sans affecter les applications.
      Il fournit par conséquent une variété d'interfaces utilisateur.
  • la gestion des métadonnées
    Le SGBD gère des métadonnées, c'est-à-dire des données sur les données, comme la structure des tables, les types de colonnes, les contraintes, etc. Ces informations sont stockées dans un catalogue ou dictionnaire de la base de données.
  • etc.
Les trois niveaux du modèle ANSI/SPARC

La manière formelle dont les données sont organisées, stockées et manipulées dans un SGBD est connue sous le nom de modèle de données
On distingue plusieurs modèles de données.

  • Modèle hiérarchique (arbre)
  • Modèle en réseau (graphe)
  • Modèle relationnel ;
  • Modèle orienté objet ;
  • Modèle relationnel orienté objet ;
  • Modèle NoSQL (Not Only SQL) : modèles orientés documents...

Cependant, les relations sous-jacentes dans une base de données sont indépendantes du modèle de données et, par conséquent, également indépendantes du SGBD utilisé.
Remarque :
La plupart des SGBD ne prennent en charge qu'un seul modèle de données. Par conséquent, lorsque l'on choisit un SGBD, on choisit de fait le modèle de données.
Il existe aujourd'hui une large gamme de logiciels de SGBD.

  • Open source : MariaDB, MySQL, SQLite, MongoDB...
  • Propriétaire : Microsoft Access, Oracle, DB4, Helix...

3. Systèmes utilisant des BD

Il existe deux principaux types de systèmes qui utilisent des BD dans les moyennes et grandes organisations :

  • Traitement des transactions : les systèmes de traitement des transactions (traitement des transactions en ligne ou OLTP) gèrent les opérations quotidiennes d'une organisation.
  • Traitement analytique : les systèmes de traitement analytique (traitement analytique en ligne ou OLAP) sont utilisés pour soutenir l'analyse des performances organisationnelles, la prise de décisions opérationnelles de haut niveau et la planification stratégique.

4. Architecture matérielle d'une BD

Étant donné que les bases de données sont presque toujours conçues pour un accès simultané par plusieurs utilisateurs, l'architecture client - serveur est principalement utilisée pour implémenter une BD.

Faites-vous plaisir :

  1. Comment les données sont-elles organisées dans un système de fichiers traditionnel ?
  2. Pourquoi le traitement traditionnel des données peut-il entraîner des redondances ?
  3. Quels avantages une base de données apporterait-elle par rapport à la gestion traditionnelle pour un système de bibliothèque ?
  4. Que représentent les métadonnées d'une BD ?