MySQL
Le système de gestion de base de données relationnelle (SGBDR) open source Oracle MySQL s'appuie sur le langage de requête structuré SQL (Structured Query Language). Il est compatible avec presque toutes les plateformes notamment Linux, UNIX et Windows. Utilisé pour toutes sortes d'applications, il est le plus souvent associé aux applications Web et à la publication de contenus en ligne.
MySQL est un composant important de la pile d'entreprise open source dite LAMP. LAMP est une plateforme de développement Web qui utilise Linux comme système d'exploitation, Apache comme serveur Web, MySQL comme système de gestion de base de données relationnelle et PHP comme langage de script orienté objet. (Perl ou Python sont parfois utilisés à la place de PHP.)
Conçu au départ par la société suédoise MySQL AB, le logiciel a été racheté par Sun Microsystems en 2008, puis par Oracle lors de l'acquisition de Sun en 2010. Les développeurs peuvent utiliser MySQL sous licence publique générale GNU, dite GPL, mais les entreprises doivent obtenir une licence commerciale auprès d'Oracle.
Aujourd'hui, MySQL est le SGBDR qui sous-tend de nombreux sites Web parmi les plus grands. Ses applications Web professionnelles ou grand public sont innombrables : Facebook, Twitter, YouTube, etc.
Fonctionnement de MySQL
MySQL suit un modèle client-serveur. Au coeur du système de gestion se trouve le serveur MySQL qui gère toutes les instructions, ou commandes, à la base de données. Le serveur MySQL existe sous la forme d'un programme distinct utilisable dans un environnement réseau client-serveur et comme bibliothèque intégrée (ou connectée) à des applications distinctes.
MySQL fonctionne en parallèle de plusieurs utilitaires de gestion de bases de données MySQL. Les commandes sont transmises à MySQLServer via le client MySQL installé sur un ordinateur.
MySQL a d'abord été développé pour manipuler rapidement de grosses bases de données. Si MySQL est habituellement installé sur une seule machine, il peut transmettre les données de la base vers plusieurs destinations : les utilisateurs peuvent y accéder avec différentes interfaces client MySQL. Ces interfaces envoient des instructions SQL au serveur et en affichent les résultats.
Principales fonctionnalités MySQL
MySQL permet de stocker des données sur plusieurs moteurs de stockage notamment InnoDB, CSV et NDB, et d'y accéder. Il sait également répliquer les données et fractionner les tables pour améliorer les performances et la durabilité. Les utilisateurs de MySQL n'ont aucune nouvelle commande à apprendre : les données sont accessibles par les commandes SQL standard.
Ecrit en C et C++, MySQL est accessible et disponible sur plus de 20 plateformes notamment Mac, Windows, Linux et Unix. Le SGBDR prend en charge des bases de données volumineuses, à plusieurs millions d'enregistrements, et de nombreux types de données notamment les entiers signés ou non signés de 1, 2, 3, 4 et 8 octets de long ; FLOAT ; DOUBLE ; CHAR ; VARCHAR ; BINARY ; VARBINARY ; TEXT ; BLOB ; DATE ; TIME ; DATETIME ; TIMESTAMP ; YEAR ; SET ; ENUM ; et les types spatiaux OpenGIS. Les types de chaîne à longueur variable ou fixe sont aussi pris en charge.
Par sécurité, MySQL utilise un système de privilège d'accès et de mots de passe chiffrés pour la vérification des hôtes. Les clients MySQL se connectent au serveur MySQL par le biais de différents protocoles, notamment les sockets TCP/IP de n'importe quelle plateforme. MySQL prend également en charge plusieurs programmes clients et utilitaires, des programmes de ligne de commande et des outils d'administration comme MySQL Workbench.
Parmi les dérivés ou fourches de MySQL on trouve :
- Drizzle, un système léger et open source de gestion de base de données en cours de développement basé sur MySQL 6.0 ;
- MariaDB, un développement communautaire courant qui vient se substituer (« drop in ») à MySQL et utilise les interfaces de programmation et les commandes de MySQL ; et
- Percona Server avec XtraDB, une version améliorée de MySQL connue pour son extensibilité.
Comparatif MySQL et SQL
Avant 2016, la grande différence entre les deux était que MySQL s'utilisait sur plusieurs plateformes alors que SQL ne fonctionnait qu'en environnement Windows. Depuis, Microsoft a étendu la compatibilité de SQL à Linux, un changement qui s'est produit en 2017. Lorsqu'on installe MySQL via Linux, il faut une configuration spécifique, notamment des paramètres de sécurité et d'optimisation, adaptée au système de gestion des packages.
Avec MySQL, les utilisateurs peuvent aussi choisir le moteur de stockage le plus efficace pour une table donnée, puisque le programme sait utiliser plusieurs moteurs de stockage pour des tables individuelles. InnoDB est un des moteurs de MySQL. Conçu pour offrir une haute disponibilité, il n'est pas aussi rapide que les autres moteurs. SQL utilise son propre système de stockage, mais avec des garde-fous pour prévenir la perte de données. Les deux systèmes sont exécutables en clusters pour assurer une haute disponibilité.
SQL Server offre un large éventail d'outils de reporting et d'analyse des données. Le plus connu, SQL Server Reporting Services, est disponible en téléchargement gratuit. D'autres éditeurs proposent des outils comparables pour MySQL, notamment Crystal Reports XI et Actuate BIRT.
Compatibilité avec d'autres services
MySQL est conçu pour être compatible avec d'autres systèmes. Il peut être déployé dans des environnements virtualisés, comme Amazon RDS for MySQL, Amazon RDS for MariaDB et Amazon Aurora for MySQL. Les utilisateurs peuvent transférer leurs données vers une base de données SQL Server à l'aide d'outils de migration tels qu'AWS Schema Conversion Tool et AWS Database Migration Service.
La sémantique des objets de base de données dans SQL Server et MySQL se ressemble sans être identique. Il existe des différences d'architecture dont il faut tenir compte pour migrer de SQL Server à MySQL. MySQL ne fait pas de différence entre une base de données et un schéma, alors que SQL Server les traite comme deux entités distinctes.