La Public Health England (PHE), l’équivalent de l’agence de la santé publique au Royaume-Uni, a « oublié » 15 874 malades connus dans la semaine du 25 septembre au 2 octobre. Elle a d’abord donné un compte de 50 786 personnes ayant contracté la maladie Covid-19, avant de réaliser son erreur et noter qu’il manquait en moyenne près de 2 000 cas par jour sur cette semaine.
Comment peut-on « oublier » autant de malades en pleine pandémie ? En utilisant les mauvais outils pour gérer les données, évidemment. La PHE est l’organisme qui rassemble les chiffres fournis par tous ceux qui font des tests dans le pays. Les informations sur les malades lui sont transmises sous la forme de fichiers CSV, un format texte qui est effectivement adapté pour transférer de larges quantités de données. L’agence doit ensuite importer ces fichiers dans une base centralisée, mais au lieu de reposer sur un vrai gestionnaire de base de données, comme MySQL ou PostgreSQL, elle utilisait… Excel.
Le tableur de Microsoft peut importer des fichiers CSV et vu de loin, on peut le comparer à un logiciel de base de données. Dans les deux cas, les informations sont stockées dans des tables, avec des colonnes qui décrivent le format de chaque donnée et des lignes pour chaque enregistrement. Mais un tableur n’est pas une base de données, ne serait-ce que parce qu’il n’est pas pensé pour stocker de grandes quantités d’informations.
Avec la version actuelle du format de fichier, le .xslx
, Excel peut stocker jusqu’à 1 048 576 lignes, ce qui peut sembler beaucoup, mais ce qui est ridicule face à ce qu’une table SQL peut contenir1. Pour ne rien arranger à l’affaire, la PHE utilisait encore l’ancien format de fichiers du tableur, le .xls
qui a été créé en 1987 et qui est limité à 65 536 lignes par tableau. Chaque cas était composé de plusieurs lignes, ce qui limitait encore le nombre de cas qu’un tableau pouvait contenir.
En important les données à partir des fichiers CSV — qui n’ont eux aussi aucune limite de longueur, en passant —, l’agence ne conservait sans le savoir qu’une partie des résultats et n’enregistrait pas les suivants. Quand l’erreur a été découverte, le processus d’import a été modifié pour créer plusieurs fichiers et ainsi éviter les limites d’Excel, quel que soit le nombre de cas remontés. C’est bien, utiliser le nouveau format de fichiers d’Excel disponible depuis 2007 serait un petit peu mieux, mais c’est surtout l’outil lui-même qu’il faudrait changer…
La BBC qui rapporte l’information souligne que l’agence a vérifié ses données antérieures et assure que l’erreur n’a commencé que pour la semaine du 25 septembre. Tous les cas oubliés ont été intégrés et pris en charge.
-
Si vous vous posez la question, la seule véritable limite dans une base de données est l’espace disponible sur l’ordinateur qui sert à la faire tourner. Les performances peuvent poser problème à partir d’un certain nombre d’enregistrements, mais il est possible de stocker plusieurs dizaines de milliards (oui, milliards) de lignes dans une seule table d’une base de données. ↩︎