Les bases de données relationnelles sont conçues dans un souci de fiabilité et de cohérence. Les ingénieurs qui les ont développés se sont concentrés sur un modèle transactionnel qui garantit que les quatre principes du modèle ACID soient toujours préservés. Cependant, l'avènement d'un nouveau modèle de base de données non structuré bouleverse ACID. Le modèle de base de données NoSQL évite le modèle relationnel hautement structuré au profit d'une approche flexible de stockage clé/valeur. Cette approche non structurée des données nécessite une alternative au modèle ACID: le modèle BASE.
Principes de base du modèle ACID
Il y a quatre principes de base du modèle ACID:
- La atomicité des transactions garantit que chaque transaction de base de données est une unité unique qui adopte une approche d'exécution "tout ou rien". Si une instruction de la transaction échoue, la totalité de la transaction est annulée.
- Les bases de données relationnelles assurent également la cohérence de chaque transaction avec les règles métier de la base de données. Si un élément d'une transaction atomique perturbe la cohérence de la base de données, la transaction entière échoue.
- Le moteur de base de données applique isolement entre plusieurs transactions se produisant au même moment ou presque. Chaque transaction se produit avant ou après toutes les autres transactions, et la vue de la base de données qu'une transaction voit à son début n'est modifiée que par la transaction elle-même avant sa conclusion. Aucune transaction ne devrait jamais voir le produit intermédiaire d'une autre transaction.
- Le dernier principe ACID, durability, garantit qu'une fois qu'une transaction est validée dans la base de données, elle est préservée en permanence grâce à l'utilisation de sauvegardes et de journaux de transactions. En cas d'échec, ces mécanismes peuvent être utilisés pour restaurer les transactions validées.
Principes fondamentaux de BASE
Les bases de données NoSQL, en revanche, englobent les situations où le modèle ACID est exagéré ou entraverait, en fait, le fonctionnement de la base de données. Au lieu de cela, NoSQL s'appuie sur un modèle plus souple connu, à juste titre, sous le nom de modèle BASE. Ce modèle s'adapte à la flexibilité offerte par NoSQL et des approches similaires de la gestion et de la conservation des données non structurées. BASE se compose de trois principes:
- Basic Availability L'approche de la base de données NoSQL se concentre sur la disponibilité des données même en présence de plusieurs défaillances. Il y parvient en utilisant une approche hautement distribuée de la gestion de base de données. Au lieu de maintenir un seul grand magasin de données et de se concentrer sur la tolérance aux pannes de ce magasin, les bases de données NoSQL répartissent les données sur de nombreux systèmes de stockage avec un degré élevé de réplication. Dans le cas peu probable où une panne perturbe l'accès à un segment de données, cela n'entraîne pas nécessairement une panne complète de la base de données.
- État doux. Les bases de données BASE abandonnent presque complètement les exigences de cohérence du modèle ACID. L'un des concepts de base de BASE est que la cohérence des données est le problème du développeur et ne doit pas être gérée par la base de données.
- Eventual Consistency La seule exigence que les bases de données NoSQL ont concernant la cohérence est d'exiger qu'à un moment donné dans le futur, les données convergent vers un état cohérent. Cependant, aucune garantie n'est donnée quant au moment où cela se produira. C'est une dérogation complète à l'exigence de cohérence immédiate d'ACID qui interdit à une transaction de s'exécuter tant que la transaction précédente n'est pas terminée et que la base de données n'a pas convergé vers un état cohérent.
Dans BASE, la disponibilité de base peut signifier que vous ne contrôlez même pas les sources de données. Par exemple, vous pouvez créer des liens vers des ensembles de données publics pour une partie de vos efforts.
Cas d'utilisation relatifs
Le modèle BASE n'est pas adapté à toutes les situations, mais c'est certainement une alternative flexible au modèle ACID pour les bases de données qui ne nécessitent pas une stricte adhésion à un modèle relationnel.
Les cas d'utilisation optimaux pour les bases de données utilisant ACID dépendent de données hautement structurées avec des entrées et des sorties prévisibles. Ainsi, les bases de données de ressources humaines, les bases de données de vente au détail et les dossiers médicaux électroniques bénéficient de la vérification de cohérence interne robuste offerte par ACID.
Cependant, les solutions BASE conviennent mieux aux sujets flous comme l'analyse des sentiments. Par exemple, un projet structuré en BASE pourrait analyser un flux Twitter à la recherche de mots qui impliquent une émotion basée sur un hashtag spécifique. Le flux Twitter n'est pas bien structuré ou instancié localement, mais le flux de données offre les informations programmées dans les requêtes même si la portée et la nature de ces données ne sont pas clairement délimitées.