Introduction à MySQL
Transcription
Introduction à MySQL
Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » Introduction à MySQL 1 ) Mysql Database Server ........................................................................................................2 1.1 ) Introduction ..................................................................................................................... 2 1.2 ) Les différentes versions de MySQL ...................................................................................... 2 1.3 ) Architecture ..................................................................................................................... 3 1.3.1 ) Connecteurs................................................................................................................ 3 1.3.2 ) Moteurs de stockage (storage engines) .......................................................................... 3 2 ) Fonctionnement client/serveur ...........................................................................................4 2.1 ) Interfaces graphiques ........................................................................................................ 4 2.2 ) Langages de programmation et MySQL ................................................................................ 7 3 ) Conception de bases de données .........................................................................................8 4 ) Administration de MySQL ....................................................................................................8 5 ) Installation de MySQL .........................................................................................................8 © Copyright – Paris – 2013 – Benjamin TAILLIFET 1 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » 1 ) Mysql Database Server 1.1 ) Introduction MySQL Database Server est un SGBD open-source, actuellement développé et géré par la société MySQL AB (http://www.mysql.com/). MySQL peut être utilisé gratuitement (licence GPL), ou en achetant des licences commerciales. Le système MySQL est disponible sur beaucoup de plates-formes, entre autre Linux, Mac OS X, UNIX et Microsoft Windows. MySQL est utilisé principalement dans le contexte des sites web dynamiques. C’est dans ce contexte uniquement qu’il peut prétendre concurrencer d’autres SGBD commerciaux. En effet, MySQL présente peu de fonctionnalités, et il est optimisé pour des requêtes en lecture, sans transaction ou autres opérations complexes. 1.2 ) Les différentes versions de MySQL MySQL est un produit qui évolue rapidement, et il est intéressant de suivre l’apparition des nouvelles fonctionnalités au fur et à mesure de son développement. Version Principaux changements 3.23 Cette version, aujourd’hui obsolète, est cependant encore présente chez quelques hébergeurs. 4.0 Apparition du moteur de stockage innoDB, permettant entre autres : Les transactions Les clés étrangères 4.1 Apparition des sous-requêtes 5.0 Apparitions de fonctionnalités très attendues : Possibilités de créer des vues Procédures stockées, fonctions et triggers Schéma d’information et méta-données 5.1 (version bêta actuellement en développement) Consolidation des fonctionnalités, et apparition de nouveautés : Partitionnement des tables et tablespaces Gestionnaire d’événements On trouvera également quelques différences entre les versions Windows et Linux : certaines fonctionnalités avancées ne se trouvent que sur Linux (clustering, …) © Copyright – Paris – 2013 – Benjamin TAILLIFET 2 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » 1.3 ) Architecture 1.3.1 ) Connecteurs Il est important de noter que MySQL dispose d’un grand nombre de connecteurs et d’API avec les langages les plus répandus. 1.3.2 ) Moteurs de stockage (storage engines) [Référence complète dans le manuel] MySQL est prévu pour fonctionner de manière identique sur différents moteurs de stockage. Cependant, chaque moteur de stockage a des particularités qui font que l’on doit choisir celui-ci en fonction du contexte. Voici les moteurs à connaître : Moteur de stockage Avantages inconvénients Contexte privilégié MyISAM (moteur par défaut) Rapide Pas d’intégrité référentielles Pas de transaction Sites web ou autres applications avec accès en lecture principalement (catalogue produit, …) InnoDB Contraintes d’intégrité Transaction ACID Plus lent que MyISAM Sites web ou applications nécessitant des transaction ou un contrôle d’intégrité NDBCluster Support du clustering © Copyright – Paris – 2013 – Benjamin TAILLIFET Sites web ou applications nécessitant une haute disponibilité 3 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » 2 ) Fonctionnement client/serveur 2.1 ) Interfaces graphiques MySQL fonctionne comme un « service » sous Windows, et comme un « daemon » sur les systèmes unix/linux. Cela signifie que le logiciel tourne en tâche de fond, sans aucune interaction, sans aucun affichage sur l’écran, … Il fonctionne en mode « serveur ». Afin de dialoguer avec le serveur MySQL, il faut un autre logiciel, de type « client ». Le dialogue se fera donc entre le logiciel client et le logiciel serveur (modèle client-serveur). Le dialogue a lieu au travers du réseau (protocole TCP/IP) à l’aide du langage informatique dédié au bases de données : SQL (Structured Query Language, ou langage de requête structuré). Ce langage sera étudié dans la suite du cours. SQL> Langage SQL Logiciel serveur Logiciel client Réseau Exemple de logiciels client : Interface texte : mysql (client fourni avec MySQL, peu conviviale) © Copyright – Paris – 2013 – Benjamin TAILLIFET 4 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » Client graphique : MySQL Query Browser Dans cette catégorie de clients, il existe de nombreux produits, par exemple MySQL-Front ou EMS MySQL Manager sous Windows, et Mergeant ou gASQL sous Linux. © Copyright – Paris – 2013 – Benjamin TAILLIFET 5 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » Client web : phpMyAdmin PhpMyAdmin est l’interface graphique la plus répandue. On la retrouve quasiment chez tous les hébergeurs. Il existe bien d’autres logiciels clients. Nous nous servirons de MySQL-Query et phpMyAdmin pour ce cours. © Copyright – Paris – 2013 – Benjamin TAILLIFET 6 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » 2.2 ) Langages de programmation et MySQL Le réel intérêt des bases de données est de pouvoir dialoguer simplement avec des programmes. C’est l’usage normal des bases de données. Pour cela, les différents langages de programmation utilisent un ensemble de fonctions dédiées (API, Application Programming Interface) à l’interrogation des SGBD. Le dialogue entre le programme et MySQL se fait à l’aide du langage SQL, au travers du réseau. C’est principalement dans le contexte du développement web que nous trouverons le SGBD MySQL. Voici donc l’exemple d’une interaction entre le langage PHP et MySQL : Navigateur URL= http://www.serveur.ext/fichier.htm Navigateur Web Serveur web Execution de la page php <?php mysql_connect(...); mysql_query(...); mysql_fetch_row(...); ... mysql_close(...); ?> Langage SQL Logiciel serveur MySQL Réseau fichier php Le serveur MySQL fonctionne toujours de la même façon, quel que soit le moyen choisi pour l’interroger (client graphique, langage de programmation, …). Un serveur de bases de données peut être interrogé en même temps par ces différents moyens. © Copyright – Paris – 2013 – Benjamin TAILLIFET 7 / 8 Introduction à MySQL ENC - Master 2 « Technologies numériques appliquées à l’histoire » 3 ) Conception de bases de données Les outils précédents permettent de créer des bases de données, des tables, etc… Cependant, l’interface n’est pas toujours conviviale, et il est difficile de visualiser le schéma de la base. Plusieurs outils commerciaux proposent des fonctionnalités d’aide à la conception. Pour notre part, nous utiliserons DBDesigner, un outil freeware. Ce produit a été repris par MySQL AB, qui devrait prochainement en proposer une version stable sous le nom de MySQL Workbench. Ce logiciel nous servira de support pour la conception de bases de données MySQL, et permettra de travailler avec des schémas clairs. 4 ) Administration de MySQL L’administration d’un SGBD regroupe plusieurs tâches : Gérer les utilisateurs et les droits d’accès Assurer les sauvegardes régulières Installer et configurer le système Monitoring : vérification régulière de l’état de charge du serveur, de son bon fonctionnement, … MySQL AB fournit un client graphique permettant d’administrer simplement le système : MySQL Administrator, disponible à l’adresse http://www.mysql.fr/products/tools/administrator/. Il sera téléchargé dans le pack MySQL GUI Tools, contenant également MySQL Query Browser et MySQL Migration Tool. 5 ) Installation de MySQL MySQL peut être téléchargé gratuitement depuis http://www.mysql.com. Ce que vous téléchargerez ici correspond uniquement au logiciel serveur mysql. Si vous désirez utiliser MySQL dans le cadre d’un développement de site web, vous pouvez plutôt télécharger l’environnement de développement EasyPHP, disponible depuis l’adresse http://www.easyphp.org/. EasyPHP installe et configure automatiquement un environnement de travail complet sous Windows pour le développement d’application php/MySQL. EasyPHP regroupe un serveur Apache, une base de donnée MySQL, le langage PHP ainsi que des outils facilitant le développement de vos sites ou de vos applications (phpMyAdmin, …). © Copyright – Paris – 2013 – Benjamin TAILLIFET 8 / 8