Documente Academic
Documente Profesional
Documente Cultură
PROGRAMMATION LINUX
'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.
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
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
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
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
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
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
OUI
OUI
En ligne
OUI
OUI
OUI
OUI
OUI
OUI
OUI
En ligne AUTO
OUI AUTO
En ligne AUTO
OUI OUI
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
OUI
NON
OUI
OUI
OUI
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
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
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
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