Système de Gestion de Bases de Données
I. Notion de SGBD et caractéristiques
A. Définition
Nombreux sont les logiciels informatiques nécessitant une base de données. Afin de ne pas réinventer la roue à chaque fois, des logiciels dédiés à la gestion de bases de données ont été développés. La plupart de ces logiciels gèrent des bases de données relationnelles. Ils sont en général implantés sous la forme d'un logiciel serveur indépendant (pouvant tourner sur la même machine que le logiciel, ou bien sur une autre machine). On appelle ces logiciels des Systèmes de Gestion de Bases de Données (SGBD).
B. Caractéristiques
Les SGBD doivent proposer un certain nombre de caractéristiques :
- Disposer d'un moyen de créer une base de données (relationnelle)
- Proposer des moyens pour modifier le contenu d'une base de données relationnelle, tout en contrôlant le respect de contrainte (par exemple les contraintes de référence)
- Proposer un langage de requête pour consulter les données présentes dans la base
- Gérer la persistance des données
- Gérer efficacement des bases de données potentiellement très grandes
- Gérer des accès concurrents à la base
- Proposer une gestion des droits d'accès à la base
- Déclencher automatiquement certaines tâches sur certaines actions
- Proposer des moyens pour limiter les risques de pertent de données en cas de panne ou fausse manipulation
- ...
II. Quelques exemples de SGBD
Il y a de nombreux SGBD sur le marché, avec leur avantages et leurs défauts. Voici une présentation sommaire des plus connus :
- Oracle
- La référence en terme de SGBD relationnel professionnel. Une version gratuite existe depuis quelques années. Un peu lourd, pas en avance sur les évolutions, mais le plus robuste, le plus contrôlable à de nombreux points de vue.
- MySql
- Le plus connu depuis le développement des sites web. C'est un SGBD relativement léger, gratuit, de plus en plus complet - surtout depuis son rachat par Oracle - mais avec certains défauts. Notamment, dans ses premières versions, il ignorait totalement les contraintes de référence. Il manque aussi d'un certain nombre de fonctionnalités nécessaire au développement d'une base de qualité.
- PostGres
- Un excellent compromis entre Oracle et MySql. Très fiable et efficace, moins lourd à administrer qu'Oracle et plus en avance sur certaines fonctionnalités, gratuit : de nombreuses entreprises se sont mises à l'utiliser
- Sql Server
- Le SGBD de microsoft. Je ne le connais pas assez pour en parler
- Access
- Le SGBD pour les nuls de Microsoft. Beaucoup hésitent à le classer dans les SGBD. Mais pour une utilisation non professionnelle, il dépanne bien.
- Libre Office Base
- Le SGBD pour les nuls Open Source. Beaucoup hésitent à le classer dans les SGBD. Mais pour une utilisation non professionnelle, il dépanne bien.
Tous ces SGBD fonctionnant sous la forme de serveurs, leur utilisation nécessitent plusieurs choses :
- Installer le SGBD en lui-même avec des droits de super-utilisateur ; suivant les cas, ce n'est pas toujours très simple ;
- Disposer d'une bibliothèque dédiée pour le langage de programmation choisi ; ce n'est pas toujours disponible.
Pour simplifier les choses, dans le cadre de ce cours, nous avons choisi d'utiliser SQLite (version 3). C'est une sorte de SGBD dédiée aux bases de données embarquées dans l'application. En effet, aucun logiciel serveur n'est nécessaire, et il n'y a donc pas d'installation à faire. C'est un SGBD qui est par exemple très utilisée dans les applications mobiles. Il existe une bibliothèque dédiée dans Python : sqlite3.