Bases de données graphiques pour les débutants: ACID vs. BASE Expliqué

Lorsqu’il s’agit de bases de données NoSQL, les modèles de cohérence des données peuvent parfois être très différents de ceux utilisés par les bases de données relationnelles (ainsi que très différents des autres magasins NoSQL).
Les deux modèles de cohérence les plus courants sont connus sous les acronymes ACIDE et BASE. Bien qu’ils soient souvent opposés les uns aux autres dans une bataille pour la victoire ultime (veuillez en faire une vidéo), les deux modèles de cohérence présentent des avantages – et des inconvénients – et aucun n’est toujours parfait.
Examinons de plus près les compromis des deux modèles de cohérence de base de données.

Découvrez les différences entre les modèles de cohérence des données ACID et BASE et leurs compromis

Dans cette série de blogs de bases de données graphiques pour débutants, je vais vous présenter les bases de la technologie des graphiques en supposant que vous avez peu (ou pas) d’arrière-plan dans l’espace. Ces dernières semaines, nous avons abordé pourquoi la technologie graphique est l’avenir, pourquoi les données connectées sont importantes, les bases (et les pièges) de la modélisation de données, pourquoi un langage de requête de base de données est important, les différences entre les langages de requête impératifs et déclaratifs, la modélisation prédictive à l’aide de la théorie des graphes, les bases des algorithmes de recherche de graphes et pourquoi nous avons besoin de bases de données NoSQL.
Cette semaine, nous examinerons de plus près les principales différences entre les modèles de cohérence des bases de données ACID et BASE et ce que leurs compromis signifient pour vos transactions de données.

Le modèle de cohérence ACIDE

De nombreux développeurs connaissent les transactions ACIDES en travaillant avec des bases de données relationnelles. En tant que tel, le modèle de consistance ACIDE est la norme depuis un certain temps.
La garantie clé d’ACID est qu’elle fournit un environnement sûr dans lequel exploiter vos données. L’acronyme ACID signifie :
Atomique

    • Toutes les opérations d’une transaction réussissent ou chaque opération est annulée.

Cohérente

    • À la fin d’une transaction, la base de données est structurellement solide.

Les transactions isolées

    • ne se font pas face. L’accès litigieux aux données est modéré par la base de données de sorte que les transactions semblent s’exécuter séquentiellement.

Durable

    • Les résultats de l’application d’une transaction sont permanents, même en présence d’échecs.

Les propriétés ACID signifient qu’une fois qu’une transaction est terminée, ses données sont cohérentes (jargon technique: cohérence d’écriture) et stables sur le disque, ce qui peut impliquer plusieurs emplacements de mémoire distincts.

La cohérence d’écriture est une chose merveilleuse pour les développeurs d’applications, mais elle nécessite également un verrouillage sophistiqué qui est généralement un modèle lourd pour la plupart des cas d’utilisation.
En ce qui concerne les technologies NoSQL, la plupart des bases de données graphiques (y compris Neo4j) utilisent un modèle de cohérence ACID pour garantir la sécurité et le stockage constant des données.

Le modèle de cohérence DE BASE

Pour de nombreux domaines et cas d’utilisation, les transactions ACID sont beaucoup plus pessimistes (c’est-à-dire qu’elles sont plus préoccupées par la sécurité des données) que le domaine ne l’exige réellement.
Dans le monde des bases de données NoSQL, les transactions ACID sont moins à la mode car certaines bases de données ont assoupli les exigences de cohérence immédiate, de fraîcheur et de précision des données afin d’obtenir d’autres avantages, comme l’échelle et la résilience.
(Notamment, le RavenDB basé sur .NET a résisté à la tendance parmi les magasins agrégés dans la prise en charge des transactions ACID.)
Voici comment l’acronyme de BASE se décompose:
Disponibilité de base

    • La base de données semble fonctionner la plupart du temps.

Les magasins à état souple

    • ne doivent pas nécessairement être cohérents en écriture, ni les différentes répliques ne doivent être constamment cohérentes les unes avec les autres.

La cohérence éventuelle

    • Les magasins présentent une cohérence à un moment ultérieur (par exemple, paresseusement au moment de la lecture).

Les propriétés de BASE sont beaucoup plus lâches que les garanties ACID, mais il n’y a pas de mappage direct un pour un entre les deux modèles de cohérence (un point qui ne peut probablement pas être surestimé).
Un magasin de données de BASE valorise la disponibilité (car c’est important pour l’échelle), mais il n’offre pas de cohérence garantie des données répliquées au moment de l’écriture. Dans l’ensemble, le modèle de cohérence de BASE fournit une assurance moins stricte que ACID: les données seront cohérentes à l’avenir, soit au moment de la lecture (par exemple, Riak), soit elles seront toujours cohérentes, mais uniquement pour certains instantanés passés traités (par exemple, Datomic).
Le modèle de cohérence DE BASE est principalement utilisé par les magasins d’agrégats, y compris les magasins de famille de colonnes, de valeurs clés et de documents.

Navigation ACIDE vs. Compromis de BASE

Il n’y a pas de bonne réponse pour savoir si votre application a besoin d’un modèle de cohérence ACIDE par rapport à BASE. Les développeurs et les architectes de données doivent choisir leurs compromis de cohérence des données au cas par cas – et non pas uniquement en fonction de la tendance ou du modèle utilisé précédemment.
Compte tenu de la faible cohérence de BASE, les développeurs doivent être plus informés et rigoureux sur la cohérence des données s’ils choisissent un magasin de BASE pour leur application. Il est essentiel de se familiariser avec le comportement DE BASE de votre magasin d’agrégats choisi et de respecter ces contraintes.
D’autre part, la planification autour des limitations de BASE peut parfois être un inconvénient majeur par rapport à la simplicité des transactions ACID. Une base de données entièrement ACID convient parfaitement aux cas d’utilisation où la fiabilité et la cohérence des données sont essentielles (bancaires, n’importe qui?).
Dans les semaines à venir, nous plongerons dans plus de spécificités ACID / BASE en matière de magasins d’agrégats et d’autres technologies de graphe.

Aller au-delà des bases de données:
Obtenez votre copie du livre de bases de données O’Reilly Graph et commencez à utiliser la technologie graph pour résoudre des problèmes réels.
Obtenez le livre

Rattrapez le reste de la série Graph Databases for Beginners:

    • Pourquoi la Technologie des Graphes Est l’Avenir
    • Pourquoi Les Données Connectées Comptent
    • Les bases de la Modélisation des Données
    • Les pièges de la Modélisation des Données à Éviter
    • Pourquoi un Langage de Requête de Base de Données Compte (Plus Que Vous Ne Le Pensez)
    • Langages de Requête Impératifs par rapport aux Langages de Requête Déclaratifs: Quelle est la Différence?
    • Théorie des Graphes &Modélisation prédictive
    • Bases de l’Algorithme de Recherche de Graphes
    • Pourquoi Nous avons besoin de bases de données NoSQL
    • Une Visite des Magasins d’Agrégats
    • Autres Technologies de Données Graphiques
    • Technologie Graphique Native vs Non native



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.