Définition d’une base de données distribuée
⌚: 6 minutes
Une base de données distribuée (distributed database) est une base de données constituée de deux ou plusieurs fichiers situés dans des sites différents, soit sur le même réseau, soit sur des réseaux entièrement différents. Des parties de la base de données sont stockées dans plusieurs emplacements physiques et le traitement est réparti entre plusieurs nœuds de base de données.
Un système de gestion de base de données (SGBD) de base de données distribuée (DDBMS) intègre les données de manière logique afin qu’elles puissent être gérées comme si elles étaient toutes stockées au même endroit. Le DDBMS synchronise périodiquement toutes les données et garantit que les mises à jour et les suppressions de données effectuées à un endroit donné soient automatiquement dans les données stockées ailleurs.
En revanche, une base de données centralisée classique se compose d’un seul fichier de base de données situé sur un site utilisant un seul réseau.
Caractéristiques des bases de données distribuées
Dans une collection, les bases de données distribuées sont logiquement liées les unes aux autres et représentent souvent une seule base de données logique. Avec les bases de données distribuées, les données sont physiquement stockées sur plusieurs sites et gérées de manière indépendante. Les processeurs de chaque site sont reliés par un réseau et n’ont pas de configuration multiprocesseur.
Une idée faussement répandue est qu’une base de données distribuée est un système de fichiers mal connecté. En réalité, c’est beaucoup plus compliqué que cela. Les bases de données distribuées intègrent le traitement des requêtes, mais ne sont pas synonymes de systèmes de traitement des requêtes.
En général, les bases de données distribuées présentent les caractéristiques suivantes :
- Indépendantes de l’emplacement
- Traitement des requêtes distribuées
- Gestion des transactions distribuées
- Indépendant du matériel
- Indépendant du système d’exploitation
- Indépendant du réseau
- Transparence des transactions
- SGBD indépendant
- Architecture des bases de données distribuées
- Les bases de données distribuées peuvent être homogènes ou hétérogènes.
Dans un système de bases de données distribuées homogènes, tous les emplacements physiques ont le même matériel sous-jacent et exécutent les mêmes systèmes d’exploitation et applications de base de données. Les systèmes de bases de données distribuées homogènes apparaissent à l’utilisateur comme un système unique, et ils peuvent être beaucoup plus faciles à concevoir et à gérer. Pour qu’un système de bases de données distribuées soit homogène, les structures de données de chaque emplacement doivent être soit identiques, soit compatibles. L’application de base de données utilisée à chaque endroit doit également être soit identique, soit compatible.
Dans une base de données distribuée hétérogène, le matériel, les systèmes d’exploitation ou les applications de base de données peuvent être différents à chaque endroit. Des sites différents peuvent utiliser des schémas et des logiciels différents, bien qu’une différence de schéma puisse rendre difficile le traitement des requêtes et des transactions.
Les différents nœuds peuvent avoir des matériels, des logiciels et des structures de données différents, ou se trouver dans des endroits qui ne sont pas compatibles. Les utilisateurs d’un site peuvent être en mesure de lire les données d’un autre site, mais ne pas les télécharger ou les modifier. Les bases de données distribuées hétérogènes sont souvent difficiles à utiliser, ce qui les rend économiquement inutilisables pour de nombreuses entreprises.
Avantages des bases de données distribuées
L’utilisation de bases de données distribuées présente de nombreux avantages.
Les bases de données distribuées sont capables d’un développement modulaire, ce qui signifie que les systèmes peuvent être étendus en ajoutant de nouveaux ordinateurs et des données locales au nouveau site et en les connectant au système distribué sans interruption.
Lorsque des défaillances surviennent dans les bases de données centralisées, le système s’arrête complètement. En revanche, lorsqu’un composant tombe en panne dans les systèmes de bases de données distribuées, le système continue à fonctionner à des performances réduites jusqu’à ce que l’erreur soit corrigée.
Les administrateurs peuvent réduire les coûts de communication pour les systèmes de bases de données distribuées si les données sont situées à proximité de l’endroit où elles sont le plus utilisées. Cela n’est pas possible dans les systèmes centralisés.
Types de bases de données distribuées
Les données répliquées sont utilisées pour créer des instances de données dans différentes parties de la base de données. En utilisant des données répliquées, les bases de données distribuées peuvent accéder à des données identiques localement, ce qui évite le trafic. Les données répliquées peuvent être divisées en deux catégories :
- les données en lecture seule
- les données en écriture.
Les versions en lecture seule des données répliquées ne permettent de réviser que la première instance ; les réplications ultérieures de données d’entreprise sont ensuite ajustées. Les données inscriptibles peuvent être modifiées, mais la première instance est immédiatement changée.
La fragmentation horizontale des données implique l’utilisation de clés primaires qui se réfèrent à un enregistrement de la base de données. La fragmentation horizontale est généralement réservée aux situations dans lesquelles les entreprises n’ont besoin d’accéder qu’à la base de données relative à leur branche spécifique.
Les données fragmentées verticalement impliquent l’utilisation de copies des clés primaires qui sont disponibles dans chaque section de la base de données et qui sont accessibles à chaque branche de l’entreprise. Les données fragmentées verticalement sont utilisées lorsque la branche d’une entreprise et le site central interagissent avec les mêmes comptes de différentes manières.
Les données réorganisées sont des données qui ont été ajustées ou modifiées pour répondre aux bases de données d’aide à la décision. Les données réorganisées sont généralement utilisées lorsque deux systèmes différents gèrent les transactions et avec de l’aide à la décision. Les systèmes d’aide à la décision peuvent être difficiles à maintenir et le traitement des transactions linéaire nécessite une reconfiguration lorsque de nombreuses demandes sont faites.
Les données à schéma de partitions séparés est une base de données et de logiciels utilisé pour accéder à différents services et situations de manière à s’adapter. Il y a généralement un chevauchement entre différentes bases de données au sein de données de schéma séparées.
Exemples de bases de données distribuées
Bien qu’il existe de nombreuses bases de données distribuées , quelques exemples de bases de données distribuées incluent Apache Ignite, Apache Cassandra, Apache HBase, Couchbase Server, Amazon SimpleDB.
Apache Ignite est spécialisé dans le stockage et le calcul de grands volumes de données sur des gros noeuds de cluster. En 2014, Ignite a été mis en open source par GridGain Systems et qui plus tard a été accepté dans le programme d’incubateur Apache. La base de données d’Apache Ignite utilise la RAM comme niveau de stockage et de traitement en natif.
Apache Cassandra offre un support pour les clusters qui s’étendent sur plusieurs sites, et il dispose de son propre langage de requête, le Cassandra Query Language (CQL). De plus, les stratégies de réplication de Cassandra sont configurables.
Apache HBase fonctionne sur le système de fichiers distribués Hadoop et fournit un moyen flexible pour répondre aux pannes, pour stocker de grandes quantités de données non centralisées. Il offre également des fonctions de compression, un fonctionnement en mémoire et des filtres « Bloom » sur les colonnes. HBase n’est pas destiné à remplacer la base de données SQL, bien qu’Apache Phoenix fournisse une couche SQL pour HBase.
Couchbase Server est un progiciel NoSQL idéal pour les applications interactives qui servent plusieurs utilisateurs simultanés en créant, stockant, récupérant, agrégeant, manipulant et affichant des données. Pour répondre à ces nombreux besoins applicatifs, Couchbase Server fournit une valeur clé évolutive et un accès direct aux documents JSON.
Amazon SimpleDB est utilisé comme un service web avec Amazon Elastic Compute Cloud et Amazon S3. Amazon SimpleDB permet aux développeurs de demander et de stocker des données avec une gestion de base de données et une responsabilité administrative minimales.