Sunteți pe pagina 1din 7

Dossier SGDB

PROGRAMMATION LINUX

Choisir sa base de donnes


La gestion du stockage de l'information a toujours t un lment critique de toute application informatique. La gestion des fichiers, la recherche de l'information a trs souvent complexifi les dveloppements. Comment choisir ? Quels critres retenir ?

'utilisation dune base de donnes a permis de simplifier et normaliser cette gestion pour les dveloppeurs. Malgr cet intrt, son utilisation a longtemps t limite aux applications critiques et complexes du fait notamment des cots induits ainsi que des comptences ncessaires linstallation et l'administration. L'installation et l'administration des bases de donnes se sont progressivement simplifies, ce qui a eu pour effet de rpandre leur utilisation, et plus rcemment l'apparition de bases de donnes Open Source a compltement dmocratis leur utilisation toutes sortes dapplications, simples ou complexes, critiques ou non critiques. Pour dfinir simplement une Base de Donnes, nous pouvons parler de collection de donnes inter relies de faon cohrente. Un Systme de Gestion de Bases de Donnes (SGBD) est un ensemble de programmes qui permettent des utilisateurs de saisir, dorganiser et de slectionner des informations dans la base de donnes. Le SGBD le plus courant est un systme de gestion de base de donnes relationnelle ou SGBDR, c'est est un logiciel capable de traiter des donnes structures (tables, lignes, colonnes) dans un contexte de concurrence d'accs. Les grandes caractristiques d'un SGBDR sont : - Indpendance face au type de stockage - Indpendance des donnes face aux applications - Accs efficace aux donnes - Gestion de l'aspect transactionnel et des accs concurrents - Manipulation des donnes simplifies (Langage SQL) - Assurance de la cohrence des donnes - Scurit physique (Reprise cohrente en cas d'incident) - Scurit logique (Gestion des droits, limitation daccs, etc.) Le Langage SQL permet de dialoguer avec un SGBDR. Le succs du langage SQL est d essentiellement sa simplicit dutilisation et au fait quil sappuie sur le schma conceptuel pour noncer des requtes en laissant le SGBD responsable de la stratgie dexcution. Ce langage permet d'effectuer diverses oprations comme la cration, l'extraction, la modification, la suppression, la fusion, etc., sur des collections de donnes. Le langage SQL sera normalis cinq reprises (SQL 86, SQL89 SQL 2, SQL 3, SQL 2003).

MS SQL sont les distributions les plus simples installer. De ce point de vue, MySQL a un net avantage travers les packages de type Wamp ou Lamp qui associent, en plus du serveur de bases de donnes MySQL, un serveur apache et les bibliothques PHP. Ce type de package le rend trs attractif pour un dveloppeur qui a choisi ce langage. Les SGBDR historiques sont plus complexes installer en fonction de la plate-forme choisie et demandent des connaissances pralables plus importantes.

Les SGBDR de notre tude


Les SGBDR abords dans cette article sont IBM DB2 V9, Oracle 10g, Sybase ASE 15 et Microsoft SQLServer 2005, MySQL v5.0 et PostgreSQL v8. Hormis Microsoft SQL Server, disponible uniquement sur Windows, les autres diteurs proposent des distributions sur les plates-formes les plus utilises (Windows, AIX, HPUX, Solaris, GNU Linux, etc.). Ces distributions sont disponibles soit sous forme de binaires, soit sous forme de sources recompiler. Actuellement, plus de 50 % des serveurs supportant des bases de donnes utilisent Windows. Linux connat une forte progression par rapport UNIX. Dans les SGBDR pris en compte pour cet article, les bases Mysql, PostgreSQL et

Dvelopper avec un SGBDR


Tous les SGBDR sont capables de dialoguer avec les langages de dveloppement les plus courants (C, C++, PHP, Java. .NET, Perl, etc.). Le dialogue avec la base de donnes seffectuera travers des requtes SQL dynamiques ou encapsules dans des objets compils (procdures stockes, fonction etc.). Afin de pallier une carence de la norme SQL, chaque diteur a depuis toujours dvelopp un langage complmentaire (SQL tendu) permettant notamment de grer la notion de variable et de contrle de flux (test, boucle ). Lutilisation des objets compils comme les procdures stockes ou les

Programmez! - N98

32

JUIN

2007

Dossier SGDB
triggers permettant de faciliter la maintenance, la scurit et la performance de traitements critiques, Par contre leur utilisation lie fortement lapplication lditeur du SGBDR. En effet, la syntaxe dcriture dun objet compil nest pas compatible dun diteur a un autre (hormis entre Sybase et MS SQL qui utilisent le mme langage tendu, ce qui permet un certain niveau de compatibilit). Le tableau ci-dessous liste les fonctionnalits de base ncessaires pour un dveloppement et le niveau de compatibilit avec la norme SQL
DB2 Oracle Sybase SQL SERVER MySQL PostgreSQL

PROGRAMMATION LINUX

compils est trs courante. Il est noter que les SGBD Open Source sont ceux qui suivent au plus prs les normes SQL (PostgreSQL a implment une partie de la norme Sql 2003) MySQL a une approche spcifique, reposant sur plusieurs moteurs de stockage ; chacun rpondant des spcificits particulires et optimis pour un mode d'utilisation (non transactionnel avec Myisam, transactionnel avec Innodb etc).

Unicode
Le stockage classique de jeux de caractres de type latin-1, cp850 ou ISO 8859-1 se fait sur 1 octet, ce qui ne permet pas de stocker des jeux de caractres complexes. Le standard Unicode est un mcanisme universel de codage de caractres. Il dfinit une manire cohrente de coder des textes multilingues et facilite lchange de donnes textuelles. Obligatoire pour la plupart des nouveaux protocoles de lInternet, il est mis en uvre dans tous les systmes dexploitation et langages informatiques modernes, Unicode est la base de tout logiciel qui veut fonctionner aux quatre coins du monde. Les SGBDR ont, bien sr, implment diffrents niveau les normes permettant de grer l'unicode ( UCS-2, UCS-4, UTF-8, UTF-16 ).
DB2 Oracle Sybase SQL SERVER MySQL PostgreSQL

Norme SQL SQL Etendus

SQL92 et SQL99 SQL PL

SQL92 SQL92 et SQL99 et SQL99 Transact PL/SQL SQL Riche OUI OUI OUI OUI OUI OUI NON OUI

SQL99 Transact SQL Riche OUI OUI OUI OUI OUI OUI OUI OUI

SQL92 et SQL99 SQL moyen OUI OUI OUI OUI OUI OUI OUI OUI sur les moteurs Innodb et Ndb Cluster

En partie SQL2003 PL/pgSQL Riche OUI OUI OUI OUI OUI OUI OUI OUI

Richesse du Trs riche Trs riche langage tendu Transaction OUI OUI Procdures OUI OUI stockes Trigger OUI OUI Curseurs OUI OUI Vues OUI OUI Union OUI OUI Fonctions OUI OUI (UDF) Contraintes OUI OUI

UTF-8 UTF-16 UTF-32 UCS-2 UCS-4

OUI

OUI OUI

OUI OUI

OUI OUI

OUI OUI

OUI

OUI

Les SGBD sont aujourdhui des produits matures et les fonctionnalits de base pour le dveloppement actuellement mises en uvre par les diteurs sont sensiblement quivalentes. Les diteurs historiques ainsi que PostGreSQL proposent un langage tendu trs complet. MySQL propose un langage tendu moins riche, mais suffisant. Il faut galement noter que certaines fonctionnalits sont, relativement aux diteurs historiques, trs rcentes sur le SGBD MySQL. Par exemple, les procdures stockes ou triggers ne sont disponibles que depuis la version 5 et sont actuellement encore peu implmentes, alors que sur tous les autres moteurs, lutilisation des objets

Lutilisation du stockage unicode se fera essentiellement travers les types NCHAR et NVARCHAR. Tous les SGBDR sont capables diffrents niveaux de traiter lUNICODE. La gestion du "caractre set" et du langage peuvent tre gres travers la notion de collation au niveau de la colonne pour MySQL et MS SQL Server. Les autres SGBD grent ces paramtres au niveau de l'instance ou au plus fin au niveau de la base.

XML
XML (eXtensible Markup Language) est une norme d'change de documents informatiss et est rapidement devenu un standard pour structurer les documents transfrer et changer travers un rseau. XML est le standard mergent pour l'intgration de donnes en SOA (Architecture Oriente Services). Le SGBDR nest pas forcment le moteur de stockage idal pour les documents XML auquel nous prfrerons des bases "natives" de type hirarchique, explicitement construites pour stocker du XML. Toutefois, les bases relationnelles proposent deux solutions pour stocker les documents XML. La premire stocke le document en bloc dans le champ dune table tandis que la seconde extrait linformation du document pour la dcomposer et la ranger dans diffrentes tables et champs. La premire solution prserve lintgrit du document, par contre, elle rend difficile la manipulation des donnes l'intrieur du document. La seconde simplifie la manipulation des donnes, mais elle ne permet pas de conserver le document dans sa forme originale et oblige donc un mapping de schmas et des requtes complexes pour les restituer. Si nous voulons conserver lintgrit du document et faciliter la manipu-

Programmez! - N98

33

JUIN

2007

Dossier SGDB
Bases propritaires DB2

PROGRAMMATION LINUX

permettant dadapter le paramtrage de linstance dans le but dobtenir de bonnes performances.


Oracle Sybase SQL SERVER

Bases propritaires Optimiseur statistique Cache de donnes Cache de requtes Cache de procdures Forcer l'optimiseur Types dindex Prepare statement Multi-processeurs Version 64 bits Rpartition des objets (Tablespace, devices, etc.)

DB2 OUI OUI OUI OUI OUI Btree OUI OUI OUI OUI OUI

Oracle OUI OUI OUI OUI OUI Btree, Bitmap OUI OUI OUI OUI OUI

Sybase OUI OUI OUI OUI OUI Btree,Hash OUI OUI OUI OUI

SQL Server OUI OUI OUI OUI OUI Btree OUI OUI OUI OUI OUI OUI Lecture en attente sur verrouillage (SQL Server 2005, Lecture image avant avec "snapshot") ligne OUI OUI

lation nous serons par consquent obligs, dans un moteur relationnel, deffectuer un double stockage coteux. Une fois les documents stocks, il faudra pouvoir manipuler les formats XML. Pour cela nous pourrons utiliser XQUERY qui est un langage de manipulation et d'interrogation d'un document XML. C'est en quelque sorte aux donnes XML ce que SQL est aux donnes relationnelles. Trs fortement li XPath, il s'en diffrencie par sa plus grande richesse fonctionnelle.
Bases propritaires DB2 Oracle Sybase SQL SERVER MySQL PostgreSQL

Tables en mmoire Paralllisme Verrouillage

OUI (Caches nomms) OUI OUI OUI Lecture en Lecture en attente sur Multi-versioning attente sur verrouillage verrouillage

Granularit du verrouillage ligne Assistant de performance OUI NON NON NON NON Outil client MySQL avec option --xml OUI NON NON NON NON
Bases Open sources

OUI OUI

Stockage en base non structur OUI Stockage en base structur OUI Stockage format natif OUI Licences OUI pour le en plus format natif XQUERY / Xpath OUI Import / export OUI

ligne OUI (option payante) OUI

ligne NON OUI

OUI OUI NON NON OUI OUI

OUI OUI NON OUI OUI OUI

OUI OUI NON NON OUI OUI

Limitation de ressources au niveau de l'utilisateur

MySQL

PostgreSQL

Optimiseur statistique Cache de donnes Cache de requtes Cache de procdures Forcer l'optimiseur Types dindex Prepare statement Multi-processeurs Version 64 bits Rpartition des objets (Tablespace, devices, etc.) Tables en mmoire Paralllisme Verrouillage Granularit du verrouillage Assistant de performance Limitation de ressources au niveau de l'utilisateur

OUI OUI OUI 5.1 OUI Btree, Hash,Rtree OUI OUI OUI OUI

OUI OUI OUI NON OUI Btree, Rtree, Hash OUI OUI OUI OUI

La nouvelle version DB2 v9, avec sa technologie Hybride (relationnel et XML) offre un stockage natif de documents XML. Tous les acteurs historiques sont capables de grer des documents XML. Les SGBD Open Source sont actuellement en retard sur ce sujet.

La performance
Pour des applications standard sur une architecture correctement dimensionne, la performance dpendra essentiellement de la qualit du dveloppement et du paramtrage du serveur. Hormis quelques architectures spcifiques, la performance n'est pas l'argument principal pour le choix dun SGBDR. Les benchmark de type TPCC ou TPCH (http://www.tpc.org/) peuvent donner un certain moment des lments de performance pour un SGBDR, mais trs souvent chaque benchmark est effectu en fonction de critres difficilement comparables avec d'autres rsultats (version du serveur, architecture matrielle, etc.) Le tableau ci-dessous compare un certain nombre de fonctionnalits

OUI (engine MEMORY) NON Version 5.1 OUI Multi-versioning Multi-versioning Ligne, page, table (en fonction ligne des moteurs) NON NON OUI OUI

Sybase et SQL Ser ver (sans lutilisation des snapshot SQL 2005) offrent un systme transactionnel sans un systme de lecture "multiversionning", ce qui a pour consquence de rendre plus dlicat le dveloppement et la gestion des accs concurrents (risque plus important de verrouillage et de deadlock etc.).

Programmez! - N98

34

JUIN

2007

Dossier SGDB
Des outils d'assistance la performance apparaissent sur DB2, Oracle et SQL Server. Ces outils apportent des recommandations sur le paramtrage du serveur, l'indexation, etc. Pour l'instant, la plupart de ces conseils proposs par ces outils demandent une analyse fine et ne peuvent pas tre appliqus automatiquement. Hormis les assistants de performance, les fonctionnalits demandes pour rpondre aux besoins de performance sont disponibles sur tous les SGBDR tudis. Par contre, certaines de ces fonctionnalits comme la gestion des caches ou les limitations de ressources sont beaucoup moins sophistiques sur les bases Open Source. Malgr la mise en uvre de toutes ces fonctionnalits, lapplication peut connatre des problmes de performance. Il est par consquent important de disposer d'outils permettant d'identifier et de diagnostiquer les problmes rencontrs. Ces problmes sont, dans une forte proportion, des requtes mal optimises, et parfois un mauvais paramtrage de linstance. Pour un dveloppeur, il est trs important de comprendre certains mcanismes de fonctionnement du SGBD comme la gestion des transactions et le verrouillage. La prise en compte, ds le dpart, de ces mcanismes, est indispensable pour garantir un bon niveau de performance pendant toute la dure de vie du projet. En effet, au dpart du projet, hormis lorsque lon fait des tests de monte en charge, ce qui est plutt rare et coteux, les requtes sexcutent rapidement, compte tenu du faible nombre daccs concurrents et de la faible volumtrie, mme lorsquelles sont mal crites. Cest trs souvent lorsque le projet rencontre le succs, avec notamment une forte augmentation de la volumtrie et du nombre daccs concurrents, que lon prend conscience du fait des problmes de performance rencontrs, que les requtes navaient pas initialement respect un certain nombre de principes en phase avec les mcanismes de fonctionnement des SGBD. Pour ces dernires il est important didentifier leur plan dexcution (Explain PLAN), le nombre dE/S effectus, ou leur temps dexcution. Chaque diteur propose ses propres outils qui peuvent tre plus ou moins riches et conviviaux.

PROGRAMMATION LINUX

Outils de tuning
DB2 db2expln (Tuning de code SQL, analyse comportement optimiseur) Visual explain, database monitoring DB2 Query patroler statspack (Indicateurs de performance dune instance un moment donn) explain, tkprof (Tuning de code SQL, analyse comportement optimiseur) ADDM : regroupe le management pack et le tuning pack sp_sysmon : Indicateurs de performance dune instance un moment donn) showplan, statistics io/time :Tuning de code SQL, analyse comportement optimiseur Monitor Historical Server (Collecte des indicateurs de performance et historisation) Les tables MDA (12.5.1) Profiler :Tuning de code SQL, analyse comportement optimiseur Perfmon : outil gnrique de performance Windows, qui comportent un grand nombre de compteurs SQL Server. DTA : database tuning advisor : permet de mmoriser de l'activit et de simuler des cas de figures Showplan, statistics I/O Explain (Tuning de code SQL, analyse comportement optimiseur) Journal des requtes lentes et des requtes qui n'utilisent pas les index explain (Tuning de code SQL, analyse comportement optimiseur)

Les bases ouvertes (MySQL et PostgreSQL) ont des outils ou commandes minimalistes, mais nanmoins suffisants. Les autres diteurs ont de nombreux outils, souvent trs riches fonctionnellement, mais pas toujours trs simples implmenter et utiliser, hormis loutil "profiler" de SQL Server qui apparat comme tant l'outil le plus simple installer et utiliser.

L'administration
La performance et la disponibilit des bases de donnes dpendent galement des tches d'administration qui sont rgulirement effectues. En plus des sauvegardes qui apparaissent comme la tche d'administration la plus impor tante, il est impor tant, en fonction des besoins, de rorganiser, vrifier et optimiser les accs aux donnes. Ces tches ont tendance s'automatiser et deviennent progressivement transparentes pour le DBA. Dans un souci de disponibilit de la base, on va demander ce que les actions d'administration soient les moins bloquantes possibles, et puissent tre effectues dynamiquement. Les sauvegardes peuvent se drouler suivant trois techniques diffrentes : - Base ferme : le serveur de base de donnes doit tre arrt et une sauvegarde de tous les fichiers physiques est effectue. Mthode qui fonctionne dans tous les cas quel que soit le SGBDR. Attention ne pas oublier de sauvegarder tous les fichiers utiles pour la base de donnes. - Base ouverte : la sauvegarde est effectue travers des commandes

Oracle

Sybase

SQL Server

MySQL PostgreSQL

Programmez! - N98

35

JUIN

2007

Dossier SGDB
au niveau du SGBDR, sans interrompre l'activit sur la base. La sauvegarde base ouverte permet de travailler sur des bases disposant de peu ou pas de plage disponible pour les tches d'administration (Accs 24/7, international, etc.) - Par Clich : la base est "gele" au niveau mise jour le temps de la recopie des donnes mais reste accessible en lecture. Cette solution est souvent couple avec un systme de "snapshot" propos par les fabricants de baie de disques. Essentiellement utiliss pour des grosses volumtries. Une fois la technique choisie, il faut distinguer trois modes de sauvegarde : - FULL : sauvegarde la base complte - TRANSACTIONNEL : sauvegarde du journal de transaction - DIFFERENTIEL : sauvegarde de ce qui a t modifi depuis la dernire sauvegarde complte. L'avantage par rapport a une sauvegarde incrmentale, c'est que lorsque l'on recharge une base il suffit de recharger la base complte suivie de la dernire sauvegarde diffrentielle
DB2 Oracle Sybase SQL Server MySQL PostgreSQL

PROGRAMMATION LINUX

fait, les outils proposs sont divers et varis et dans certains cas peu performants sur de gros volumes. PostgreSQL propose un systme simple et moins performant sur les gros volumes compar Oracle, DB2, Sybase ou MS SQL Server. Tous les diteurs proposent des outils permettant d'administrer les serveurs de base de donnes travers des interfaces graphiques.

Outils d'administration
DB2 Oracle Sybase SQL Server MySQL PostgreSQL Centre de contrle Entreprise Manager Sybase Central Sql Advantage SQL Server management Studio MySQL administrator MySQL Query Browser Projet open source : phppgadmin

La gestion de la scurit
Ce que l'on demande un SGBDR c'est de pouvoir assurer la scurit d'accs aux donnes en proposant une gestion de l'identification, des droits sur les donnes et du cryptage de l'information. Quand on parle de cryptage de l'information, cela se situe gnralement soit au niveau de la connexion pour scuriser les changes avec le serveur de base de donnes, soit au niveau de la base elle-mme en scurisant les donnes. Dans ce dernier cas, le cryptage sera assur soit en utilisant directement au niveau de l'application des fonctions de cryptage/dcryptage, soit en utilisant une fonctionnalit qui propose un cryptage automatique au niveau de la base en utilisant des systmes de certificat. Des bases comme DB2, Oracle et Sybase proposent des systmes de cryptage directement au niveau de la base, les autres SGBD proposent du cryptage uniquement travers l'utilisation de fonctions.
DB2 Oracle Sybase SQL Server MySQL PostgreSQL

Vrification de bases Ordonnanceur de tches intgr

OUI

OUI

En ligne

OUI

OUI

NON Utilisation du scheduler OS AT, CRON etc. OUI AUTO

OUI

OUI

OUI

OUI

OUI

Rorganisation OUI des tables et index Calcul des OUI statistiques

En ligne AUTO

OUI AUTO

En ligne AUTO

OUI OUI

Sauvegarde base ouverte

OUI

OUI

OUI

- MyIsam : Via replication - Innodb : Outil HotBackup de OUI la socit Innodb (licence supplmentaire) - NDB cluster : OUI OUI OUI OUI NON

OUI

Sauvegardes transactionnelles Sauvegardes diffrentielles Compression des fichiers de sauvegarde la vole Sauvegarde sur plusieurs fichiers Clich (*)

OUI OUI

OUI OUI

OUI NON

OUI NON

OUI

OUI

OUI

NON

OUI

OUI

OUI OUI

OUI OUI

OUI OUI

OUI OUI

NON OUI

NON NON

Gestion des utilisateurs au niveau OS Gestion des utilisateurs Au niveau SGBD Gestion des droits sur les objets Gestion des rles et des groupes Interfaage avec un annuaire LDAP Outil d'audit

OUI

OUI

NON (Hormis windows) OUI

OUI

NON

OUI

OUI

OUI

OUI

OUI

OUI

OUI OUI OUI

OUI OUI OUI

OUI OUI OUI

OUI OUI OUI

OUI NON NON

OUI OUI OUI

Toutes les bases tudies proposent les outils ncessaires aux diffrentes tches dadministration. Sur les SGBD historiques, ces traitements sont plus rapides et moins bloquants sur des volumtries importantes compar aux outils des bases Open source. Le systme qui assure la sauvegarde complte propose par Sybase et MS SQL Server apparat comme tant le plus simple mette en uvre. Pour MySQL la multiplication des moteurs a tendance complexifier les tches d'administration, notamment au niveau des sauvegardes. De ce

OUI

OUI

OUI

OUI (log de requtes), mais OUI fort impact sur OUI les performances

Comparer aux autres SGBDR, MySQL na pas pour linstant toutes les fonctionnalits attendues pour faciliter la gestion des accs. Cela devrait se corriger en partie sur les versions prochaines. Oracle propose les outils les plus sophistiqus pour protger et tracer tous les accs la base de donnes (gamme de produits " Vault " etc.)

Programmez! - N98

36

JUIN

2007

Dossier SGDB
La haute disponibilit
L'internationalisation des accs et la possibilit d'accs 24/24 via Internet conduit de plus en plus mettre en uvre des solutions de haute disponibilit. Pour rpondre ce besoin, les diteurs de base de donne proposent des solutions cluster. Le principe du cluster est de proposer plusieurs points d'accs aux donnes (nuds). Si un nud est perdu, les utilisateurs pourront continuer accder aux donnes via les autres nuds disponibles. Suivant les diteurs, nous seront face une organisation de type ACTIF/ACTIF ou ACTIF/ PASSIF. Dans le cas d'une organisation ACTIF / PASSIF, le nud PASSIF est considr comme un nud de secours pour une application et sera activ uniquement lors de la perte du nud ACTIF. Dans le cas d'une organisation ACTIF / ACTIF, les accs aux donnes pourrons se faire travers les 2 nuds simultanment (cette solution pour avantage de rpartir la charge sur les diffrents nuds pour une mme application) Deux architectures types se dgagent par rapport aux solutions tudies. La premire architecture appele "share nothing" s'articule sur des noeuds compltement indpendants les uns des autres. Chaque nud a ses propres ressources CPU, mmoire, rseau et disque. Implmente par les solutions DB2 et MySQL La deuxime architecture appele "Share disk", met en commun les ressources disques, cela veut dire que 2 nuds peuvent accder en mme temps une mme ressource disque. Cette solution oblige voir des disques partags entre ces diffrents noeuds travers des baies SAN, NAS ou autres. Le modle Shared disk" est implment en mode ACTIF / ACTIF, par la solution Oracle RAC et dans la future version Sybase ASE
Bases propritaires DB2 Oracle Sybase SQL Server

PROGRAMMATION LINUX

noeud sera considr comme ACTIF et pour une autre application ce mme nud sera considr comme PASSIF.

La rplication
Les systmes de rplication permettent de dupliquer des informations entre plusieurs bases de donnes. Fortement utilise dans les annes 90 sur des architectures distribues afin de contourner les faibles dbits des rseaux, la rplication est de nos jours plus souvent utilise afin d'alimenter des serveurs de secours, rpartir des traitements en sparant notamment les traitements de type transactionnel (TP) et dcisionnel, ou rpartir la charge en lecture.
Bases propritaires DB2 Oracle Sybase SQL Server

Outil de rplication intgr Outil de rplication demandant une licence Rplication partielle Rplication htrogne
Bases Open sources

OUI OUI OUI OUI WebSphere Advance Replication Information NON Integrator Replication server OUI OUI OUI OUI DB2 -> autre Autre -> Sybase MSSQL -> autre Autre -> DB2 Oracle -> autre Sybase -> autre Oracle -> MSSQL
MySQL PostgreSQL

Outil de rplication intgr Outil de rplication demandant une licence Rplication partielle Rplication htrogne

OUI NON OUI NON

NON Projet open source externe ( Slony ) NON NON

Type Couche cluster obligatoire Le basculement vu par le client

ACTIF / ACTIF ACTIF / ACTIF ACTIF / PASSIF ACTIF / PASSIF Cluster standard CRS ou cluster Cluster du march standard du standard Cluster Windows march du march manuel TAF Par codage au Par codage au niveau de niveau de l'application l'application
MySQL PostgreSQL

Sybase et Microsoft sont les diteurs qui apportent le systme de rplication le plus sophistiqu et le plus utiliss en production. Par ailleurs, MySQL apporte un systme de rplication simple, robuste et facile mettre en uvre, ce qui sduit de plus en plus d'utilisateurs avec essentiellement un usage en serveur de secours ou pour faire une rpartition de charge

Bases Open sources

Quel SGBD pour quel type de projets ?


ACTIF / ACTIF Utilisation du moteur Ndb Cluster manuel ACTIF / PASSIF Projets open source (Slony) Transparent via le projet open source PgPool

Type Couche cluster obligatoire Le basculement vu par le client

En matire de solution ACTIF / ACTIF, Oracle est le leader avec une solution prouve qui est utilise en production depuis plusieurs annes sur systme ouvert. Avec son moteur NdbCluster, MySQL apporte une solution faible cot de type ACTIF / ACTIF. Mme si cette solution est encore " jeune " et impose actuellement un certain nombre de contraintes d'utilisation, elle pourrait devenir progressivement une solution de plus en plus intressante. DB2 apporte galement sa propre solution ACTIF / ACTIF que l'on rencontre surtout sur systme propritaire. La solution cluster de Microsoft est une architecture largement utilise et prouve. Afin de pouvoir utiliser tous les nuds y compris les nuds PASSIF, les applications seront rparties travers des services cluster diffrents. Dans ce cas nous pourrons dire que pour une application un

Si on classifie de manire arbitraire les applications en petites, dpartementales (volumtrie > 5 Go et < 50 Go et utilisateur > 10 et < 100 ) et entreprise, et si on regarde les fonctionnalits disponibles sur les diffrents SGBD tudis il apparat que tous les SGBD sont capables de rpondre des architectures dpartementales. Pour de " petites applications ", du fait du cot et de la simplicit de mise en uvre les bases Open Source MySQL et PostgreSQL peuvent savrer tre un excellent choix. Pour des applications entreprise, les bases historiques que sont Oracle, DB2, SQL Server et Sybase savrent tre de bons choix, et notamment du fait quactuellement ladministration, la scurit et la gestion des ressources des bases Open source noffrent pas toutes les facilits et les performances attendues. La rapide progression dun SGBDR comme MySQL, si celle-ci se confirme sur les deux prochaines annes, nous laisse penser que si telle est la volont de la socit MySQL AB, le SGBD MySQL pourrait progressivement tre de plus en plus utilis pour des applications de type entreprise. Notons que cette progression en terme dextension, dapplications de type dpartemental vers des applications de type entreprise (forte criti-

Programmez! - N98

37

JUIN

2007

Dossier SGDB
cit en termes de volumtrie, daccs concurrents, de disponibilit etc.), a t constat ces dernires annes pour le SGBD MS SQL Server. Il est probable que lamlioration de la fiabilit du systme dexploitation Windows, lamlioration de la robustesse du moteur de bases de donnes SQL Server, associs lapport de nouvelles fonctionnalits ont majoritairement contribu cette progression. Pour des applications Web, les bases de donnes les plus utilises sont MS SQL Server et MySQL. Les critres de choix sont essentiellement le cot et la facilit d'installation, (notamment a travers les packages de type WAMP et LAMP pour MySQL) Actuellement, tous les diteurs historiques, dans le but de permettre leurs clients dinitier des projets moindre cot, proposent une version gratuite, limite en terme dutilisation et correspondant des configurations de faible importance : - Oracle 10g Express Edition, (limite 4 Go sur disque, 1Go de mmoire, 1 CPU en environnement Linux/Windows), - DB2 Express-C (limite 4 Go de memoire, 2 CPU), - Sybase ASE Express Edition (limite 5Go sur disque, 2Go de mmoire, 1 CPU en environnement Linux), - SQL Server Express Edition (limite 4Go sur disque, 2Go de mmoire, 1 CPU). Loffre Open source, de par son prix, est une solution sduisante, mais qui dit open source ne dit pas forcment gratuit pour autant, en fonction de l'usage qui est fait du programme et suivant les codes qui dictent les

PROGRAMMATION LINUX

rgles de l'open source. En effet, si vous dveloppez par exemple une application qui utilise MySQL et que vous vendez votre solution au lieu de la proposer en Open source, vous devez payer une licence commerciale MySQL AB. La traduction officielle en franais de la faq sur la licence GPL se trouve l'adresse : http://www.gnu.org/licenses/gplfaq.fr.html Comme nous le disions, par son cot et sa facilit d'installation, les bases Open source sduisent de plus en plus d'entreprises, y compris les grands comptes. Grce sa politique commerciale MySQL arrive en tte de la prfrence des bases Open source, mme si ce jour certaines fonctionnalits communes apparaissent comme plus riches sur PostgreSQL (le langage procdural PL / pgSQL par exemple ) Du fait que cette base constitue de plusieurs moteurs est proprit en grande partie de la socit MySQL AB, elle apporte une certaine garantie sur la prennit du produit. Pour PostgresSQL, l'approche est diffrente, car ce moteur de base de donnes repose sur une communaut, ce qui ne va pas forcment rassurer les grandes entreprises, sauf si celles-ci dcident d'investir dans la communaut ou la connaissance des sources afin de garantir une certaine prennit du produit. s Yves MOULIN
Directeur Technique Cap Data Consulting - Spcialiste des bases de donnes CONSEIL, SERVICE, FORMATION, INFOGERANCE SGBD www.capdata.fr

Matriser les relations dveloppeur - base de donnes


Mme pour celles qui ne sont pas qualifies dapplication de gestion, de nos jours la plupart des applications vont adresser la problmatique de gestion de donnes. Cest dire combien le dveloppeur est amen ctoyer quotidiennement les bases de donnes.

ar ailleurs, ces dernires annes ont connu lmergence de mthodologies agiles qui ont contribu modifier les relations historiques entre le dveloppeur et le DBA. Il y a encore quelques dcennies, la base de donnes tait considre comme un concept monolithique au travers duquel lensemble des dveloppeurs dun projet recevait la vision unique du DBA, matre absolu des modles et du jeu de test. On assiste aujourdhui, et aussi grce la puissance matrielle de plus en plus disponible sur les PC, un foisonnement dinstances et schmas qui sont des replica dun matre unique de la structure et du contenu des donnes du projet. Ainsi sur le seul primtre de dveloppement, donc sans parler des phases de qualification et de production, on retrouve plusieurs configurations qui combinent les lments suivants selon la nature et la taille du projet : La base de donnes du dveloppeur : vritable bac sable du dveloppeur, elle lui permet dtre isol du reste du groupe et deffectuer des modifications sans impact sur les autres membres de lquipe. Seules les modifications juges concluantes seront promues sur la base de donnes du projet ; La base de donnes du projet : cest la rfrence la fois de la structure et de contenu tant sur les donnes de rfrence que du jeu des-

sai. Elle est sous la responsabilit dun DBA ou ventuellement un dveloppeur avec des connaissances de base de donnes. Elle alimente rgulirement les bases de donnes des dveloppeurs du projet et aussi celle dintgration continue ; La base de donnes dintgration : cest dans cette base que sexcuteront les tests prvus dans le cadre de lassurance qualit. Il nest pas rare que cette base de donnes soit de la responsabilit des DBA de production. La responsabilit de ces diffrentes bases de donnes est partage entre le DBA et le dveloppeur. Le dnouement de cette coresponsabilit dpend trs souvent de la relation entre le DBA et le dveloppeur. Cette relation est quant elle le fruit de la culture et de lexistant de lentreprise. La culture mainframe a gnralement dbouch sur le DBA perch dans sa tour divoire et qui dcide de tout sur " ses " bases de donnes. A linverse, ladoption des " petits " systmes a largement contribu avoir des DBA accessibles et proches des dveloppeurs. Le contexte " tour divoire ", surtout lorsque les infrastructures sont mutualises, conduit frquemment des relations conflictuelles entre le DBA et le dveloppeur. Ces conflits sont lis deux objectifs antagonistes : le DBA veut fournir une plate-forme qui respecte la qualit de

Programmez! - N98

38

JUIN

2007

S-ar putea să vă placă și