Solutions de Bases de Données en ligne.
De nombreux SGBD (Systèmes de Gestion de Base de Données) sont disponibles sur le marché, partant des SGBD gratuits jusqu'aux SGBD destinés spécialement aux professionnels, comportant de plus nombreuses fonctionnalités, mais plus coûteux. Cette présentation a pour but de vous aider à faire votre choix parmi les différentes possibilités en décrivant et comparant les différentes solutions de SGBD et de serveurs web. Il existe bien entendu d'autres produits ; ici ne sont répertoriés que les plus courants.
Que doit-on attendre d'une solution de base de données en ligne ?
Tout d'abord qu'elle soit performante : c'est à dire qu'elle puisse fonctionner avec un nombre d'utilisateurs donnés (selon les besoins) et avec un volume de données approprié à votre application.
Ensuite qu'elle soit accessible : qu'elle puisse être administrée souplement et que sa prise en mains soit suffisamment simple pour le personnel la gérant.
De même elle doit garantir la sécurité des données : l'intégrité structurelle et la confidentialité.
Enfin elle doit être pérenne et si possible permettre la portabilité des données et des stratégies.

Comme nous le verrons, un système d'information est composé d'une suite de briques logiciels. Et chacun de ces éléments doit respecter ces contraintes afin de ne pas tirer tout le système vers le bas.
Quelle est la composition d'une solution de base web ?
Une base de données doit être installée sur un ordinateur équipé d'un OS (Système d'exploitation). Pour la mettre en ligne, il faut un serveur web lui même reposant sur un OS. Et pour faire le lien entre la base de données et le serveur web il faut un module applicatif (exemple : PHP).

 Ou 

Quel est l'intérêt du SQL pour une base de données ?
La norme SQL (Structured Query Language) décrit une application de l'algèbre de Codd. Cette norme (ISO/ANSI) décrit un monde où les données sont uniques, structurées, sécurisées et où tout peut être retrouvé par des raisonnements logiques.
Les bases de données s'appuient toutes plus ou moins sur le standard SQL. Leur degré de compatibilité avec ce standard est donc un critère de choix.

Voici donc un rapide comparatif de ces composants. Cette liste n'est pas exhaustive, seuls les principaux acteurs seront étudiés.
Les solutions "Open Source" (logiciel dont le code source est accessible et donc modifiable en fonction des besoins) côtoient les produit commerciaux, sans complexe quant à leur qualité.
Paradoxalement le fait d'être en "Open Source" permet souvent une plus grande confidentialité des données ! En effet des milliers d'utilisateurs participent bénévolement au développement et représentent une mine de propositions et de solutions inégalables. (Ce qui d'ailleurs peut également être une source de chaos pour les gestionnaires de ces produits qui doivent gérer cet amas d'informations.) De plus ils alimentent plus facilement les forums d'entraide sur leur logiciel libre favori. Si ces solutions sont gratuites pour les particuliers, il existe toujours une structure commerciale pour les usages professionnels qui réalisent des prestations adaptées.
Les systèmes d'exploitation.
Linux Windows NT/200x Unix Solaris
Répartition du Parc mondial de serveurs en 2000 (par nom de domaine)* 30% 28% 13%
Piratage sur l'ensemble du parc mondial en 2001 21% 59% 8%
+ Stabilité granitique
Multi-utilisateur
Economique : même sur trois ans, un système Linux coûte deux fois moins cher qu'un Windows et sept fois moins cher qu'un Unix.
(licence gratuite, économique en matériel et en maintenance)
Facilité de prise en main
Environnement complètement graphique
Stable comme son cousin Linux
- Prise en main "athlétique" (pour ne pas dire laborieuse)
Requiert une formation.
Gourmand en ressources machine
Instable (la version 2000 a grandement corrigé ce problème)
Très cher !
* Les autre OS (représentant les 28% restant) sont de type unix ce qui fait environ un total de 66% de systèmes de type unix contre 24% de Windows.

Il est à noter que Microsoft a banalisé les "plantages" et autres "écrans bleus". Une installation facile ne justifie pas tout. De plus, les "services pack" sont laborieux à installer, même pour des experts. Windows 2003 vient de sortir, l'objectif de ce nouvel opus est de mieux corriger les travers des précédentes versions (instabilité, sécurité, lourdeur).
Unix et Linux sont plus difficiles à prendre en main. La première configuration d'une machine Linux est une tâche ingrate. Cependant, une commande unique permet de faire les mises à jour de sécurité, on peut même l'automatiser ! Une fois installé, un serveur Unix ou Linux sait se faire oublier. Cependant la moindre évolution de services peut se transformer en bras de fer pour un néophyte.
Les serveurs web.
Apache IIS (Microsoft)
Part de marché en 2003 64% 23%
Nombre de piratages dans le monde en 2001 12 000 17 000 000
Windows Il existe des packs pré-configurés. Fourni en standard
Unix, Linux Fourni en standard Non fourni
+ Peut s'installer sur TOUT les OS (connaissance technique requise !).
Robuste et fiable
gratuit et "Open Source" ainsi que la majorité de ses modules.
Les communautés Internet sont très réactive aux questions de tous niveaux.
Facile à prendre en main (à condition de rester dans le monde Microsoft)
Complet dans ses services par défaut (FTP, SMTP, NNTP).
- Mise en place laborieuse (pas d'interface graphique fourni en standard)
Peu de support technique de type "hot line" (certains modules sont payants et comprennent donc un support technique et commercial)
Sécurité. Il faut sans arrêt courir après des patchs même pour des services que l'on n'utilise pas ! (virus et ver : Code Rouge, Nimda ...)
Attention aux prix ! Si vous voulez faire des liens avec d'autres applications (même Microsoft), il faudra souvent acquérir un troisième logiciel (Microsoft Internet Connector,...)

En usant de métaphores, on peut résumer ainsi la philosophie de Microsoft : elle consiste à offrir une maison prête à l'emploi avec toutes les pièces possibles (y compris celles inutiles). Le problème, c'est que les fenêtres sont livrées grandes ouvertes et pratiquement sans serrure (fournie séparément par patch). La sérénité de l'installation et la sensation de confort sont vite remplacées par la peur des nouveaux virus, vers ou simples pannes surprises.
Au contraire, la philosophie d'Apache est la suivante : toutes les pièces s'acquièrent séparément. La grande difficulté alors est de démonter la porte blindée entre la cuisine et la salle à manger !
Ainsi un nouveau ver sur IIS, sans être banal, n'a rien d'exceptionnel. Alors que sur Apache c'est un événement. En 2001 un site sur Apache avais 4000 fois mois de chance d'être piraté qu'un autre sur IIS.
Les modules applicatifs.
Leur rôle est de générer des pages au format HTML utilisant éventuellement sur le poste client du VBscript, JavaScript  ou Flash.
Le canal CGI (Common Gateway Interface) est le chemin qui permet à un client web d'interroger les modules applicatifs au travers du serveurs web. Il est toujours utilisé, par contre les scripts CGI, eux, disparaissent pour des problèmes de sécurité et de surcharge pour les serveurs. En effet, ils lancent des simples programmes compilés et cela devient problématique quand ils sont demandés par trop de clients en même temps (allocation mémoire individuelle, gestion des tâches...).
Les modules applicatifs orientés web se sont donc développés. Il existe des extensions de base de données qui prennent en charge le web comme WOW (Web Oracle Web), mais ces solutions sont souvent trop rigides et conviennent mal à un développement de site.

Les plus utilisés sont les interpréteurs de script comme PHP et ASP (Microsoft).
Si PHP est traditionnellement lié à Apache et si ASP est livré avec IIS, il existe des solutions indépendantes pour permettre l'inverse, cependant cela reste marginal. Car ces deux langages de script sont très proches dans leur philosophie.
Si les performances de PHP s'avèrent insuffisantes pour vos applications, il existe des solutions d'optimisation comme Jpcache, Alternative PHP Cache (APC) ou autres Zend.
Perl est un autre interpréteur de scripts. Il reste la référence même s'il est moins utilisé aujourd'hui.

Viennent ensuite les environnements de développement orienté Web, mais leurs gabarits ne les destinent qu'à des sites importants. Ils sont orientés CGI.
J2EE (Java 2 Enterprise Edition) est un produit Sun. D'une syntaxe proche de C, son avantage est de rendre un développement immédiatement portable sur un autre type de système sans recompilation. Cependant, il nécessite l'utilisation de machines virtuelles qui alourdissent considérablement son fonctionnement.
Zope lui s'appuie sur Python (encore un interpréteur de script) et sur C. Il permet des performances supérieures à PHP et à J2EE.
Les bases de données relationnelles.
Les licences d'Oracle et de SQL Server empêchent formellement toute publication d'un comparatif de performances avec d'autres serveurs de bases de données.
Quand une grande firme évalue (avant de se porter acquéreur) plusieurs produits concurrents en grandeur réelle (version complète et en fonctionnement), il semblerait que des "NDA" (No Disclosure Agreement) entrent en jeu.
C'est pourquoi on ne voit jamais de vrais comparatifs honnêtes et crédibles. Le plus souvent ces "comparatifs" sont diffusés (principalement sur le web) par l'éditeur du produit qui se trouve en tête de classement.

Si toutes ces base sont dites compatibles SQL2 (ou SQL 92), ce n'est pas pour autant qu'elles en respectent la syntaxe.
Pourtant le respect de cette syntaxe simplifie les développements, surtout dans des réseaux d'information hétérogène.
DB2 Oracle SQL Server MySQL PostGreSQL InterBase
Part de marché 34% 32% 16% - - -
OpenSource Non Non Non Oui Oui Version 6
Windows Oui Oui Oui Oui Oui Oui
Linux,Unix Oui Oui Non Oui Oui Oui
Compatible à SQL2 83% 58% 71% 57% 91% 60%
+   Robuste. (surtout sur Unix) Intuitif. Gratuit. Communauté importante. Très performant pour des requêtes simples. Gratuit. Très complet. Respect de la norme SQL. Version 6 gratuite. Installation et administration facilité. (auto-optimisée auto-administrée)
- Prix. Prix. Administration. Hérite des fragilités de son OS unique. Pas de gestion de transaction. (Prévu pour la prochaine version) Vitesse de réponse.  

IBM, dont les produits sont plutôt onéreux et adaptés à des applications critiques ou très lourdes (banque, bourse, assurance, ...), investit sur Linux. DB2 d'IBM qui était réservé aux systèmes Mainframe, est donc proposé depuis sa version 7, sur Linux. Or DB2 est un produit phare, réservé à des applications importantes. On peut s'interroger sur les raisons de porter sur un OS "Open Source" et gratuit un produit propriétaire avec tant de valeur ajoutée en service et en maintenance. IBM considère que Linux est devenu suffisamment fiable pour ce type d'applications. On notera le sérieux normatif d'IBM dont le produit DB2 est plus compatible à SQL que son concurrent direct Oracle.
DB2 se veut donc universel, capable de traiter aussi bien les données des applications de gestion classiques où sa robustesse éprouvée est un atout fondamental, que les informations et traitements des applications répondant aux nouvelles demandes des utilisateurs, que ce soit les ERP, les applications de type GED et multimédias, les applications d' e-business ou de business intelligence ...

Oracle est la référence dans le monde des bases de données, même si sa syntaxe respecte peu le standard SQL2. Il sait répondre aux besoins d'une exploitation massive : beaucoup de clients, beaucoup de requêtes, beaucoup de données. Il est très cher donc exclusivement réservé aux grands comptes, mais il est fiable et sécurisé.
Inconvénient : ce système nécessite un administrateur formé et compétent (pas forcément interne, mais disponible) car même s'il est robuste, il demande beaucoup de maintenance et d'ajustements.

Microsoft offre un produit très intéressant avec SQL Server (alias MsSQL). Il est à noter que, pour une fois, Microsoft est un de ceux qui suivent le mieux le standard SQL2. SQL Server est parfaitement intégré au système Microsoft (authentification NT, API intégrées à Windows et Visual Studio) très présent en entreprise. De plus les outils d'administration et de requêtes sont excellents. C'est un bon choix pour les sources de données et des applications intranet, mais à cause de son prix, il n'est abordable qu'aux grands comptes. Cependant le "tout Microsoft", même s'il est commercialement séduisant, doit être envisagé avec prudence.
Contrairement au marché de la station de travail, Microsoft est loin d'être leader pour les serveurs et les SGBDR, même s'il occupe une place significative. Ce n'est pas un hasard, la combinaison Windows et IIS, gourmande en ressource machine, présente trop de faiblesses de sécurité. Or quand une application tourne en intranet, la tentation est grande de la connecter à Internet pour la rendre accessible aux collaborateurs nomades ou aux partenaires de l'entreprise.
Heureusement, la base de données est indépendante du serveur web et peut donc être sur une machine différente. Ce qui permet de choisir pour celui-ci, des solutions plus robustes, mais alors on sort du "tout Microsoft" et cela engendre des problèmes de configuration.
Remarque : Access n'est pas traité dans ce comparatif. S'il propose également des options web, ses performances ne sont pas comparables aux autres produits cités (une dizaine d'utilisateurs simultanés suffisent généralement à le déborder) et sa compatibilité SQL 2 n'est que de 38% !

MySQL est un excellent serveur de bases de données, très efficace pour des requêtes simples. Mais il n'est pas vraiment comparable à Oracle, DB2 ou SQL Server. Cependant il convient à plus de 90% des projets Web, où toute la charge est sur la consultation et non sur la mise à jour des données.
Sa note de compatibilité à SQL2 est mauvaise du fait qu'il ne gère pas les transactions (c'est ce qui lui donne un score si bas en compatibilité SQL), ce qui le rend impropre au développement d'applications de travail collaboratif.
Enfin, il est à souligner que l'utilisation de ce serveur est gratuite sur les systèmes Linux et Unix, mais soumise à l'achat d'une licence sur les serveurs Windows.

PostGreSQL a d'abord été développé comme une alternative à Oracle. Il a aujourd'hui les qualités requises pour servir en entreprise, sur des applications critiques qui doivent respecter de fortes contraintes. La stabilisation prochaine des outils de réplication dotera PostGreSQL de tous les attributs associés historiquement aux leaders du marché. Cependant ses performances, en terme de vitesse de réponse, sont inférieures aux grands noms commerciaux même si l'écart s'estompe de version en version. Sa prise en main est facile et son interface PSQL est comparable, au niveau des fonctionnalités, au SQLPLUS d'Oracle!

InterBase de Borland possède beaucoup de qualités. Son administration est facile, elle est auto-optimisée et autoadministrée. De nombreux outils sont disponibles pour le gérer. Ce SGBD est fiable, robuste et supporte de nombreuses instructions avancées. Il se décline en trois versions : une version "Open Source" gratuite, une "Desktop Edition" payante (version améliorée) et une "Server Edition" qui inclut de nombreux autres outils. Son défaut est sans doute d'arriver un peu tard, sur un marché déjà bien occupé. Cependant il s'intègre particulièrement bien avec les outils de développement Borland qui sont, eux, déjà largement répandus.

La combinaison LAMP (Linux, Apache, MySQL, PHP ou Perl ou Python) est la plus populaire pour la création de sites web personnels ou associatifs.
Pour des projets de plus grande envergure, comme MySQL ne gère pas les transactions, on préfèrera PostGreSQL, InterBase ou autre (selon budget) et on ne retiendra donc que Linux, Apache et PHP, Perl ou Python.
L'alternative XML.
Si le concept de base de données totalement en XML relevait de la science-fiction il y a trois ans, c'est aujourd'hui une réalité.
Nous connaissions déjà les fonds documentaires en XML. Les fichiers XML contiennent les informations dites "métier". Ils sont décrits par un fichier DTD complètement personnalisable et peuvent être ensuite reformatés de différentes manières pour différents médias (HTML, Pdf, Postscript, ... XML !) grâce à une application de traitement XSLT selon les spécifications de différents fichiers XSL. L'avantage de ces fichiers XML, DTD et XSL : ils sont de simples fichiers textes humainement (relativement) lisibles et indépendants des systèmes et des applications. Ces trois fichiers contiennent toutes les informations nécessaires à la génération d'un document. Cette opération peut donc être sous-traitée par les postes clients, ce qui soulagera considérablement le serveur ! Les fichiers XML peuvent être directement intégrés dans une base gérant les BLOB (Binary Large OBject), même si cette solution est particulièrement lourde. Ces fichiers peuvent aussi être stockés de façon classique et être indexés au travers d'un SGBD traditionnel.

3  Ou mieux  4


Jusqu'ici rien de vraiment nouveau, C'est déjà ce que propose Oracle, DB2 et SQL Server. Ce système permet d'échanger des données entre deux systèmes documentaires différents. Le stockage direct, en clair, de documents contractuels permet de se mettre en conformité légale à moindre frais. De plus cela permet une transition en douceur vers des solutions XML tout en préservant l'existant.
Les SGBD XML Natif.
L'idée de s'affranchir de la base de données servant d'index de recherche et de tri a fait son chemin.
Le W3C (World Wide Web Consortium) a fait une première tentative de normalisation d'un langage de requête destiné à manipuler des documents XML avec la recommandation XQL (XML Query Language). Cela a donné naissance au standard Xpath. Celui-ci permet de naviguer au sein d'un document XML et d'en construire une représentation arborescente. Il permet aussi de créer et d'appliquer sur ce dernier des critères de tests et des fonctions de recherche. C'est aujourd'hui la base de travail des SGBD XML. Le XMLQuery, langage universel de requête est encore en cours de définition par un groupe de travail du W3C.

Tout cela implique la possibilité de créer des index de recherche directement en XML et de les soumettre à des requêtes.



C'est ce que proposent des produits comme Tamino de Software AG ou TEXTML Server de Ixiasoft. Pour des bases purement documentaires, des performances quinze fois supérieures aux systèmes traditionnels ont été observées. Ce gain de performance est dû à l'absence d'opérations d'extraction et de conversion lors de la livraison de l'information. Ces solutions, séduisantes pour des sociétés n'ayant pas de bases existantes, ont déjà convaincu des acteurs de l'assurance et de l'édition.
Cependant, il convient de ne pas négliger les compétences requises pour travailler en XML. De plus le marché et les outils de SGBD XML sont encore neufs. Les solutions SGBDR ou SGBDR + fonds XML restent donc d'actualité. ■
Bibliographie.
● Base de donnée relationnelle
SQL - développement. Brouard Frédéric. CampusPress, collection Référence Développement.
ISBN : 2-7440-1184-3
Site de l'auteur :
http://sqlpro.developpez.com/

Pages Web dynamiques avec ASP - PHP - SQL. Herellier Jean-Marc, Mérigod Philippe. CampusPress, L'intro.
ISBN : 2-7440-0709-9


● Comparatif de SGBD :
http://geronimo.developpez.com/sgbdcomp/

Les Système de gestion de base de données. Davy Philippe. 01 informatique' du 1er novembre 2002.


● Serveur web
Analyse de vulnérabilité de serveur web et liens vers recommandations d'assureur et d'expert.
http://www.linux-eco.org:8680/kouran/secu

Etude de coût par système d'exploitation par IBM.
http://www-1.ibm.com/linux/RFG-LinuxTCO-vFINAL-Jul2002.pdf

Analyse statistique des types de serveurs utilisés.
http://news.netcraft.com/

Statistique sur les systèmes d'exploitation utilisés par les serveurs Internet.
http://leb.net/hzo/ioscount/

ADAE : Agence pour le Développement de l'Administration Électronique.
Centre de ressources et d'échanges interministériels
http://www.atica.pm.gouv.fr/


● XML Les SGBD à l'heure de XML et des services Web. Informatiques Magazine n°143 juin 2002.

Le XML par l'exemple. Les journées d'études DocForum 2003.

4 SGBD pour traiter les données XML Laurent Maury, Décision Micro, le 22/10/2001.
http://www.01net.com/article/163845_a.html
Lexique
FTP : (File Transfer Protocol). Protocole spécialisé pour le transfert de fichier.
JDBC : (Java DataBase Connectivity) désigne une API définie par Sun pour permettre un accès aux bases de données avec Java.
LAMP : Architecture serveur reposant sur : Linux + Apache + MySQL + (PHP ou Perl ou Python).
NNTP : (Network News Transfer Protocol). protocole de transfert de nouvelles, sur un réseau particulier.
ODBC : (Open DataBase Connectivity) Il s'agit d'un format défini par Microsoft permettant la communication entre des clients bases de données fonctionnant sous Windows et les SGBD du marché.
OS : (Operating System). Le système d'exploitation est La première couche logiciel à installer sur une machine vierge pour pouvoir utiliser d'autres logiciels.
SBBD : Système de Gestion de Base de Données (DBMS en anglais).
SGBDR : SGBD Relationnel. Permet de géré les relation (données fixes dans une table, données variables dans une autre).
SMTP : (Simple Mail Transfer Protocol). protocole utilisé pour le transfert de courrier électronique.
LEIôPAR Mercredi 30 avril 2003 A propo...