Mysql est un SGBD très pratique pour des bases de données

publicité
Projet Informatique
Partie Base de Données
BOUCHEROT Kevin - BOUCHER Aymeric - CAMHAJI Timothée - VIBET Frederic
SOMMAIRE
◊
◊
Première partie
3-8
I. Etude comparative des différentes SGBD sur le marché
3-5
II. Choix sgbd en fonction de l'entité M2L
6
III. protection des données
6
IV. Synthèse et choix de la SGBD
7-9
Deuxième partie
I. Modèle Conceptuel de Données (MCD), Modèle Physique de Données (MPD)
9
9
2
I. Etude comparative des différentes SGBD sur le marché
◊ Les SGBD libres disponibles
Les SGBD se singularisent dans le monde du logiciel libre. En effet, les logiciels libres sont rarement
concurrents. Il existe des logiciels libres aux fonctionnalités proches mais le public visé est en général
différent. Les SGBD libres font donc un peu office d’exception en proposant plusieurs logiciels proches en
terme de fonctionnalités et visant un public similaire.
Nous allons, dans un premier temps, examiner les SGBD libres principalement du point de vue des systèmes sur
lesquels ils peuvent être utilisés et surtout de la taille de base visée pour l'entité M2L.
◊
MySQL
MySQL, dont la dernière version stable sortie à l'heure où ces lignes sont écrites est la version 5, est
certainement la base de données libre la plus connue. Elle est en effet la plus présente dans les entreprises en
terme de part de marché. Offrant l'avantage d'être facilement configurable pour les petites bases (moins de
cinq minutes pour installer un serveur), elle supporte l'utilisation de grosses bases contenant des millions de
lignes. La gestion des grappes (clusters) est présente mais encore fortement limitée (l'ensemble du contenu des
tables doit être présent en mémoire vive). Cette architecture (toutes les données en mémoire vive) offre
certes un temps de réponse minimum, mais impose une forte contrainte. La version 5.1, réduira cette contrainte
en imposant uniquement les index en mémoire centrale.
MySQL possède plusieurs systèmes d'écriture des données. Les systèmes de fichiers sont MyIsam, InnoDB,
BDB, etc. Les fonctionnalités supportées, comme les clés étrangères ou les transactions, sont différentes en
fonction du système de fichier choisi. Dans cette étude, nous considèrerons uniquement le système de fichier
InnoDB qui assure les fonctionnalités présentées précédemment.
MySQL fonctionne sur les systèmes suivants :
 Linux
 Unix: Solaris, HP-UX, AIX, SCO
 BSD: FreeBSD
 Apple: Mac OS
 Windows
 Novell: NetWare
◊
MaxDB/SAP DB
Le SGBD MaxDB est développé par MySQL AB. Les fonctionnalités sont relativement proches de celles de la
version 5 de MySQL. Certaines fonctionnalités, comme les déclencheurs (triggers), qui auparavant n'étaient
présentes que dans MaxDB, ont été portées dans MySQL. Cette importation de fonctionnalités de MaxDB dans
MySQL est encore plus marquée dans la version 5.1en cours de développement. Il semble que, dans un futur plus
ou moins proche, la fusion des deux produits sera une réalité. MaxDB supportent les grappes.
La liste suivante est un résumé des principales différences entre MaxDB et MySQL :


MaxDB ne fonctionne pas sur toutes les plates-formes supportées par MySQL
MaxDB supporte les procédures stockées. Avec MySQL, les procédures stockées sont implémentées en
version 5. Max DB supporte aussi les déclencheurs (triggers), lesquels sont en partie implémentés dans
MySQL 5 comme nous le verrons. MaxDB contient un débogueur pour les langages utilisés dans les
procédures stockées. Il peut déclencher des sous-programmes imbriqués en cascade, et supporte les
déclencheurs multiples sur action et par ligne.
3
MaxDB fonctionne sur les systèmes suivants :
 Linux
 Windows
◊
INGRES
INGRES (la dernière version : INGRES 2006) est un SGBD relationnel qui vient d’entrer dans le monde du libre.
Cette base de données est d’une installation simple et supporte les bases allant de quelques lignes à une taille
demandant l’utilisation d’une grappe (cluster). Elle respecte la norme SQL-92 avec beaucoup d’extensions
propriétaires. Les transactions simples et distribuées sont ainsi implémentées.
INGRES fonctionne sur les systèmes suivants :
 Linux
 Unix: Solaris, HP-UX, AIX, OpenVMS
 Windows
◊
PostgreSQL
Autre grand nom de la base de données libre, PostgreSQL, dont la version actuelle est la 8.1, est une base de
données relationnel objet (Possibilité de stocker des objets dans la base). Le SGBD supporte une grande partie
de la norme SQL et offre les fonctionnalités des bases de données modernes comme les requêtes complexes,
les clés étrangères, les déclencheurs, les vues. Il supporte aussi l’objet relationnel dont les extensions sont
spécifiées dans la norme
PostgreSQL fonctionne sur les systèmes suivants:
 Linux
 Unix
 Windows
◊ Les SGBD en progression
◊
Berkeley DB
Racheté par Oracle, cette base est présente dans d’autres produits comme par exemple MySQL grâce à une
implémentation pensée pour l’intégration. De par la façon dont Berkeley DB stocke les informations (Clé, Valeur
stockée avec les types de l’application), elle est le choix idéal pour les requêtes prédéterminées portant sur des
données mouvantes tandis que les SGBD traditionnels sont plus performants sur les requêtes dynamiques
portant sur des données statiques. OpenLDAP, un serveur libre d’annuaire, utilise cette base car la structure
Clé/Valeur donne de meilleures performances.
Ce produit est décliné en deux versions :
 la version de base
 une version optimisée pour Java, utilisée par exemple par Sun dans certains de ses
 produits
Berkeley DB fonctionne sur les systèmes suivants :
 Linux
 Windows
 Et sur tous les systèmes supportant JAVA.
4
◊
Firebird
Ce challenger de MySQL, en terme de part de marché, est l'étoile montante dans le firmament des SGBD libres.
La dernière version stable à l'heure où ces lignes sont écrites est la version 1.5, la version 2.0 étant encore en
bêta. Les bases de données supportées par Firebird vont de la petite base ne contenant que quelques lignes à de
bases de taille importante en comportant plusieurs millions.
Firebird 2 possède un grand nombre de nouvelles fonctionnalités. Parmi celles-ci, les tables temporaires
alimentées par requête (derived table), une augmentation de la taille maximale des tables, une gestion améliorée
des index supprimant la limite de 252 octets, une amélioration de l'optimisation des requêtes et le support des
sauvegardes incrémentales à chaud.
La liste des fonctions supplémentaires qui seront présentes dans la version 3 est longue.
Parmi celles-ci, l'amélioration du support de la norme SQL : le SGBD supportera les requêtes récursives, la
notion de schéma et même les grappes (clusters).
Firebird fonctionne sur les systèmes suivants :
 Linux
 Unix: Solaris, HP-UX
 BSD: FreeBSD
 Apple: Mac OS
 Windows
◊
Apache DB
Le projet Derby est une base de données entièrement écrite en Java. Ce SGBD ne supporte pas la gestion des
droits utilisateurs, ni complètement les jointures externes ou encore les déclencheurs, il ne peut donc pas être
pris en compte dans ce comparatif.
Derby fonctionne sur les systèmes suivants :
 Linux
 Windows
 Et sur tous les systèmes supportant JAVA.
◊
HypersonicSQL
HypersonicSQL est un SGBD écrit en java. Il respecte l’ensemble des critères énoncés comme les transactions,
les déclencheurs, la gestion des droits des utilisateurs. Par contre, il ne supporte pas les grappes (clusters).
HypersonicSQL fonctionne sur les systèmes suivants :
 Linux
 Windows
 Et sur tous les systèmes supportant JAVA.
◊
PicoSQL
PicoSQL est un SGBD écrit dans le but de pouvoir être facilement installé et d’utiliser peu de mémoire. Il
supporte les transactions et même les vues en mise à jour. Malheureusement, la gestion des déclencheurs ainsi
que celle des droits des utilisateurs ne sont pas encore présentes.
PicoSQL fonctionne sur les systèmes suivants :
 Linux
 Windows
5
◊
Daffodil DB
Daffodil DB et One$DB, sa version libre et gratuite, contiennent les mêmes fonctionnalités. Entièrement écrit
en Java, ce SGBD est basé sur la norme SQL-99. Pour information, l’objet relationnel n’est pas implémenté dans
Daffodil DB.
One$DB fonctionne sur les systèmes suivants :
 Linux
 Windows
 Et sur tous les systèmes supportant JAVA.
◊
SQLite
SQLite est une petite librairie C qui gère un SGBD sans configuration. Le manque de fonctionnalités
importantes, comme les déclencheurs, les jointures externes, les clés étrangères ainsi que l’inexistence de la
gestion des droits utilisateurs (Grant et Revoke), fait que ce SGBD ne sera pas l’objet d’une étude approfondie.
II. Choix sgbd en fonction de l'entité M2L
◊ Pour l'entité M2L, nous avons regroupé les points les plus important afin que la base de donnée soit
parfaitement exploitable. Voici les quelques règles à respecter pour le choix de notre SGBD :

Le volume des données va augmenter considérablement (chaque base va faire entre 2 et 10Go)

Accessibilité des données à plusieurs personnes simultanément en lecture et écriture et via un site web.

Le système doit assurer la fiabilité des données : la possibilité d’exécuter des transactions4 doit être
présente.
Le système doit offrir la possibilité à plusieurs utilisateurs de manipuler les données concurremment,
c'est-à-dire qu'il doit gérer des utilisateurs différents et verrouiller les enregistrements.
Le système doit assurer la confidentialité des données par l'existence d'une gestion des droits
utilisateurs.


III. protection des données
◊ La sécurité d'une base dépend principalement de la définition des droits de chaque utilisateur. Il est
cependant possible de se prémunir contre certains types d'attaques dirigées vers un SGBD par l'utilisation d'un
pare-feu (firewall) ou des éléments réseaux empêchant l'écoute des communications, comme les commutateurs
(switches). Maintenir à jour le SGBD et le système d'exploitation en installant les mises à jour de sécurité est
indispensable afin de supprimer les risques dus aux failles. Dans tous les cas, la définition des droits des
utilisateurs est primordiale.
Ils définissent quels utilisateurs ont quels droits sur quels objets et sécurise le SGBD contre toute
manipulation malencontreuse. L’écriture de programmes, ou mieux de déclencheurs (Trigger), peut aider à
vérifier l’intégrité des données.
6
IV. Synthèse et choix de la SGBD
◊
Tableau comparatif des SGBD
Avantages
Inconvénients
- Grande base de donnée. Pour plus de 200Go et plus 300
utilisateurs, les écarts de performances sont visibles par
rapport à d’autre SGBD
Oracle
- richesse fonctionnelle
- tout est paramétrable.
- Service web
- prix élevé: environ 45000€ pour un serveur
- Administration complexe
- gourmand en ressource mémoire
- certains bug
Très puissant
MySQL
- Gratuit open source
- Ne convient pas pour de grosses bases de
- Simple d’installation et d’utilisation
données
-Fonctionnel rapidement
- sécurité moyenne
- bonne intégration dans l’environnement Apache/PHP
- pas de sauvegarde à chaud
- Service Web
- peu de richesse fonctionnelle
- Disponible seulement sur Windows
SQL
Server
- Administration aisée
- Mono-plateforme (MS windows)
- Une des bases les plus performantes sous Windows
- Depuis la version 2005, plus de prise directe sur
-Services Web
les tables système (remplacées par de vues
-Support XML
système)
- Supporte les 4 niveaux d’isolation transactionnelle de la norme - Il peut être plus « coûteux » de parcourir les
SQL
pages d’index que d’analyser la table dans son
- Compression des données
intégralité.
- Pas de java, oientation C#
◊
Résumé du tableau




Les 3 SGBD incluent le service web
SQL Server est mono plateforme, on peut donc l’éliminer
Au niveau de la performance, Oracle prend le dessus par rapport à MySql
Cependant, au niveau du prix, cela ne fait aucun doute que MYSQL est plus abordable qu’Oracle du fait
qu’il est libre.

Nous avons décidé d'exploiter le logiciel MYSQL, en effet celui ci correspond au mieux à l'attente des
utilisateurs et c'est celui qui correspond au mieux à notre cahier des charges.
7
Mysql est un SGBD très pratique pour des bases de données moyennes et donc très adaptée pour cette base de
donnée qui fait entre 2 et 10Go.
La différence de performance avec Oracle sera nulle. De plus MySQL est très simple à installer et la prise en
main est facile . La migration de la base access vers la base mysql s’est déroulée sans problème majeur grâce au
logiciel bullzip.
De part sa gratuité, et en comparaison avec oracle (45000€ environ) et mysql serveur (4000€), on peut dire que
c’est la plus abordable. De plus son espace de stockage est largement suffisant pour la base de donnée de ce
projet (3 tables) puisque ce SGBD peut fournir jusqu’à 4 gigas par table ( cela est donc suffisant pour les 2 à 10
gigas de bases de données).
On peut donc dire que mysql est le SGBD le plus adapté à notre projet et le moins coûteux en considérant le
rapport qualité prix.
8
I. Modèle Conceptuel de Données (MCD), Modèle Physique de Données (MPD)
◊ MCD
◊ MPD
9
Téléchargement