Outils pour utilisateurs

Outils du site


nsi:terminales:sgbd

SGBD - Système de gestion de base de données

Problématiques

Dans les exercices, on a vu un exemple de données réparties sur deux fichiers dont les données étaient liées. Dans films.csv, une liste de films mentionnant des acteurs et dans actors.csv, ces mêmes acteurs avec leur date de naissance.

Cette organisation pose des difficultés.

Fichiers multiples

Il faut croiser plusieurs fichiers pour des recherches complexes.

Exemple : Je cherche un film dont un acteur est né en 1958…

Redondance de données

Dans le fichier films, le nom d'un même réalisateur est écrit un grand nombre de fois. Si on voulait associer des informations pour chaque réalisateur, comme une biographie, faudrait-il reproduire ces informations pour chaque film ?

Cohérence

Quand une données est répétées, comme les noms de réalisateur, il faut que les modifications se propagent à toutes les occurrences. Et si une même donnée se retrouve dans plusieurs fichiers, il faut veiller à ce qu'une modification d'un côté soit propagée de l'autre.

Par exemple, si je corrige le nom d'un acteur dans le fichier des acteurs, cette modification doit être propagée à chaque répétition de ce nom d'acteur dans le fichier des films.

Gestionnaire

On ne peut pas demander à l'utilisateur qu'il se préoccupe de tous ces problèmes.

Par exemple, si je modifie un nom d'acteurs, je ne veux pas me soucier de parcourir tous les fichiers pour vérifier que la modification est bien reproduite partout. Je veux que cela se fasse automatiquement.

C'est le rôle du SGBD :

  • nous n'avons pas besoin de savoir exactement comment le SGBD stocke les données,
  • si la base de données est bien organisée, sa cohérence est maintenu automatiquement,
  • nous disposons d'un langage spécial, compris par le SGBD, qui permet de formuler des demandes de recherches complexes,
  • le langage du SGBD sera indépendant de la machine ou du langage de programmation utilisé,
  • le SGBD est optimisé par des spécialistes ainsi nous n'avons pas à réinventer la roue et nous avons facilement accès à de grosses bases de données,
  • facilite une organisation qui évite les doublons et les redondances,
  • le SGBD gère des règles de sécurité qui permet à plusieurs utilisateurs de lire et écrire dans la BDD.

Quelques SGBD sont très utilisés : MySQL, Access, Oracle, MariaDB…

Exemple d'une interaction web

À titre d'exemple, pour illustrer la grande importance des SGBD sur internet, voyons comment se passe un échange sur une boîte mail sur le web, un webmail comme gmail.

  • Sur mon client de messagerie webmail, j'appuie sur le bouton Messages non lus
  • Le bouton est lié à un script javascript qui lance une requête GET vers le serveur
  • Sur le serveur, est activé en permanence un logiciel serveur http dont le rôle est de réagir aux requêtes comme GET ou POSTex : Apache ou Nginx
  • La requête GET demande l'exécution d'un script sur le serveur – ex : un script PHP
  • Le script PHP fait des vérifications – ex : est-ce un utilisateur qui a ouvert une session ? a-t-il le droit de faire cette demande ? – puis lance une requête vers le SGBD, toujours à l'écoute lui aussi.
  • Le SGBD – MariaDB, MySQL… – répond. PHP met en forme la réponse et la renvoie au client.
  • Le client reçoit la réponse. javascript, qui attendait la réponse, réagit en modifiant le contenu de la page.
nsi/terminales/sgbd.txt · Dernière modification : de goupillwiki