Pourquoi une base de données perd ses données ?
Non, l'explication n'est pas toujours aussi simple qu'un utilisateur insouciant à supprimer des données dans la base de données ! Toutes les personnes constatent le problème, mais personne ne trouve l'explication. L'explication la plus facile qu'aura l'informaticien impliqué dans cette affaire sera «Ils ont probablement supprimé quelque chose par accident et il ne sent sont pas rendu compte !» Pourtant, dans les faits, cette réponse est totalement fausse ! Voici donc, décrit dans cet article des situations réelles que j'ai constaté durant mes expériences de travail.
Mise en situation
Vous récupérez un projet. Vous recevez une demande comme quoi certaines données ne sont pas importées. Pourtant, lorsque vous faites des tests avec les données, tout fonctionnement et les données sont importés normalement.
Explication 1
Sur des architectures complexes, il y a souvent plusieurs script ou cronjobs s'exécutant à certains intervalles de données ! Ainsi, on découvrira qu'un processus de nettoyage totalement séparé et sans lien avec le premier supprime certaines des données importées sur un deuxième serveur sans lien avec le premier.
Explication 2
Il y a une option dans un code Java, effectuant un «rollback» de toutes les transactions SQL lorsque le ramasse-miette (Garbage Collector) est lancé par le système à toutes les semaines.
Explication 3
Un déclencheur (TRIGGER) directement dans la base de données supprime des données lorsque certains événements se produisent.
Conclusion
Dans une architecture complexe, des systèmes de nettoyage automatisés sont souvent en cause pour les disparitions mystérieuses d'informations.
Voir également
Langage de programmation - SQL & Base de données - Introduction