Dossier "SAM l'Informaticien" du 13 novembre au 26 novembre 2000
par Stéphane Lambert
a conception d'une base de donnée est une étape cruciale dans le développement d'un site Web. Indépendamment des autres choix techniques (langages de programmations, système d'exploitation du serveur, etc...), son architecture et sa construction détermineront en grande partie la cohésion et le bon fonctionnement du site. De part l'histoire et les évolutions de l'Internet, beaucoup d'informaticiens ont du se former tout seul à la base de donnée. A l'heure où les sites se font de plus en plus complexes, il n'est plus possible de négliger cet aspect qui finira bientôt par reprendre les techniques bien connues de nos collègues du Client/Serveur.
Nombre
d'entreprises ont développé en interne de petits systèmes dynamiques
en C ou en PERL, généralement à base de fichiers textes. La
construction de ces bases était bien souvent directement influencée
par les requêtes désirées, dans un soucis d'optimisation des temps de
réponse. Des balises particulières étaient alors placées dans le HTML
aux endroits ou l'on désirait faire apparaître les données
dynamiques. Chaque fichier HTML était parcouru par un programme qui
remplaçait les dites balises particulières par le contenu des
fichiers textes avant de l'envoyer au serveur.
Pour
éviter les manipulations des données, les développeurs prenaient en
compte l'ordre d'insertion des enregistrements pour éviter les tris,
très gourmands en mémoire et ressources car effectués en scripts plus
ou moins bien optimisés. De même, un script recevait les formulaires
afin d'écrire leur contenu au bon endroit dans des fichiers eux aussi
au format texte.
Ces systèmes ont rendus par le passé de fiers
services pour de petits développements comprenants une ou deux
tables. Néanmoins, ils ont montré leurs limites dès qu'il y eu besoin
d'afficher des résultats de tris faisant intervenir plusieurs types
d'informations.
Par exemple, supposons que l'on veuille afficher
'les titres des Disques de Rocks vendu chez SAM'. Il faut prendre en
compte les Magasins, les Styles de musique et tout les Disques
référencé. Chaque requêtes de ce type demandait un nouveau
développement spécifique. Et là , ça devenait très compliqué
.
Le SQL
est un langage naturel proche du discours humain, signifiant
Structured Query Language (Langage d'Interrogation Structuré).
Développé par le laboratoire de recherche d'IBM à San José en
Californie à la fin des années 70, il est reconnu en tant que norme
officielle de language de requête relationnelle par l'institut ANSI
et par l'organisme ISO. Il facilite grandement la manière d'indiquer
ce que l'on désire obtenir à la machine.
La commande principale
est " SELECT ". Ainsi, " les titres des Disques de Rocks vendu chez
SAM " devient " SELECT Titres FROM Disques WHERE Style='Rock' AND
Magasin='SAM' ", ce qui est beaucoup plus facile à programmer qu'un
tri de tableaux ou de fichiers.
Les informaticiens du Web ont
alors développé des interpréteurs SQL pour mieux gérer leur
développement. Comme très souvent dans l'Internet, il a surtout été
question de faire vite, souple, efficace, facile à utiliser et
répondant très vite.
Le meilleur exemple de cette évolution est
MySql, une des bases de donnée les plus utilisées dans le Web. Très
rapide, fiable, efficace, elle est capable de supporter une très
grande quantité d'enregistrement. Elle n'est actuellement pas
relationnelle car cela ne correspondait pas aux besoins auquel elle
était chargée de répondre.
Très rapidement, les langages de
programmation Internet ont été munis des librairies nécessaires (DBI)
pour fonctionner avec ces bases de données. Devant la facilité et les
gains de temps apportés par ces technologies, les développeurs se
sont engouffré dans l'utilisation du SQL qui s'est ainsi très
largement généralisé
.
Un
grand nombre de personnes ont eu accès aux techniques informatiques
par le biais des outils Bureautique. Avec Access par exemple, il est
possible de stocker et de classer un grand nombre d'informations que
l'on pourra retrouver ensuite avec ou sans tris. Le nombre d'ouvrages
sur le sujet, les formations internes, la pratique au quotidien et
surtout l'accessibilité de ces outils ont amenés beaucoup
d'utilisateurs au développement et au Visual Basic.
Et c'est
tout naturellement qu'ils ont utilisé ces technologies quand ils ont
eu à réaliser des sites Web pour eux même ou pour leurs entreprises.
Bien que nombre de développeurs Access soient autodidactes ou formés
uniquement à Access lui même, ces outils ont néanmoins permis la
constructions d'un nombre important de sites Internet, même si les
informaticiens formés aux bases de données Microsoft ont plutôt comme
choix professionnel d'utiliser SQL SERVEUR pour la conception Web
(Cette solution est néanmoins plus onéreuse). Il est de plus reconnu
que l'usage de ces outils spécifiques est peu formateur aux standards
existants en SGBDR. Ces solutions sont surtout valables pour de
petites bases comprenant quelques tables et supportant une charge
petite ou moyenne
.
Mis à
part au sein des filières orientées " Informatique de Gestion " (Bac
Pro, IUT, BTS), la base de donnée est très peu enseigné dans les
filières traditionnelles de l'Education Nationale. En effet, dans
certaines universités, il faut attendre le DESS d'Informatique pour
que cette matière soit exposée aux étudiants, soit cinq années après
le Bac. Ainsi, il n'est pas rare qu'un informaticien ayant une
Maîtrise d'informatique n'est jamais abordé en cours l'étude
théorique et pratique des méthodes de conception et d'utilisation
d'un SGBDR.
De même, les étudiants d'écoles d'ingénieurs ont
seulement 3 heures par semaines de cet enseignements en première
année (Bac +3), et l'on y constate un taux de participation variant
entre 6% et 50% des inscrits par promotions suivant les instituts.
Il
est donc possible d'affirmer que les informaticiens issues de la
formation scolaire traditionnelle sont insuffisamment formés aux base
de données. Ce constat est d'ailleurs généralement le même pour tout
ce qui touche aux technologie Web modernes : il suffit de prendre un
stagiaire ou un jeune diplômé pour constater que s'il connaît le PHP
et le SQL (par exemple), c'est généralement qu'il s'est formé tout
seul sur ces technologies
.
.. l'avenir est à la base
L'avenir
sur Internet est aux sites dynamiques gérant un très grand nombre
d'entrée/sortie d'informations. Une boutique avec une gestion des
moyens de paiements, promotions, TVA, Catégories, produits, caddy,
etc... comporte au minimum une vingtaine de tables. Un site gérant
des compétitions sportives peux nécessiter près d'une centaine de
table selon ce que l'on veut gérer.
Dorénavant plus que jamais, on ne peux se permettre de bà¢cler un
cahier des charges et de négliger la conception de sa base de
données. Il n'est plus possible de se lancer à corps perdu dans la
conception en créant ses tables au fur et à mesure, au petit bonheur
la chance, sous peine de gros soucis de développements.
Les
symptômes sont classiques : évolution du cahier des charges au fur et
à mesure du développement, absence de cahier technique, et donc :
Non-respect des délais, projet se retrouvant rapidement très
compliqué, données fausses ou incompréhensibles à l'affichage. Un des
risque peut être aussi l'impossibilité de reprendre ou de modifier
l'existant rapidement en l'absence du concepteur.
Les techniques pour construire celles-ci existent depuis maintenant plusieurs années, et ont fait leurs preuves dans des secteurs nécessitants la gestion de très gros Systèmes d'Informations. La plus connue est MERISE, qui provient directement des travaux des français MOULIN, TARDIEU et TEBOUL, vers le début des années 70, et rendue célèbre par l'américain Peter CHEN en 1976. A ce jour, tous les spécialistes du domaine de l'analyse orientée base de données se servent de ce modèle comme outil d'analyse et de conception avec la plupart des logiciels de construction d'applications de bases de données comme PARADOX, ORACLE, SQL Server, Informix, Ingres, Sybase… Appliquer ces méthodes est un moyen efficace d'arriver à un développement fiable et évolutif, et donc à une réussite technique et commerciale.
...à suivre....
Stéphane Lambert http://www.vediovis.fr/
Spécialisé dans le développement Web,
Stéphane LAMBERT
a fondé VEDIOVIS PRODUCTIONS en Mai 2000.
Son
expérience couvre essentiellement les sites à fortes audiences,
institutionnels
ou audiovisuels.