GNU/Linux >> Tutoriels Linux >  >> Cent OS

ACID vs. BASE :Comparaison des modèles de transaction de base de données

Présentation

Décider du bon système de gestion de base de données (SGBD) peut être une tâche difficile. Le nombre d'options disponibles est énorme. Avant de commencer à rechercher une solution de base de données adéquate, réfléchissez à vos besoins.

Une première étape recommandée dans ce processus consiste à choisir un modèle de transaction de base de données. Il s'agit d'un ensemble de règles qui déterminent comment une base de données organise, stocke et manipule les données.

Dans cet article, vous découvrirez les deux modèles de transaction de base de données les plus populaires :ACID et BASE.

ACIDE vs BASE :quelles sont les différences ?

Le théorème CAP stipule qu'il est impossible d'obtenir à la fois cohérence et disponibilité dans un système distribué tolérant les partitions (c'est-à-dire un système qui continue de fonctionner en cas de pannes de communication temporaires).

La différence fondamentale entre les modèles de base de données ACID et BASE est la façon dont ils gèrent cette limitation.

  • Le modèle ACID fournit un système cohérent.
  • Le modèle BASE offre une haute disponibilité.

Pour mieux comprendre, nous discuterons de chacun des modèles séparément, puis nous les comparerons.

Modèle ACIDE

Le modèle de transaction de base de données ACID garantit qu'une transaction effectuée est toujours cohérente. Cela en fait un bon choix pour les entreprises qui s'occupent du traitement des transactions en ligne (par exemple, les institutions financières) ou du traitement analytique en ligne (par exemple, l'entreposage de données). Ces organisations ont besoin de systèmes de bases de données capables de gérer de nombreuses petites transactions simultanées. Il doit y avoir une tolérance zéro pour les états non valides.

Pour expliquer le modèle ACID, il est préférable de commencer par décomposer l'acronyme dans son nom.

ACIDE signifie :

  • Atomique – Soit chaque transaction est correctement exécutée, soit le processus s'arrête et la base de données revient à l'état d'avant le début de la transaction. Cela garantit que toutes les données de la base de données sont valides.
  • Cohérent – Une transaction traitée ne mettra jamais en danger l'intégrité structurelle de la base de données.
  • Isolé – Les transactions ne peuvent pas compromettre l'intégrité d'autres transactions en interagissant avec elles alors qu'elles sont encore en cours.
  • Durable - Les données relatives à la transaction terminée persisteront même en cas de panne de réseau ou de courant. Si une transaction échoue, cela n'aura aucun impact sur les données manipulées.

Exemple de cas d'utilisation d'ACID

Les institutions financières utiliseront presque exclusivement les bases de données ACID. Les transferts d'argent dépendent de la nature atomique d'ACID.

Une transaction interrompue qui n'est pas immédiatement supprimée de la base de données peut entraîner de nombreux problèmes. L'argent pourrait être débité d'un compte et, en raison d'une erreur, jamais crédité sur un autre.

Quelles sont les bases de données compatibles ACID ?

Un moyen sûr de vous assurer que votre base de données est conforme à ACID consiste à choisir un système de gestion de base de données relationnelle. Ceux-ci incluent MySQL, PostgreSQL, Oracle, SQLite et Microsoft SQL Server.

Certains SGBD NoSQL, tels que CouchDB d'Apache ou Db2 d'IBM, possèdent également un certain degré de conformité ACID. Cependant, la philosophie derrière l'approche NoSQL de la gestion des bases de données va à l'encontre des règles strictes d'ACID. Par conséquent, les bases de données NoSQL ne sont pas le choix recommandé pour ceux qui ont besoin d'environnements stricts.

Le modèle de BASE

L'essor des bases de données NoSQL a fourni un moyen flexible et fluide de manipuler les données. En conséquence, un nouveau modèle de base de données a été conçu, reflétant ces propriétés.

L'acronyme BASE est un peu plus déroutant que ACID. Cependant, les mots qui le sous-tendent suggèrent en quoi le modèle BASE est différent.

BASE signifie :

  • Disponible en principe – Plutôt que d'imposer une cohérence immédiate, les bases de données NoSQL modélisées par BASE garantissent la disponibilité des données en les diffusant et en les répliquant sur les nœuds du cluster de bases de données.
  • État logiciel – En raison du manque de cohérence immédiate, les valeurs des données peuvent changer au fil du temps. Le modèle BASE rompt avec le concept de base de données qui impose sa propre cohérence, déléguant cette responsabilité aux développeurs.
  • Finalement cohérent – Le fait que BASE n'impose pas une cohérence immédiate ne signifie pas qu'il ne l'atteint jamais. Cependant, jusqu'à ce que ce soit le cas, les lectures de données sont toujours possibles (même si elles ne reflètent pas la réalité).

Exemple de cas d'utilisation BASE

Les entreprises de marketing et de service client qui s'occupent d'analyse des sentiments préféreront l'élasticité de BASE lors de leurs recherches sur les réseaux sociaux. Les flux de réseaux sociaux ne sont pas bien structurés mais contiennent d'énormes quantités de données qu'une base de données modélisée par BASE peut facilement stocker.

Quelles bases de données utilisent le modèle BASE ?

Tout comme les bases de données SQL sont presque uniformément conformes à ACID, les bases de données NoSQL ont tendance à se conformer aux principes BASE. MongoDB, Cassandra et Redis font partie des solutions NoSQL les plus populaires, avec Amazon DynamoDB et Couchbase.

ACID ou BASE :lequel est bon pour vous ?

Il n'est pas possible de donner une réponse directe à la question de savoir quel modèle de base de données est le meilleur. Par conséquent, une décision doit être prise en considérant tous les aspects du projet.

Compte tenu de leur nature hautement structurée, les bases de données conformes à ACID conviendront mieux à ceux qui ont besoin de cohérence, de prévisibilité et de fiabilité.

Ceux qui considèrent que la croissance fait partie de leurs priorités choisiront probablement le modèle BASE, car il permet une mise à l'échelle plus facile et offre plus de flexibilité. Cependant, BASE nécessite également des développeurs qui sauront gérer les limites du modèle.


Cent OS
  1. MyISAM vs InnoDB :une comparaison

  2. Comment installer wordpress sur CentOS 6

  3. FAQ sur le déploiement de MySQL

  4. Modèles de récupération de base de données SQL Server

  5. Reconstruire une base de données RPM corrompue

Qu'est-ce que la normalisation de base de données ?

10 bonnes pratiques en matière de sécurité des bases de données

Qu'est-ce qu'une base de données ?

API SOAP vs REST :comparaison directe

Comment créer une base de données dans PostgreSQL

Comment déployer Mattermost sur CentOS 7