Les Systèmes de Gestion de Bases de Données

SGBD : moteurs et documentations SQL / SPIP

SPIP comme les CMS dynamiques, et la plupart des progiciels de gestion de données, enregistre tous les textes et autres données dans uen structure de Base de Données, architecturée en SQL.

Sur un serveur Web, on peut rencontrer plusieurs moteurs de données, avec des avantages et inconvenients (en général, et pour SPIP qui est capable d’en utiliser plusieurs au choix) :
- MySQL : le moteur courant dans le Web
- PostGreSQL : la référence libre (orienté PostGis)
- SQLite : système intégré au PHP depuis la version PHP 5.3
- Oracle (incomplet) : la référence professionnelle en performances
- M$SQL (inopérant) : le système propriétaire de MicroSoft
- PDO (inopérant) : une bibliothèque d’interface SQL générique
(non interfacée en SPIP : spip dispose d’un jeu d’API génériques).

Pour ces SGBD, votre serveur dispose souvent d’un utilitaire de gestion des bases de données en Interface Web, plus puissant que l’interface "Vertebres" intégrée à SPIP.

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 SGBD

La syntaxe SQL du Structured Query Language s’est imposée pour les bases de données relationnelles en gestion depuis longtemps, à la fois pour garantir une certaines portabilité des applications et requêtes SQL et pour accompagner les systèmes de "normalisation" des tables relationnelles, sorte d’algèbre mathématique garantissant qu’une information ne sera enregistrée et répertoriée qu’une seule fois dans le système d’information, avec l’identification des Entités et des Relations.

Nous verrons d’ailleurs que SPIP pousse très loin l’utilisation implicite des jointures, ces tables de liens qui établissent des relations entre entités, en particulier dans les boucles [1].

Ce langage commun -aux variations près des éditeurs informatiques- permet des outils génériques capables de se connecter (d’attaquer) presque tous les systèmes de bases de données ; ceux-ci diffèrent essentiellement par leur prix, leurs performances(?), les logiciels d’accompagnement et d’exploitation, et certaines facilités annexes,dont la plus importante à terme sera peut-être l’intégration d’une couche géographique.

La portabilité de la syntaxe autorise en principe la portabilité des vidages de bases de donnes (le fameux "dump SQL" qui vous est indispensable pour sauvegarder ou transporter votre base de données sur un nouveau serveur).
Attention, jusqu’en SPIP 3, le "dump SPIP" proposée pour les sauvegardes standard est un format XML, non repris en SPIP 3 [2] : voir Sauvegarder SPIP.

Le langage PHP dispose de bibliothèques de fonctions spécialement adaptées à chaque SGBD,et de nombreux logiciels proposent une interface Web de manipulation directe des tables de votre serveur.

 PhpMyAdmin  : l’accès MySQL

MySQL est quasiment la norme en hébergement Web, qui reste conseillée -sauf si vous aviez des besoins très particuliers- fiable, connue et assez performante.

Le programme libre PhpMyAdmin -constamment amélioré- est la référence du genre, par sa diffusion quasi-standard sur les serveurs Web avec PHP chez la plupart des hébergeurs.
Il définit donc la ’norme’ en matières d’opérations, et la plupart des développeurs et webmestres en maitrisent l’usage : il permet une interface de saisie-edition par formulaires pour la définition de la structure des tables, et de leurs données ; outre les formulaires de gestion des droits (GRANT SQL), il intègre aussi une interface de saisie assistée des commandes SQL ; enfin il offre des outils d’importation et d’exportation des "dump SQL" avec divers formats exportés en CSV, etc...

 PgAdmin  : l’accès PostGreSQL

La base PostgreSQL est une évolution libre d’un premier moteur de SGBD (Ingres), réputée pour ses performances et son extensibilité : elle sert de base à la plupart des S.I.G. grace à son extension PostGis. La plateforme intègre généralement pgAdmin, un exécutable en environnement graphique pour administrer la base.

En parallèle avec phpMyAdmin (ont il est issu/forké) PhppgAdmin est l’outil web de gestion des bases PostGreSQL, avec des possibilités analogues.

 SQLite  : embarqué sous PHPLiteAdmin

La bibliothèque SQLite, écrite en C, est une méthode d’accès SQL à un fichier unique, embarquée au sein de l’application, au même titre qu’une bibliothèque mathématique : le fonctionnement, très performant en mono-utilisateur, semble plus problématique en mode serveur : ce fonctionnement à partir d’un unique fichier de stockage oblige à "prendre la file d’attente" pour chacun des utilisateurs....
Malgré moins de types de champs, il est retenu pour les nouvelles sauvegardes de SPIP, donnant un fichier unique de sauvegarde inter-opérable, mais son implémentation reste variable selon les hébergeurs : peut-on recommander son utilisation en base principale ?

Pour administrer une base SQLite (en accès local sur la machine serveur, et avec les restrictions d’usage mono-fichier), vous pourrez utiliser PhpLiteAdmin : initié sous le nom de SQLite3Admin, ce mono-fichier veut cloner PhpMyAdmin ; sa migration sous https://code.google.com/ semble confirmer l’intéret, avec disponibilité d’un petit Wiki, de thèmes pour la personnalisation, Android, accès à une aide en ligne, ou mieux Editer votre base SQLite « en ligne » avec Adminer [3]
Et puis, le petit dernier de SPIP : le plugin sqlip_export.

 Oracle  : la référence propriétaire

On ne peut ignorer le leader actuel des SGBD professionnels propriétaires, pour lequel a été développée une version de pilote SPIP, non généralisée faute de tests : à charger sur la zone dans _dev_ \ oracle.

 PDO : PHP Data Objects

Ce sigle PDO désigne une extension de PHP, dédiée à l’accès universel aux bases de données sous forme d’une classe générique PHP (evitant de devoir modifier le code pour changer de moteur) ; définie dans la documentation Php, elle n’est toutefois pas toujours disponible sur les serveurs des hébergeurs, et il vous faudra l’activer spécialement sur votre serveur Web.

 SPIP_SQL

Spip a développé depuis 2001 une interface procédurale API générique, dont l’usage est recommandé dans l’ecriture des plugins utilisateurs. Cette API d’encapsulation SQL documentée sur Programmer s’est démarquée de la version initiale MySQL pour s’adapter à PostGreSQL (et Oracle), et automatiser la gestion des prefix.


  Lecture universelle : Vertèbres

Depuis longtemps, SPIP intègre un outil de lecture-visualisation directe de la base de données native, avec génération automatique d’une vue tabulaire paginée : Vertèbres (tel est son nom) n’est pas directement accessible, même aux webmestres auxquels il est réservé : il faut rajouter taper la commande ./ecrire/?exec=vertebres dans l’interface privée....

  Accès universel SQL Web : Adminer

Parmi ces deux produits , Adminer & PhpLiteAdmin, les premiers retenus dans un balayage rapide publié sur Contrib, auquel je vous renvoie, le premier semble faire l’unanimité de notre communauté : il est en effet capable de lire l’ensemble des moteurs de Base de données courants implantés en PHP.

Il a donc été récemment couplé avec SPIP, grâce à un plugin intégrant Adminer dans l’espace privé de SPIP, avec gestion des codes et des droits.


Merci de nous signaler les coquilles ou erreurs qui figureraient dans cette page.

[1Voir les articles de Marcimat sur le sujet !

[2Source disponible en plugin optionnel pour rajouter cette fonctionnalité, sous réserve.

[3Voir en référence l’intégration automatique en plugin.


Liens visibles seulement pour les inscrits.

Article publié le 26 novembre 2012, et actualisé en mars 2015 .

Répondre à cet article