Dans un blog post récent "The Platonic Database" Kent Beck s'interroge (lien en commentaire). Finalement, c'est quoi une base de données ?
Pour celleux qui ne le connaîtraient pas, Kent Beck est l'un des signataires du manifeste Agile. Ingénieur logiciel et systémicien brillant, je conseille très certainement de le lire / suivre.
Kent Beck brainstrome, je cite :
What are the abstract properties that make something a database?
What's the essence of "database-ness"?
C'est donc un questionnement sur la nature même du mot, du concept, de l’essence plus que du détail.
Et Kent Beck propose, une "vraie base de données" serait :
- Une API Put & Get : pour enregistrer et lire des enregistrements
- Des garanties de performance : elle doit rester efficace même quand elle grandit
- Des garanties de comportement : transactions, atomicité, etc.
J'ai cette hypothèse : les domaines des bases de données et du génie logiciel évoluent chacun en vase clos. Et Kent Beck ne pourrait pas mieux m'aider à la valider.
Les deux pères des bases de données sont Bachman (60s) et Codd (70s). C'est leur travail qui a introduit les mots "Data banks" et finalement "Database". Leur contribution:
Une base de données, c'est de l'information digitalisée et structurée (Bachman). Un bon modèle de données fournit une sémantique claire d’interprétation au niveau dit logique (Codd)
On la distingue du système de gestion de base de données, dont un des rôles est de découpler ce niveau logique d’une part et l'organisation physique des données d’autre part (fichiers, indexes, performance). On veut rendre les logiciels indépendants de ce niveau physique pour des questions de maintenance.
Kent Beck ne parle pas de base de données, puisqu'il ne parle pas des données ; il ne parle ni de l'information que ces données capturent, ni de l'interprétation que leur modèle et la theorie sous-jacente permet (if any). Donc de l'utilité même d'une base de données.
Est-ce juste une question de vocabulaire ou de contexte d'interpréation d’un mot ?
En partie. Apprendre à distinguer, base de données, modèle de données, mécanisme de persistence, système de gestion de base de données, interface d'accès à une base de données.
Mais ça n'explique pas tout. Parce que Kent Beck lâche aussi la proie pour l’ombre. Vous résumeriez l’essence d’un hôpital à ses couloirs, ses portes, ses ascenseurs ou la longueur de ses files d’attentes vous ?
Lâcher la proie pour l'ombre. Est-ce vraiment du Platon finalement ?
#Databases #SoftwareEngineering #History