MySQL
Système de gestion de bases de données
La gestion d'une base de données, sa consultation et, d'une manière générale, la manipulation des données qu'elle contient, constituent des opérations dont la réalisation technique est souvent très complexe. C'est la raison pour laquelle on fait appel à des logiciels spécialisés, appelés systèmes de gestion de bases de données (SGBD). Ces logiciels offrent un ensemble de fonctions permettant la définition, l'exploitation et la gestion de tables et de leur contenu. Il s'agit d'intermédiaires entre les utilisateurs et les bases de données.
Architecture d'un SGBD
Les SGBD s'adressent à la fois à l'utilisateur non spécialié ou occasionnel et au développeur d'applications. Ils permettent de définir des tables et leur structure, de consulter des données extraites d'une ou plusieurs tables et sélectionnées selon des critères simples ou complexes, de modifier le contenu d'une table (ajouter, supprimer des lignes, modifier les valeurs de colonnes de lignes sélectionnées). En outre, ils disposent souvent d'un langage de programmation propre (le plus souvent SQL) qui permet le développement rapide de programmes complexes. Ces logiciels exigent des ressources en matériel (mémoire centrale, vitesse de processeur, disques rapides et à grande capacité) importantes.
Un SGBD offre les fonctions d'organisation et de gestion de données suivantes:
- Organisation des données
Dans un SGBD, les données d'une base de données sont organisées sous la forme de tables, de colonnes, de clés primaires et secondaires. Le SGBD permet également d'ajouter et de supprimer des tables dans la base de données ainsi qu'ajouter, modifier et supprimer une colonne dans une table.
- Gestion des données
Un SGBD permet d'ajouter et de retirer des lignes dans une table. Il lui est également possible de modifier les valeurs d'une colonne dans certaines lignes d'une table. Le SGBD garantit le respect des contraintes d'intégrité qui ont été déclarées.
- Accès aux données
L'accès aux données et leur manipulation s'effectuent à l'aide du langage SQL. Celui-ci permet de décrire l'ensemble de données en n'en définissant que les propriétés, c'est-à-dire sans faire référence aux techniques d'accès qui seront utilisées pour atteindre ces données dans la base de données. Cette désignation d'ensembles de données prend la forme de requête SQL. Le résultat d'une requête se présente sous la forme d'une table, éventuellement d'une seule ligne et/ou d'une seule colonne. Les données de cette table sont généralement extraites de la base de données ou alors déduites à l'aide de fonctions permettant de réaliser des totaux, des comptages, des moyennes, etc.
- Les privilèges et le contrôle d'accès
L'accès aux données et leur manipulation sont soumis à autorisation. Chaque utilisateur a le droit de demander l'exécution de certaines opérations sur certains objets de la base de données. Ce droit est appelé un privilège. Le droit d'accorder un privilège est lui-même un privilège particulier; il permet aussi de retirer un privilège accordé.
- Accès par programme
Les commandes SQL de définition, d'extraction et de modification de données peuvent être exécutées soit à partir d'une interface graphique, soit à partir d'un programme d'application écrit le plus souvent en PHP ou en Python.
- Autres fonctions
Les SGBD offrent d'autres fonctionnalités indispensables dans un contexte industriel, telles que ...
- ... la définition de vues, qui permet à une classe d'utilisateur de visualiser les données sous une forme personnalisée;
- ... la protection contre les incidents, qui garantit que les données ne seront pas corrompues à la suite d'incidents affectant le fonctionnement de la configuration informatique (serveurs, réseau, postes de travail, logiciels);
- ... la gestion des accès concurrents, qui permet à plusieurs utilisateurs de consulter et de modifier simultanément les mêmes données tout en conservant leur intégrité.
Les systèmes de gestion de bases de données sont utilisés pour de nombreuses applications informatiques, notamment les guichets automatique bancaires, les logiciels de réservation, les bibliothèques numériques, les logiciels d'inventaire ou la plupart des blogs et sites Web. Il existe de nombreux SGBD. En 2008, les trois produits IBM DB2, Oracle Database et Microsoft SQL Serveur occupaient 80% du marché. Alors que ces SGBD payants sont appréciés pour les applications stratégiques en raison de leur robustesse, leur richesse et leur durabilité, les SGBD gratuits, plus simples, sont appréciés pour leur facilité d'utilisation. Les SGBD les plus utilisés sont PostgreSQL, SQLite ou encore MySQL, avec lequel nous travaillerons dans la suite de ce cours.