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.
id_eleve | nom | 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 |
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 |
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
-
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.
Cela conduit à une duplication inutile des données, augmentant la taille du fichier et le nombre de répétitions.
-
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é.
-
Anomalies de suppression :
Si un emprunt est supprimé, il est possible que des informations sur l'élève ou le livre soient également perdues. -
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.
id_eleve | nom | 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 |
id_auteur | nom |
---|---|
1 | John Grisham |
2 | René Descartes |
3 | Victor Hugo |
4 | Alexandra Lapierre |
5 | Gaël Faye |
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 |
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).
- l'interrogation (requête) ;
-
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.
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.
-
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.
-
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.
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.