Qu'est-ce que les data immuables ?
Une data immuable est un élément d'information dans une base de données qui ne peut pas (ou ne doit pas) être supprimé ou modifié. La plupart des bases de données traditionnelles stockent les données dans un format mutable, ce qui signifie que la base de données écrase les anciennes données lorsque de nouvelles données sont disponibles. Par exemple, dans une base de données d'employés, les informations relatives à l'adresse sont écrasées lorsqu'un employé change de domicile.
En revanche, les bases de données qui stockent des data immuables n'écrasent pas un ancien élément lorsque de nouvelles informations sont disponibles. Elles utilisent diverses techniques pour préserver les valeurs historiques et actuelles des données. Les data immuables sont très utiles pour l'audit et le débogage.
Le dossier médical d'une personne est un exemple concret de data immuable. Au fil des ans, une personne a pu se faire soigner pour différentes maladies. Le dossier médical se compose de diverses ordonnances, procédures et rapports de tests. Ces fichiers de données sont immuables. Par exemple, lorsqu'une personne reçoit une nouvelle ordonnance médicale, son ancienne ordonnance ne doit pas être écrasée. Au contraire, la base de données doit ajouter les nouvelles données à celles qui existent déjà. Les données médicales historiques sont un exemple classique de data immuable.
Pourquoi les entreprises ont-elles besoin de data immuables ?
Avec l'avènement des données dans le cloud et de l'Internet des objets (IoT), les entreprises reçoivent un énorme volume de données de transaction. Ces données doivent être stockées rapidement dans une base de données. Les fichiers immuables constituent une solution adaptée pour stocker les journaux de transactions à haut débit. Les entreprises doivent également tenir compte de la nécessité de disposer de données historiques. Les réglementations sur la confidentialité des données devenant plus strictes, de nombreuses entreprises choisissent de préserver leurs données historiques. Cela les aidera à assurer la conformité si un client ou un gouvernement demande des données passées. Les bases de données qui stockent les données dans un format immuable sont les mieux adaptées à ce cas d'utilisation.
Les entreprises ont souvent besoin de comparer leurs données actuelles à des données historiques pour comprendre les tendances des utilisateurs ou mesurer la croissance. Dans ce cas, l'écrasement des données historiques n'est pas une bonne idée. Les data immuables aident également les entreprises à garder la trace des changements qu'elles ont subis au fil des ans ; elles sont particulièrement utiles dans les systèmes logiciels.

Quelles sont les utilisations des bases de données immuables ?
Stockage des données de flux
Avec l'explosion de l'information et l'avènement de l'IoT, les entreprises reçoivent une quantité massive de données chaque seconde. Elles ne peuvent pas se permettre des retards dans le stockage des données. La plupart des bases de données traditionnelles qui utilisent un fichier mutable ont une certaine latence, car elles effacent les données précédentes, écrivent les nouvelles et vérifient leur intégrité. Mais dans le cas de données de flux, par exemple, provenant de capteurs IoT, la base de données doit stocker rapidement les données. Lorsque la base de données utilise des fichiers de data immuables, elle ajoute simplement les nouvelles données. Les bases de données immuables sont donc beaucoup plus rapides pour stocker les données et conviennent donc mieux au stockage des données en continu.
Préserver le contexte historique
Les données personnelles, telles que les antécédents médicaux d'une personne, doivent être conservées en permanence afin de fournir un contexte aux nouvelles données. Par exemple, lorsqu'une personne est traitée pour une maladie, tous ses anciens médicaments et traitements doivent être pris en compte. Si les bases de données traditionnelles peuvent fournir un contexte historique, elles ne garantissent pas la préservation des données. Les bases de données immuables, par leur nature même, garantissent qu'aucune donnée ne sera jamais supprimée.
Audit et débogage
Les systèmes qui changent fréquemment, comme les sites Web ou les logiciels, doivent conserver les principaux aperçus du système pour suivre les modifications. La plupart des systèmes de contrôle de version stockent les données dans des fichiers immuables afin qu'il n'y ait aucun risque de les écraser. Les institutions financières ont également besoin d'une base de données immuable pour préserver l'historique de toutes leurs transactions. D'autres entreprises qui doivent présenter des données pour des audits fréquents peuvent également bénéficier d'une base de données immuable.
Comment fonctionne une base de données immuable ?
Contrairement aux bases de données relationnelles traditionnelles (bases de données mutables) qui sont basées sur les enregistrements, les bases de données immuables sont basées sur les journaux. Lorsqu'une nouvelle donnée est disponible, la base de données mutable réécrit une cellule particulière dans un tableau de données. La base de données immuable stocke les données dans des journaux et crée un nouveau journal pour chaque nouvelle part de donnée.
Pour comprendre le fonctionnement d'une base de données immuable, prenons une base de données simple qui stocke les détails d'un article de blog. Une base de données relationnelle classique stockerait ces données dans un format mutable, les détails de l'article de blog étant stockés dans un tableau. Supposons que le permalien, le titre et le contenu soient les trois colonnes de ce tableau. Dans une base de données mutable, lorsque le titre ou le contenu change, la base de données effectue une opération de mise à jour. Les nouvelles données écrasent l'entrée précédente. L'ancien titre ou les anciens titres et le contenu sont perdus à jamais. Une base de données standard, immuable, stocke ces mêmes informations sous forme de journaux.
La base de données mutable ne stocke que l'état actuel du blog. La base de données immuable stocke l'historique du blog ainsi que l'état actuel. Une base de données immuable n'effectue que des opérations d'insertion et ne fait jamais de mise à jour d'un champ de données existant.
Comment une base de données immuable stocke-t-elle les données ?
Pour poursuivre avec l'exemple de l'article de blog, la base de données immuable utilise une structure de tableau différente de celle de la base de données mutable. Chaque révision d'un article de blog est insérée dans une base de données sous la forme d'une nouvelle ligne dans un tableau. Les champs du tableau sont les suivants :
- Numéro de révision : il s'agit de la clé primaire du tableau. Chaque révision de blog doit avoir un numéro de révision unique.
- Horodatage : l'heure à laquelle la révision a lieu. Ce doit être une valeur unique.
- Lien permanent, titre et contenu
Contrairement à la base de données mutable, où chaque révision d'un article de blog écrase les données du blog, la base de données immuable crée une nouvelle entrée de révision pour chaque modification de l'article de blog. Ainsi, les informations relatives à chaque modification antérieure de l'article de blog sont conservées et peuvent être récupérées à tout moment sur la base de l'horodatage ou du numéro de révision.
Quels sont les avantages des data immuables ?
Des opérations plus rapides
Lorsque les données sont stockées de manière immuable, les nouvelles données sont ajoutées aux précédentes, accompagnées d'un horodatage. Cela signifie que la base de données peut simplement insérer des données sans bloquer le système pour effectuer des contrôles d'intégrité. Cette qualité des data immuable est cruciale dans le cas des données de flux et de capteurs. Dans ces cas, les données arrivent en continu et doivent être stockées avec une latence minimale.
Contexte historique
De nombreuses entreprises ont besoin de comparer les données historiques avec la dernière version pour des analyses plus précises et plus contextuelles. Les bases de données immuables préservent toutes les données historiques. Elles permettent de créer des points de contrôle dans le passé à partir desquels un système peut être restauré.
Vérifiabilité
De nombreux secteurs, notamment ceux de la santé et de la finance, peuvent être confrontés à des audits aléatoires. Il est crucial pour eux de préserver toutes les données afin d'avoir les données historiques à portée de main si elles sont requises pour un audit.
Conformité
Partout dans le monde, les règles relatives à la confidentialité des données sont assez strictes. Les utilisateurs ont le droit d'exiger une copie de toutes les données qu'une entreprise a recueillies auprès d'eux. Le stockage des données sous forme immuable aide les entreprises à se conformer à ces demandes.

Quels sont les inconvénients des data immuables ?
Des besoins de stockage plus importants
Le stockage de data immuables a des exigences de stockage plus élevées par rapport aux bases de données mutables traditionnelles. Chaque mise à jour est stockée dans un journal différent, ce qui augmente la taille de la base de données.
Complexité
Les bases de données immuables sont plus complexes, car elles stockent le contexte historique. La base de données doit gérer la complexité du stockage de chaque transaction.
Conformité des données
Par conception, une base de données immuable ne supprime jamais aucune donnée. Cependant, la plupart des réglementations sur les données exigent que le système supprime les données si un utilisateur le demande. Il s'agit d'un défi important pour les bases de données immuables construites sur l'hypothèse qu'aucune donnée n'est jamais supprimée.
Comment les bases de données immuables offrent-elles une fonction de suppression ?
Intrinsèquement, les bases de données immuables ne fournissent pas de fonction de suppression, car la base de données elle-même est conçue sur le principe que les données ne sont jamais supprimées. Cependant, comme nous l'avons vu dans la section précédente, les règlements sur la confidentialité des données donnent aux utilisateurs le droit d'être « oubliés ». Cela exige que les données soient supprimées/écrasées.
Le crypto-déchiquetage est une solution qui peut être utilisée pour « écraser » les data immuables. Dans une base de données dotée d'un dispositif de crypto-déchiquetage, les data immuables sont stockées dans un format chiffré. Une clé de chiffrement est nécessaire pour déchiffrer les données personnelles stockées dans la base de données. Toutes ces clés sont stockées dans une base de données mutable. Lorsqu'il y a une demande d'écrasement des données, celles-ci ne sont pas supprimées. Au lieu de cela, la clé de chiffrement associée est écrasée. La clé de chiffrement ayant disparu, les données ne sont plus utiles. C'est comme si on supprimait les données associées à la clé de chiffrement. Il s'agit d'une solution acceptable au regard des règles de l'Union européenne en matière de confidentialité des données.