99 views
--- tags : TNSI, bdd --- # Système de gestion de base de données Un **système de gestion de base de données (SGBD)** est un ensemble de logiciels qui vise à permettre l'utilisation d'une base de données. Il a de nombreux rôles, nous allons ci-dessous donner une liste de certains d'entre eux. Pour les illustrer nous nous appuierons sur un exemple que les élèves connaissent bien : Pronote. ## Interface :::info Le SGBD fournit une **interface** permettant à des utilisateurs (humains ou machines) de lire ou modifier la base de données, que ce soit directement avec un langage comme SQL ou par des boutons, cases à cocher, etc. ::: Pronote propose plusieurs interfaces : sur le web ou par l'application dédiée. Il fournit également une interface entre machines pour que l'ENT puisse lire l'emploi du temps. ## Droits d'utilisateurs :::info Des utilisateurs différents peuvent avoir des **droits** différents : certains ont la possibilité de faire des choses que d'autres n'ont pas. ::: Sur Pronote, un utilisateur du type "professeur" peut créer des devoirs, attribuer des notes et des appréciations à des utilisateurs de type "élève". Un utilisateur de type "élève" peut seulement consulter ses notes, sans les modifier. Un utilisateur du type "chef d'établissement" peut modifier les emplois du temps des "professeurs" et "élèves". ## Sécurité et accès :::info Le SGBD **sauvegarde** les données, ce qui ne signifie pas seulement de les enregistrer sur un disque dur : il faut aussi les préserver en assurant leur **sécurité**, que ce soit en cas d'accident ou d'attaque volontaire, **physique** ou **informatiqe**. Cela doit permettre un **accès** permanent et efficace aux données. ::: Il faut bien comprendre que les données sont enregistrées sur un support physique, qui peut être endommagé voire détruit par des moyens informatiques mais aussi physiquement : incendie, inondation, coupure d'électricité... L'intérêt est de gérer un volume important de données, avec potentiellement de très nombreux utilisateurs. Le SGBD utilise des algorithmes et méthodes pour un **traitement efficace des requêtes** y compris quand de nombreuses requêtes sont effectuées en même temps. Index-éducation, l'entreprise qui vend Pronote, propose un [service d'hébergement payant](https://www.index-education.com/fr/pronote-hebergement-caracteristiques.php), avec notamment : - sauvegarde des données dans un *datacenter* 12 fois par jour ; - autre *datacenter* éloigné du premier (en cas d'incendie, inondation et autre problème physique du premier) ; - création d'archives (sauvegarde à plus long terme qui permettent un *backup*) ; - chiffrement des sauvegardes ; - connexion à plusieurs opérateurs internet pour un accès fiable. :::warning **Exercice.** Exemples de problèmes récents : 1. crash des ENT lors des premiers jours du confinement en mars 2020 ; 2. incendie du datacenter d'OVH à Strasbourg en mars 2021 ; 3. cyberattaques contre les hôpitaux depuis 2020. Identifiez précisément le problème : causes et conséquences. Comment résoudre ou prévenir ce type de problème ? ::: ## Cohérence ::: info Lorsqu'on modifie des données, le SGBD peut vérifier la **cohérence** logique de la base de données grâce à son schéma. ::: Voici quelques vérifications pratiques. - **Domaine** d'un attribut : l'attribut ne peut prendre que certaines valeurs. Exemple : quand un professeur entre une note sur Pronote, le SGBD vérifie qu'il s'agit d'un nombre compris entre 0 et 20 ou "Abs" ou "NN" (non noté) ou "NR" (non rendu). - **Clé primaire** obligatoire et unique. On ne peut pas créer deux enregistrements avec la même clé primaire ou un enregistrement avec une clé primaire vide. Exemple : sur une copie du bac, c'est le numéro de candidat qui permet de retrouver à coup sûr l'élève qui l'a écrite. - **Clé étrangère et référence**. On ne peut pas supprimer un enregistrement si un autre enregistrement, d'une autre table, y fait référence. Par exemple si le proviseur supprime la classe T5 et que des élèves sont encore affectés à cette classe, Pronote va refuser, ou au moins prévenir du risque d'avoir des élèves sans classe. - **Valeur non nulle**. Certaines valeurs ne peuvent pas être nulles : la saisie d'une valeur est obligatoire. Par exemple en obligeant les parents d'élèves à fournir une adresse pour l'envoi des bulletins scolaires. - **Modifications concurrentes**. Le SGBD vérifie la cohérence de la base si plusieurs utilisateurs veulent la modifier en même temps et éventuellement bloque ces modifications si besoin. Cela [arrive fréquemment sur wikipédia](https://fr.wikipedia.org/wiki/Aide:Conflit_de_versions) : lorsqu'un article concerne un événement d'actualité par exemple.