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