original in it Alessandro Pellizzari
en to fr Guy Passemard
Alessandro est Administrateur Système et Programmeur Linux, après avoir utilisé plusieurs ordinateurs Amiga avec beaucoup de satisfactions. Ses préfèrences vont surtout vers la programmation PHP, Python et C, mais il reste toujours à l'affût de découvertes intéressantes dans le domaine informatique.
Aujourd'hui, la majorité des sites Web PHP est basée sur une ou plusieurs bases de données. Mais combien de programmeurs connaissent réellement le fonctionnement d'une base de données relationnelle, les possibilités offertes, la manière d'optimiser les temps d'accès, et les extensions liées à l'objet ?
Ce livre est un bon point de départ pour les programmeurs cherchant à développer des applications web orientées base de données. Le lecteur disposera des bases nécessaires parmi lesquelles il pourra choisir la base de données la plus adaptée à son besoin, et les meilleures techniques pour structurer les tables et les méthodes d'accès.
Le livre comprend 13 chapitres et 3 annexes, plus un chapitre complémentaire en ligne sur le site Wrox.
Après une brève introduction de la structure du livre et de la liste de ses ressources complémentaires en ligne, le premier chapitre est une présentation rapide de PHP, avec surtout une analyse approfondie de la partie orientée objet du langage. Le deuxième chapitre se focalise sur les éléments fondamentaux d'une base de données, expliquant plusieurs modèles de BD et leur évolution historique, jusqu'au modèle RDBMS (SGDBR - Système de Gestion de Base de Données Relationnelle), leurs extensions objet et les bases XML. Ce chapitre poursuit en examinant l'accès aux bases par PHP, énumérant les bases supportées et leurs options de compilation PHP.
A partir du troisième chapitre, on aborde la structure d'une base de données, décrivant la normalisation des tables et introduisant brièvement les diagrammes Entité - Relation, puis les chapitres quatre et cinq approfondissent SQL en expliquant la création et l'insertion de données, la modification et les requêtes. Finalement , le sixième chapitre expose les éléments qui caractérisent un SGBDR comme l'intégrité référentielle, les "triggers" et les transactions.
Le chapitre sept revient sur la programmation PHP, expliquant l'intégration du SQL avancé dans les scripts PHP, en décrivant entre autres, curseurs, "triggers", vues, et index. Puis on trouve dans le huitième chapitre une introduction à l'architecture multi-tiers avec PHP, et une analyse des fonctions et des bibliothèques de classes résumant l'accès aux base de données. Le chapitre neuf poursuit l'explication de "PEAR::DB", qui sera dorénavant utilisée pour tous les exemples du livre.
Le chapitre dix est entièrement dédié à une étude de cas : une application d'enregistrement de factures et de suivi de règlements basée sur PEAR:DB; en commençant par l'analyse du problème, en passant par la définition des tables, pour aboutir à l'écriture du code de l'application.
Le chapitre suivant a une structure proche du précédent, l'étude concerne une application de gestion de bibliothèque, en utilisant des bases de données orientées objets, en particulier PostgreSQL. Il commence par l'analyse du problème, la définition des tables, et l'écriture du code, qui en raison de sa taille, se trouve sur le site de Wrox.
A partir du chapitre douze, on s'oriente vers les bases de données
XML, énumérant les avantages et inconvénients par rapport aux
bases relationnelles. On trouve une liste de plusieurs applications, libres ou
commerciales, et pour terminer,
le Xindice de l'Apache Sofware Foundation est discuté.
Les explications vont de la création de la base de données jusqu'à son remplissage à partir de documents XML,
l'analyse puis l'application des technologies XPath et XUpdate pour la sélection et la mise à jour de données,
apportant un bref aperçu de l'émergeant XQuery.
Le chapitre treize reprend la structure des chapitres dix et onze, partant de l'analyse du problème jusqu'à la réalisation, ceci pour une application d' échange de recettes, en présentant brièvement la séparation de privilèges entre utilisateur et administrateur.
Les annexes sont principalement dédiées à l'administration de bases de données, les stratégies de sauvegardes, l'optimisation, l'accès aux fonctions PHP DB et Apache, l'installation de PHP et iODBC sous Linux/Unix.
Les auteurs n'approfondissent pas trop, comme certains le font, la syntaxe ou l'introduction
au langage PHP (ce qui est d'ailleurs mieux présenté dans des livres dédiés à ce sujet), mais surtout
ils se concentrent sur l'essentiel : les bases de données et l'intégration de PHP.
Les exemples de code sont clairs et bien documentés aussi bien sur les lignes qu'en entête
de code. Vous trouverez dans ces exemples de nombreux trucs et astuces.
Le site du livre (voir la rubrique "références" en fin d'article) est pratique pour lire
un chapitre d'exemple, pour trouver des correctifs, et pour télécharger le code source
de tous les exemples du livre.
Le texte comporte quelques coquilles, qui peuvent être gênantes pour un lecteur
néophyte en Anglais, toutefois il n'y a pas d'erreur dans le code ce qui
ne pose donc aucun problème pour les exemples.
Sur le site du livre vous trouverez les correctifs (voir la rubrique
références à la fin de cet article)
Le livre "Professional PHP4 Databases" n'est pas (encore) paru, et le besoin d'une analyse approfondie
peut exister dans certains cas mais vous ne la trouverez pas dans ce livre, en
raison de sa complexité puisqu'il est destiné aux "débutants".
Ce livre a parfaitement atteint sa cible, une bonne base pour apprendre l'utilisation
des bases de données dans des applications PHP et une analyse rigoureuse des techniques
applicables à la structure des tables.
De nombreux points abordés dans ce livre sont trop souvent ignorés par les programmeurs
ce qui sera sans doute un gros avantage pour traiter les aspects de sécurité,
de structure et de rapidité.
Ce livre est spécialement recommandé à tous ceux qui veulent apprendre l'usage des bases de données dans des applications PHP, mais aussi et surtout pour ceux qui les utilisent sans avoir bénéficiés d'une formation suffisante.