mysql - LP GSR 2007/2008

publicité
Bases de données
Open Source
Pierre Crépieux
13/03/2008
Plan
Généralités sur les bases de données relationnelles
A quoi serrent elles ?
Pourquoi un modèle relationnel ?
L'Open Source
Qu'est ce que c'est ?
Pourquoi utiliser une base de données Open Source
Les bases de données Open source
PostgreSQL
MySQL
…
Conclusion
2
Groupe France Télécom
MySQL
3
Groupe France Télécom
MySQL
Il est intéressant de voir comment les histoires de PostgreSQL et MySQL se
croisent
• Celle de MySQL commence a Helsinki en 1979!
– Michael Widenius (société TcX) développe une base de
données "maison" appelée UNIREG
• En 1983, Michael fait la connaissance de David Axmark avec qui il créera MySQL AB.
• En 1994, TcX décide d'utiliser SQL (devenu un standard) pour ces appli web.
•
•
•
•
•
•
•
•
C'est à ce moment que Michael s'intéresse à mSQL.
mSQL a été développé par David Hughes qui travaille alors sur le projet Minerva.
Au tout début, mSQL est juste un traducteur SQL vers POSTQUEL.
Postgres s'est avéré par la suite trop lourd et complexe pour les besoins de
Minerva, David décide alors d'écrire son propre moteur de stockage.
Michael contact David pour lui proposer d'intégré des fonctionnalités d'UNIREG
(B+ ISAM handler) a mSQL.
En 1995, MySQL AB est fondée.
2005, Oracle rachète Innobase
2008, SUN rachète MySQL.
4
Licence GPL, et commerciale
Groupe France Télécom
5
Groupe France Télécom
Fonctionnalités
• Base de données relationnelle.
• Base de données garantissant les propriétés ACID (en fonction du moteur
de stockage)
• Permet de définir des procédures stockées ainsi que des triggers.
• Tablespaces
• Replication, Cluster
• Nombreuses API
• Possibilité de définir ces propres fonction (UDF)
• Multi-plateformes
6
Groupe France Télécom
Terminologie (Ronald Bradford, MySQL conf 2007)
Database (files)
--> Database Server Instance
Database Instance (memory)
--> Database Server Instance
Schema User
--> Database
User
--> User
Table Space
--> Table Space
--> Storage Engine
7
Groupe France Télécom
Processus
Le serveur consiste principalement en 1 unique
processus:
– mysqld
• Il s'agit du serveur "multi-utilisateur".
• Toute application cliente doit se connecter au mysqld qui va créer un
nouveau thread pour gérer cette connexion.
• Il gère également d'autres thread comme la réplication par exemple.
– accompagné de script de démarrage:
• mysqld_safe (peut être remplacé par mysqlmanager),
• mysql.server et
• mysqld_multi (peut être remplacé par mysqlmanager).
Il est en charge de l'accès aux données hébergées
sur le serveur
• Plusieurs processus mysqld peuvent fonctionner simultanément sur une
même machine (il suffit qu'il ait des zone de stockage et des ports de
communication différents).
8
Groupe France Télécom
Outils
mysqladmin
– client d'administration
mysql
– client en ligne de commande
mysqldump
– sauvegarde de bases
mysqlimport
– importe des fichiers de données
9
Groupe France Télécom
Mise en oeuvre
/etc/init.d/mysqld start
$ mysqladmin -u root password NEWPASSWORD
$ mysqladmin create NEWDBNAME
$ mysql --user=myuser tp
mysql> create table test(…
…
) ENGINE=INNODB
$ mysqldump –user=myuser tp
10
Groupe France Télécom
Architecture
11
Groupe France Télécom
Architecture cluster
12
Groupe France Télécom
Storage engine
MyISAM
Inno
NDB
Transaction
-
X
X
Clé étrangère
-
X
-
Verrous
Table
Ligne
Ligne
Isolation des
transaction
-
les 4
Read commited
13
Groupe France Télécom
Expériences
14
Groupe France Télécom
Backup
15
Groupe France Télécom
Isolation
Le standard SQL définit 4 niveaux d'isolation dépendant de 3
phénomènes à éviter entre transactions concurrentes:
• dirty read:
– Une transaction peut lire des données écrites par une transaction concurrente
"non commitée".
• nonrepeatable read
– Une transaction relit une donnée qu'elle a lu et constate que cette dernière a été
modifiée par une autre transaction qui a "commité" entretemps.
• phantom read
– Une transaction ré-execute une requête renvoyant un ensemble de tuples et
constate que l'ensemble est différent du précédent.
– Il diffère du précédent car les données qui avaient déjà été lu n'ont pas changée,
par contre il y en a plus (ou moins)
16
Groupe France Télécom
Téléchargement