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 (cloné en MariaDB)
- 
PostGreSQL : la référence libre (orienté PostGis)
- 
SQLite : système intégré au PHP depuis sa version 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.

Article publié le 26 novembre 2012, et actualisé en février 2019

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 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.

 MySQL : la référence historique

C’était évident ! Parler de base de données libre pour le Web est/était synonyme de MySQL développé avec le support de Sun [4] ; mais son rachat par Oracle laisse certains doutes sur l’usage libre de MySQL, qui génère désormais un fork nommé MariaDB !]]. Ce SGBD reste encore aujourd’hui le plus utilisé, quoique comatible vers mariaDB....

 Oracle  : la référence propriétaire

On ne peut ignorer le leader actuel des SGBD professionnels propriétaires [5], 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.

 MariaDB : le compatible MySQL hors Oracle

Avec la reprise de MySQL -logiciel libre- par Oracle (par ailleurs leader des SGBD propriétaires), un clone totalement indépendant MariaDB est apparu depuis 2010 ; il s’utilise à l’identique de Mysql [6] et dans SPIP : vous pouvez donc choisir le moteur installé sur votre serveur.

 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 2010 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.

Pour d’autres solutions, en utilisant la versatilité des interfaces php, vous pouvez étudier La Connexion SPIP - BDD.


  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, imprécisions 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.

[4Sun MicroSystems est en particulier à l’origine de Java !

[5Oracle est aussi aujourd’hui le ’propriétaire’ du systeme libre MySQL (d’où l’évolution vers MariaDB) !

[6MariaDB bénéficierait d’une réputation de performances améliorées, de fonctionnalités NoSQL..


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 26 novembre 2012, et actualisé en février 2019 .

Répondre à cet article