est un système de gestion de bases de données relationnel extrêmement répandu sur le Web.
La première version de MySQL est apparue le 23 mai 1995.
MySQL est la propriété d’une société suédoise : MySQL AB, fondée par David Axmark, Allan Larsson et Michael Widenius.
SGBD ?
Très simplement, un SGBD (ou système de gestion de base de données) est un logiciel qui permet de gérer (consulter, mettre à jour, organiser) une base de données.
Une base de données est simplement un ensemble structuré d’information, partagées, stocké dans un ou des fichiers sur disque.
Un SGBD est un système complexe permettant de gérer de manière efficace, un volume important de données structurées, accessible par des utilisateurs simultanés locaux ou non.
Suivant les versions utilisées, MySQL offre une palette très variée de fonctionnalités, allant du gestionnaire de fichier évolué pour le web, au SGBD d’entreprise.
Caractéristique d’un vrai SGBD :
- gestion de gros volumes de données (en consultation et en mise à jour)
- gestion de la concurrence d’accès en lecture et écriture (avec une bonne granularité),
- gestion (efficace) des transactions,
- portabilité sur différents OS, des données et du code
- sécurité des données, qui se décline en :
- bonne ou haute disponibilité
- fiabilité
- confidentialité
- cohérence
- tracabilité
- Administrabilité :
– existence d’outils d’administration généraux : gestion des données, des utilisateurs, des fichiers physiques, des espaces logiques, des droits, des profils, des ressources systèmes, etc.
– outils de surveillance
en temps réel grâce à un moniteur, si possible graphique ou en temps différé grâce à des journaux ou à des traces paramétrables
- possibilité d’export import :
de, ou vers des fichiers texte, des logiciels bureautique ou des fichiers Gros systêmes par exemple
- performances :
offrir de bonnes performances et des outils permettant de les mesurer et de les contrôler via des paramètres de configuration. Des processus d’optimisation en temps réel des requêtes complexes sont également souvent présents. Les données peuvent être indexées, de manière souple, dynamique et complète (index simples, concaténés, multiples, tables de hashage, recherche textuelle, etc.). Un nombre important d’utilisateurs, ainsi qu’un volume conséquent de données peuvent être pris en compte.
Relationnel ?
Il existe plusieurs familles de SGBDs en fonction du modèle de données utilisé. Historiquement on a le modèle hiérarchique, réseau, relationnel puis objet. Le modèle relationnel est de très loin le plus répandu avec des fers de lance comme MySQL, Postgres, Oracle, Microsoft SQL Server, IBM DB2, etc.
Quelques caractéristique du relationnel
- le modèle sous jacent est simple (on manipule des tables ), bien formalisé et épprouvé,
- accès simple via un langage de requêtes SQL normalisé
- opérateurs simples et puissants
opérateur de projection (ou selection), restriction, produit cartésien, union, différence,
- indépendance entre stockage physique et vision logique des données :
Les données (le plus souvent des tables) sont référencées de manière logique. Un dictionnaire de données permet de retrouver la correspondance avec l’objet physique désiré. Ceci est bien sûr très utile dans les environnements ouverts, et offre une grande souplesse aussi bien lors du développement, que lors de la mise en production ou dans la phase de maintenance des applicatifs. La conséquence est que l’on pourra déplacer physiquement des données, par exemple les changer de serveur, renommer ou retailler un fichier sans pour autant retoucher le code des applications. Il n’y a (normalement) pas de correspondance bijective entre un fichier et une table.
- existence de contraintes d’intégrité
– intégrité de domaines (controle du type de la donnée)
– intégrité de relation (existence d’une clé primaire : unique et toujours définie (non nulle))
– intégrité de référence (controle de la cohérence d’attributs de tables différentes lors des mises à jour)
Zoom sur le langage SQL
C’est le langage qui permet d’accéder en consultation et en mise à jour aux données d’une base relationnelle (MySQL ou non).
Les différentes évolution de la norme SQL sont visibles sur le site de mimerSQL : http://developer.mimer.com/validator/features/index.tml
Il existe différents SQL (eh oui, il est normalisé mais chaque fournisseur prend malheureusement un certain nombre de libertés…)
Un comparateur de SQL (crash-me) est disponible sur le site MySQL : http://dev.mysql.com/tech-resources/crash-me.php
SQL utilise des opérateurs simples comme :
* les opérateurs de projection (choix de colonnes),
* les opérateurs de restrictions ou de selection (choix de lignes),
* les opérateurs de jointures (mise en relations de 2 ou plusieurs tables,
* les opérateurs ensemblistes (Union, intersection, différence).
SQL est un langage non procédural et n’est pas un langage de programmation.
En l’occurence il ne permet pas de :
* gérer des variables d’entrée / sortie (pas de création, typage, affectation, lecture, etc)
* gérer l’interface homme/machine,
* faire des itérations ou des boucles répétitives de type LOOP, WHILE, FOR…,
* gérer des erreurs, ou des événements particuliers,
* créer des sous-programme (procédure, fonctions, etc.).
C’est un langage proche du langage naturel (mais en Anglais 😉 ) qui possède un vocabulaire assez réduit.
Il faut distinguer 2 types d’ordres SQL :
– ceux qui portent sur les données elles-mêmes : Langage de manipulation des données ou LMD
– ceux qui portent sur le contenant ou les structures de données : Langage de définition de données ou LDD
et plus précisément pour la consultation :
SELECT
pour la création ou la modification d’objets (table, index, procedure, vues, etc.)
CREATE, DROP, ALTER
pour les mises à jour :
UPDATE, INSERT, DELETE
pour la gestion des droits :
GRANT, REVOKE
note: les ordres de mise à jour, sont en général directement validés (AUTO COMMITés) et l’on ne peut dans ce cas pas reenir en arrière et annuler la transaction
libre ?
MySQL est en fait disponible en version libre (open-source et gratuite) et en version commerciale (MySQL enterprise) .
Il est passé en licence GPL à partir de la version 3.23.19 (juin 2000)
Téléchargement :
La version 5.1 de MySQL Server pour Windows est disponible ici :
http://dev.mysql.com/downloads/mysql/5.1.html
Un outil de requête et d’administration ‘MySQL Gui Tool’ est disponible ici :
http://dev.mysql.com/downloads/gui-tools/5.0.html