Système de gestion de base de données MySQL

Participez au vote ☆☆☆☆☆★★★★★
MySql
Spécialité: Technicien spécialisé en réseau informatique
Sanâ Akramallah
Ilham Benrahal
2011-2012
1
Sommaire
• Introduction
• Définition
• Historique
• Téléchargement de MySQL
• Installation
• Configuration
• Avantages et inconvénients
• Conclusion
2
Introduction
• MySQL est un système de gestion de base de données (SGBD)
apparu en1995 sa licence est libre ou propriétaire. Il fait partie
des logiciels de gestion de base de données les plus utilisés au
monde, autant par le grand public (applications web notamment)
que par des professionnels, en concurrence
avec Oracle et Microsoft SQL Server
• Le serveur MySQL est très souvent utilisé avec le langage de
création de pages web dynamiques : PHP comme des
commandes MySQL utilisables via PHP.
• Les bases de données MySQL sont accessibles en utilisant les
langages de programmation C, C++, Eiffel, Java, Perl, PHP,
Python, et Tcl ; une API spécifique est disponible pour
chacun d'entre eux. Une interface ODBC appelée MyODBC est
aussi disponible.
Base de
Script
do
n
née
PHP
Page HTML
Serveur
Client
3
Définition
• MySQL MySQL (SQL veut dire Structured Query Language en anglais)
est un serveur de bases de
données relationnelles SQL très rapide, multithread et multi-utilisateurs.
• MySQLest un logiciel libre développé sous licence GNU General Public
License. Il a été conçu et maintenu par une société suédoise, MySQL AB,
fondée par deux Suédois et un Finlandais : David Axmark, Allan Larsson
et Michael « Monty » Widenius.
• MySql est une base de données relationnelle libre qui a vu le jour en
1995 et très employée sur le Web, souvent en association avec PHP
et Apache.
• MySQL fonctionne sur beaucoup de plates-formes différentes, incluant
AIX, BSDi,FreeBSD, HP-UX, Linux, Mac OS X, NetBSD, OpenBSD,
OS/2 Warp, SGI Irix, Solaris,SunOS, SCO OpenServer, SCO UnixWare,
Tru64 Unix, Windows 95, 98, NT, 2000 et XP.
• Le principe d'une base de données relationnelle est d'enregistrer les
informations dans des tables, qui représentent des regroupements de
données par sujets (table des clients, table des fournisseurs, table des
produits, par exemple). Les tables sont reliées entre elles par des relations.
• Le langage SQL (acronyme de Structured Query Language) est un
langage universellement reconnu par MySQL et les autres bases de
données et permettant d'interroger et de modifier le contenu d'une base de
données comme Microsoft SQLServer et Oracle.
• Vois un exemple de table crées et manipulés par MySql
4
Historique
Version
première version en octobre 2001, stable depuis mars 2003
4.0
Version
première version en avril 2003, stable depuis octobre 2004
4.1
Version
première version en décembre 2003, stable depuis octobre 2005
5.0
Version
première version en novembre 2005, Release Candidate distribuée depuis
5.1
sepembre 200
Version
distribuée en avant-première (ajout du nouveau moteur de stockage Falcon)
5.2
en février 2007, cette ligne a ensuite été renommée 6.0
Version
Version stable et depuis octobre 2010
5.5
Version
Version en cours de développement
5.6
Version
première version alpha en avril 2007, abandonnée depuis le rachat de Mysql
6.0
par oracle en décembre 2010
5
Téléchargements de MySQL
• Avant l'installation, on doit tout d'abord récupérer l'archive
contenant notre futur serveur site ou sur
.
• De là,il faut récupérer la version de MySQL pour
environnement Windows.
• Attention, il y a 3 versions différentes de l'archive :
• Windows Essentials
• Windows
• Without installer (unzip in C:\)
• Dans le cas présent, nous allons baser notre installation sur
MySQL version 5.0.15 en essentials
• Nom du fichier téléchargé :
• Vous pouvez effectuer le téléchargement de l'application à cette
url :
• ;
6
Installation
Localiser l'archive que vous avez téléchargée, par défaut sur le bureau si vous
avez téléchargé avec firefox sinon une petite recherche (sur votre disque
dur) vous permettra de localiser le programme d'installation de MySQL.
Un double-clique lancera le programme d'installation On clique sur Next.
On choisi le type d'installation, par défaut, c'est une installation Typical. Dans le
cas présent, je vais faire une installation personnalisée (Custo
7
On coche Custom puis on clique sur Next.
Je détermine les composants que je souhaite installer, par ailleurs, je peux
changer le répertoire où sera installé mon serveur MySQL. Par défaut :
C:\Program Files\MySQL\MySQL Server 5.0
8
On clique sur le bouton Change si l'on souhaite changer le répertoire
d'installation. Dans le cas présent mon serveur sera dans E:\Projet\MySQL
Server 5.0\ Je peux cliquer surbouton Install.
L'installation est en cours, si je souhaite l'interrompre je clique sur le bouton
Cancel.
9
Une fois la copie des fichiers terminée, nous passons à la configuration de notre
serveur MySQL.
Cet écran (ci-dessus), vous demande si vous souhaitez créer un compte ou si
vous en disposez un sur le site officiel . Dans le cas présent, je ne
souhaite ni créer un compte ni m'authentifier sur le site. Donc, je coche Skip
Sign-Up (ci-dessous).
10
Dans le cas présent, je souhaite procéder à la configuration de mon serveur.
Donc je coche l'option Configure the MySQL Server Now.
11
Configuration
Nous avons choisi précédemment l'option Configure the MySQL Server now,
ceci va nous permettre de configurer le serveur mysql dès à présent.
Dans le cas présent, on choisit une configuration de type Standard, donc on
coche l'option Standard Configuration.
12
Choisir votre version favorable de MySQL
Ici, nous pouvons choisir le nom du service (Service Name) qui va être installé,
dans le cas présent, MySQL5. Par ailleurs, on peut ajouter une variable Path
dans la configuration de Windows ce qui aura pour effet de rendre disponibles
les commandes mysql depuis n'importe quel répertoire dans une invite de
commandes.
13
Ici, on a choisi le service MySQL5 et le lancement automatique du serveur
MySQL.
Nous devons déterminer le mot de passe du compte administrateur (root) du
serveur. Par ailleurs, nous pouvons procéder à la création d'un utilisateur
anonyme sur le serveur. Ceci étant, dans le cas présent, nous définissons le mot
de passe root mais nous ne créons pasd'utilisateur anonyme qui comme on peut
le voir n'est pas des plus prudent (insecure) pour le serveur.
Nos options de configuration définies, MySQL va procéder à son exécution.
14
La configuration se passe sans soucis dans le cas présent :
on coche ces deux
On clique sur le bouton Finish. L'installation et la configuration du serveur sont
à présent terminées.
15
Moteurs de base de donner inclus
L'une des spécificités de MySQL est de pouvoir gérer plusieurs moteurs au sein
d'une seule base. Chaque table peut utiliser un moteur différent au sein d'une
base. Ceci afin d'optimiser l'utilisation de chaque table.
Voici les différents moteurs historiques de MySQL :
? : Il est le plus simple à utiliser et à mettre en œuvre. Il utilise
plusieurs fichiers qui grandissent au fur et à mesure que la base grossit. Il ne
supporte pas les transactions, ni les clefs étrangères ;
? : moteur créé et maintenu par InnoBase (racheté par Oracle le 7
octobre 2005). Il gère les transactions et les clefs étrangères (et donc
l'intégrité de ses tables).
? : moteur fourni par Sleepycat Software qui gère les
transactions ;
? MERGE : moteur fait pour fusionner plusieurs tables qui doivent être
identiques ;
? ARCHIVE : moteur adapté à l'archivage de données. Les lignes sont
compressées au fur et à mesure de leur insertion. Les requêtes de recherches
sont alors sensiblement plus lentes ;
? MEMORY (HEAP) : moteur où les tables sont stockées uniquement en
mémoire. La structure de la base est stockée sur le disque dur mais les
données sont stockées dans la RAM, si la machine serveur redémarre, les
données seront perdues. Cependant, étant donné qu'il n'y a plus d'accès
disque, une requête de modification (UPDATE, INSERT…) s'exécutera bien
plus rapidement et sans charger les bras d'accès ; convient pour les
mémorisations temporaires,
? CSV : moteur utilisant des fichiers textes (au format CSV) comme stockage ;
? BLACKHOLE : moteur réceptionnant les données, les transférant mais ne
les stockant pas
? ISAM : moteur d'origine de MySQL, maintenant obsolète et remplacé
par MyISAM. Il est resté pour des raisons de compatibilité ;
? (uniquement dans la version MaxDB) : moteur de base de données
réseau gérant les grappes de serveurs ;
? FEDERATED : moteur permettant d'accéder à des tables d'une base de
données distantes plutôt que dans les fichiers locaux ;
? EXEMPLE : moteur fictif et inutilisable, mis à disposition pour les
développeurs ;
? FALCON : ce nouveau moteur devait faire son apparition avec MySQL 6. À
l'époque MySQL AB avait voulu créer un nouveau moteur transactionnel
16
pour ne plus dépendre d'Oracle qui venait de racheter InnoBase, créateurs du
moteur de stockage InnoDB. Ce moteur de stockage a été abandonné depuis
le rachat de Mysql par Oracle.
? MARIA : evolution ACID de MyISAM.
Des moteurs de stockages OPEN Source :
? : moteur VLDB, orienté vers les applications décisionnelles ;
? Sphinx : moteur orienté recherche full text ;
? PBXT : moteur transactionnel proche des performances d'InnoDB ;
? Memcached : moteur orienté table de hash en mémoire ;
? M4q : moteur orienté gestion de file d'attente.
Des moteurs de stockages commerciaux :
? DB2 Moteur transactionnel copyright IBM ;
? SolidDB Moteur transactionnel copyright IBM ;
? NitroEDB Moteur VLDB copyright BrightHouse ;
? Tokutek Moteur VLDB.
Lorsque les clients ont envie d’avoir une BDD open source, 3 bases de données
sone proposées : MySQL, PostgreSQL, Ingres.
MySQL propose deux moteurs de stockage : MyISAM et InnoDB.
17
Avantages et inconvénients
• Avantage:
• Une base de données open source standard, qui permet aux éditeurs et
aux utilisateurs de solutions de gestion des données d’abonnés
d’intégrer facilement leurs applications à MySQL Carrier Grade
Edition par le biais de leur API favorite, par exemple LDAP, SQL,
C++, Java, HTTP, etc.
• Des performances élevées avec une base de données distribuée de type
« shared-nothing », qui offre un accès en temps réel aux données
utilisateur en mémoire, avec à peine quelques millisecondes de latence
en lecture et en écriture, et qui peut être élargie par l’ajout de
ressources supplémentaires ou l’enregistrement de données sur disque.
• Une disponibilité à 99,999 % grâce à la réplication synchrone des
données en mémoire sur les différents nœuds actifs du cluster (les
données de reprise étant écrites sur disque en mode asynchrone) et
grâce, en option, à la réplication « géographique », hors site, des
données sur un cluster distant actif ou en veille.
• Solution très courante en hébergement public
• Très bonne intégration dans l’environnement Apache/PHP
• OpenSource,bien que les critères de licence soient de plus en plus
difficiles a supporter.
• Facilité de déploiement et de prise en main.
• Plusieurs moteurs de stockage.
• Faible coût total de possession
• Simplicité d’utilisation
• Fiabilité
• Performances
• Inconvénients:
• Il ne supporte pas les transactions et les clés étrangères
• Nombre de connexions simultanées limitées.
18
Références
PhpMyAdmin :
MySQL Administrator :
;
MySQL-Front : ;
MySQL :
MySQL en français : ;
Documentation en français :
Definition de MySQL sur Wikipédia :
;
19
Conclusion
MySQL dérive directement de SQL (Structured Query Language) qui est un
langage de requête vers les bases de données exploitant le modèle relationnel. Il
en reprend la syntaxe mais n'en conserve pas toute la puissance puisque de
nombreuses fonctionnalités de SQL n'apparaissent pas dans MySQL (sélections
imbriquées, clés étrangères )
Le serveur de base de données MySQL est très souvent utilisé avec le langage
de création de pages web dynamiques : PHP.
Ce serveur MySQL aura pour mission de stocker des données que ce
soit pour un programme ou pour un site internet dynamique.
Dans le cas présent, vous avez les bases pour administrer votre serveur, que ce
soit en ligne de commande ou via une interface graphique, exemple: MySQL
Administrator ou PhpMyAdmin.
Bien que beaucoup ont applaudi MySQL pour sa rapidité, ces mêmes
analystesont dans le même temps il a critiqué pour son manque de soutien pour
les transactions. Cette critique ne s'applique plus, ce qui rend MySQL un choix
encore meilleur comme base de données pour votre site Web.
Reste la fonctionnalité principale de MySQL est la création des page web a
l’aide des autre serveur, on parle de PHP
20
21