« Apache CouchDB has started. Time to relax. » C’est avec ces mots que vous accueille au démarrage le système de gestion de base de données CouchDB. À en croire le dé­ve­lop­peur de ce logiciel, la re­laxa­tion et l’in­sou­ciance sont les maîtres-mots de ce système de gestion de base de données. En effet, le logiciel « Couch » (canapé en français) est un système facile à utiliser et à ap­pré­hen­der, même pour les uti­li­sa­teurs peu habitués aux bases de données. Avec son interface très con­vi­viale et beaucoup d’éléments pouvant être saisis de façon intuitive, ce logiciel Open-Source est un produit unique en son genre, dans lequel des bases de données orientées documents sont associées à des bases de données re­la­tion­nelles. Dans les lignes ci-dessous, nous allons tenter de vous expliquer les per­for­mances d’Apache CouchDB, ses domaines d’ap­pli­ca­tion et les avantages qu’offre « Couch » aux en­tre­prises.

Les bases de données cons­ti­tuent le fondement des logiciels

Les bases de données sont la base, sur laquelle tra­vail­lent les en­tre­prises, et à partir de laquelle sont conçus les logiciels. Les données-clients, les données-produits, les in­for­ma­tions con­cer­nant l’ex­pé­di­tion et les rè­gle­ments, et des centaines d’autres données re­pré­sente le nerf central de la plupart des en­tre­prises. La manière dont les données sont en­re­gis­trées dépend avant tout du modèle de la base de données utilisé. Le modèle tra­di­tion­nel des bases de données re­la­tion­nelles trie par exemple les données en fonction des relations communes. On désigne par bases de données non-re­la­tion­nelles les bases de données NoSQL qui s’appuient sur d’autres méthodes. Parmi les bases de données non-re­la­tion­nelles, on a par exemple les bases de données orientées document. C’est le cas de la solution Apache CouchDB dont nous pré­sen­tons les grands principes ici.

Note

CouchDB peut être fa­ci­le­ment utilisé sur n’importe quel serveur. Pour que Apache CouchDB soit encore plus per­for­mant et plus efficace, vous pouvez l’installer dans un Cloud, comme par exemple dans un Serveur Cloud chez IONOS.

Les prin­ci­pales ca­rac­té­ris­tiques de CouchDB

CouchDB est un système de gestion de bases de données, capable de tirer le meilleur profit des bases de données orientées-document, pour atteindre le même niveau de per­for­mance que des bases de données re­la­tion­nelles. La fondation Apache est à l’origine du dé­ve­lop­pe­ment de Couch. C’est en 2005 que commence le travail autour du logiciel Open Source Apache CouchDB. Depuis le logiciel n’a fait qu’évoluer.

CouchDB est com­pa­tible avec les prin­ci­paux systèmes d’ex­ploi­ta­tion Linux, Unix, macOS et Windows et a été codé dans le langage de pro­gram­ma­tion Erlang. L’accès aux données de Couch se fait au moyen d’un in­ter­pré­teur de scripts très connu : le Ja­vas­cript.

CouchDB est une option in­té­res­sante par rapport aux bases de données re­la­tion­nelles

Les bases de données orientées documents comme CouchDB n’en­re­gistrent pas les données sous la forme de tableaux et de lignes, mais en tant que documents fermés. Comparons ces documents à des factures :

Une facture est un document autonome qui renferme toutes les données im­por­tantes en un jeu de données complet : l’émetteur de la facture, le numéro de facture, le des­ti­na­taire, le montant facturé, les objets facturés, l’adresse de l’émetteur et celles du des­ti­na­taire sont les in­for­ma­tions es­sen­tielles qui cons­ti­tuent un jeu de données univoque. Dans une base de données re­la­tion­nelles, toutes ces données doivent être en­re­gis­trées ligne par ligne. CouchDB permet cependant de réunir toutes ces données dans un seul et même document. Il n’est donc pas né­ces­saire de struc­tu­rer préa­la­ble­ment les données. C’est le document lui-même qui détermine la structure. CouchDB est donc un système de gestion de base de données non structuré.

L’approche orientée document simplifie beaucoup le processus de dé­ve­lop­pe­ment. Il permet par ailleurs de collecter de façon con­cen­trée des jeux de données si­mi­laires sur un plan sé­man­tique (par exemple des formats de données iden­tiques), mais qui diffèrent sur un plan syn­taxique (en termes de cons­truc­tion et de structure interne).

Les avantages d’Apache CouchDB

Un avantage de CouchDB est la syn­chro­ni­sa­tion efficace de plusieurs bases de données, sachant qu’une syn­chro­ni­sa­tion efficace est in­dis­pen­sable pour pouvoir répartir les données dans un cluster CouchDB. Les re­don­dances de données ainsi cons­ti­tuées per­met­tent de délester tout le système. De cette manière, il est possible pour plusieurs instances CouchDB de répondre si­mul­ta­né­ment à dif­fé­rentes requêtes de base de données. Il est également possible de cons­ti­tuer d’énormes réseaux de base de données avec une vaste ré­par­ti­tion géo­gra­phique.

Pour assurer une syn­chro­ni­sa­tion de la base de données pro­fi­table à dif­fé­rents uti­li­sa­teurs implantés à des lieux divers, Apache CouchDB mise sur une stratégie in­cré­men­tielle, qui présente un atout très important : le processus de syn­chro­ni­sa­tion n’est pas affecté par d’éventuels défauts ou pertes de connexion au sein du réseau. En cas de perte de connexion, le système reprendra le processus exac­te­ment au point où il en était au moment de la dé­con­nexion. Les dé­ve­lop­peurs insistent sur le fait que le système n’ignore pas ce type d’incidents, et savent que ce type de problème peut arriver à tout moment de la journée.

Pour trans­fé­rer et en­re­gis­trer les jeux de données, CouchDB a recours au Format JSON (abré­via­tion de Ja­vaS­cript Object Notation) un format connu pour sa facilité d’uti­li­sa­tion. C’est grâce à ce format qu’il est possible de traiter une structure non-organisée, qui à la dif­fé­rence des modèles re­la­tion­nels, contient des données non struc­tu­rées devant être en­re­gis­trées.

Les uti­li­sa­teurs peuvent d’ailleurs se fier à l’uti­li­sa­tion facile de CouchDB, étant donné que le système s’appuie sur des tech­no­lo­gies Web courantes comme leREST, le JSON et le Ja­vaS­cript. Rien n’empêche alors la mise en place d’im­por­tantes grappes de serveurs, mais aussi l’uti­li­sa­tion de petits terminaux mobiles.

Pourquoi CouchDB n’est-il pas la solution idéale pour tout le monde

Les dé­ve­lop­peurs d’Apache CouchDB sou­lig­nent eux-mêmes que leur intention n’est pas de faire de l’ombre aux bases de données re­la­tion­nelles, mais de po­si­tion­ner CouchDB à côté de celles-ci pour offrir aux uti­li­sa­teurs une autre option, simple à utiliser. Il n’est pas certain qu’une base de données orientée document soit re­com­man­dable, ni suf­fi­sante à n’importe quelle en­tre­prise.

Notez par exemple que les systèmes de bases de données re­la­tion­nelles sont plus pratiques et plus faciles à utiliser pour ceux qui sou­hai­tent en­tre­te­nir ré­gu­liè­re­ment leurs jeux de données sous la forme de calculs ou autres requêtes plus ou moins complexes. C’est entre autres lié au fait qu’avec CouchDB, vous devez intégrer vous-mêmes les dif­fé­rentes fonctions, ce qui demande à la fois du temps, mais aussi une certaine com­pé­tence.

Les domaines d’ap­pli­ca­tion d’Apache CouchDB

Comme nous l’avons mentionné plus haut, avec beaucoup de fonc­tion­na­li­tés faciles à utiliser, CouchDB est une option per­ti­nente pour ceux qui dé­ve­lop­pent des ap­pli­ca­tions internet. Les dé­ve­lop­peurs insistent sur le fait que CouchDB a été spé­cia­le­ment conçu pour le Web, tandis que beaucoup d’autres bases de données doivent être adaptées au Web. On trouve par exemple ce système de base de données sur beaucoup de pages de l’ap­pli­ca­tion Facebook. CouchDB a d’ailleurs été utilisé dans le passé par Ubuntu, le fameux système de dis­tri­bu­tion Linux, pour syn­chro­ni­ser les signets et les adresses, un autre exemple de ce qu’on appelle « Le Real World Data ».

Installer et exécuter CouchDB en quelques clics

CouchDB est com­pa­tible avec les prin­ci­paux systèmes d’ex­ploi­ta­tion, et c’est pourquoi ses  dé­ve­lop­peurs proposent sur leur Site des versions à té­lé­char­ger pour chaque système d’ex­ploi­ta­tion. La procédure à suivre pour son ins­tal­la­tion peut différer en fonction du système d’ex­ploi­ta­tion. Sous Linux/Ubuntu par exemple, la procédure est la suivante :

commencez par mettre à jour le Ges­tion­naire de paquets de votre Ins­tal­la­tion Ubuntu, et ajoutez le dépôt personnel de logiciel (PPA) :

sudo apt update
sudo apt install software-properties-common

Réac­tua­li­sez votre ges­tion­naire de paquets encore une fois :

sudo apt update

Installez alors CouchDB à l’aide de la commande suivante :

sudo apt install couchdb
Conseil

Vous trouverez une aide plus précise pour l’ins­tal­la­tion avec les dif­fé­rents systèmes d’ex­ploi­ta­tion dans la do­cu­men­ta­tion en ligne d’Apache CouchDB.

Aller au menu principal