Sie sind auf Seite 1von 19

COUCHEDB

Présenté par Amadou Moustapha


Ndongo et Mohamed Ndiaye
CouchDB est un système de gestion de bases de données orienté documents
comme MongoDB. Il est destiné principalement aux applications web, en raison de
son support des protocoles propres au Web. Les documents, au format JSON, sont
manipulables en JavaScript à travers une interface HTTP.
CouchDB offre une grande richesse fonctionnelle au niveau du serveur, avec la
possibilité de définir des filtres et des vues dans le langage de votre choix –
habituellement JavaScript – avec un support de MapReduce, et qui génère des
index pour offrir de meilleures performances.
PRÉSENTATION

CouchDB a été créé par Damien Katz, un ancien développeur de Lotus Notes
chez IBM. Il le développa pendant deux ans, avant de le libérer sous Licence
Apache. Son but était de faire de CouchDB un moteur de bases de données
adapté à Internet. En 2011, Damien Katz a annoncé qu’il allait se concentrer
sur le développement de CouchBase Server, en intégrant la société Couchbase.
Il en fut le Chief Technical Officer jusqu’en août 2013.
POURQUOI UTILISER COUCHDB ?
• Simple et intuitif à utiliser (d’où son nom relaxant de CouchDB)
• Une manière différente de modéliser vos données
CouchDB s'inspire grandement de l'architecture du Web et des concepts de ressources, de
méthodes et de représentations. Il fournit des moyens efficaces de requête, de sous-division, de
fusion et de filtrage de vos données.
• Vues permettant de travailler sur des données sans schéma prédéfini
Les vues permettent de réaliser les opérations de sélections, de classement, etc. sur les
documents contenus dans la base de données. Le concept fondamental derrière les vues se
nomme map/reduce. Les vues peuvent être codées en plusieurs langages.
• Une réponse mieux adaptée aux applications courantes
• Mécanisme de réplication
Son rôle fondamental est de synchroniser au moins deux bases de données CouchDB. La
réplication permet de ce fait de résoudre de nombreux problèmes : permettre de manière
fiable la redondance des données entre plusieurs machines ; répartir les données dans un cluster
de bases CouchDB qui partagent un sous-ensemble du nombre total de requêtes qui sont
adressées au cluster (répartition de charge) ; répartir les données sur des sites différents.
COMPARAISON DE COUCHEDB À
MONGODB
MISE EN ŒUVRE DE COUCHEDB
INSTALLATION
Les fichiers d’installation de CouchDB peuvent être téléchargés sur le
site qui lui est dédié : http://couchdb.apache.org . À l’heure
où nous écrivons ces lignes, la dernière version stable est la 2.1.1.
CouchDB est disponible dans Windows MacOs et dans les dépôts
Debian/Ubuntu, en général avec au moins une version de retard. Les
moteurs NoSQL évoluant vite, nous évitons en général d’installer
d’anciennes versions. Dans la suite, nous allons vous montrer le
déroulement de l’installation sous Windows qui est assez simple.
Sur le site de couchedb, on peut choisir de télécharger la version Windows qui est un exécutable au format
msi.
Après le téléchargement on clique sur l’exécutable et on se laisse guider jusqu’à la fin. Le
setup inclut aussi l’installation de Fauxton, l’outil web de gestion de CouchDB comparable
au PhpMyAdmin de MySQL.
UTILISATION DE FAUXTON

Après l’installation, CoucheDB est automatiquement lancé. Pour créer une base
de données ou faire d’autres traitement nous allons commencer par ouvrir
fauxton. Pour le trouver, appelez le chemin « _utils » de l’emplacement web de
CouchDB. L’image qui suivra, représente la page d’accueil du site de Fauxton
appelée sur notre serveur http://127.0.0.1:5984/_utils. Les détails de son
utilisation seront expliqués plus tard dans la démonstration en fin de
présentation.
LES VUES
CouchDB permet donc de stocker des documents, de les lire, de les mettre à jour... mais
comment effectuer des requêtes ? En effet, si on a besoin de connaître l'identifiant
unique de chaque document pour le retrouver, ça ne sert pas à grand chose. CouchDB
répond à ce besoin avec un outil extrêmement puissant : les vues.
Les vues permettent de réaliser les opérations de sélections, de classement, etc. sur les
documents contenus dans la base de données. Le concept fondamental derrière les
vues se nomme map/reduce(http://fr.wikipedia.org/wiki/MapReduce). Les vues
peuvent être codées en plusieurs langages. Nous nous bornerons ici au langage prévu
par défaut : Javascript !
L'opération map itère sur tous les documents de la base, et permet d'y appliquer un
algorithme, puis d'exporter la réponse sous forme de valeurs associées à des clés.
L'opération reduce permet d'itérer sur les ensembles clés-valeurs créées par
l'opération map, pour en ressortir une valeur unique (par exemple des sommes, des
moyennes). La théorie est un peu compliquée, attendez les exemples !
DESIGN DOCUMENT
• Les vues sont stockées dans des documents spéciaux, appelés « design documents ». On peut
déclarer plusieurs vues dans un design document, permettant de regrouper les vues par
famille. Un design document a les spécificités suivantes :
- Son nom est précédé de _design/, par exemple _design/blog.
- Il contient une clé language qui indique l'interpréteur à utiliser pour parser les vues
(exemple "javascript").
- Il contient un objet views, objet dont chaque clé est le nom d'une vue, et dont la valeur est
elle-même un objet, devant comporter la clé map, qui contient la fonction qui réalise l'opération
de map, et pouvant comporter la clé reduce, qui contient la fonction qui réalise
l'opération reduce.
La fonction déclarée dans map prend un unique argument : le document (au format JSON). À
chaque fois que l'on veut exporter, dans la réponse de la vue, une clé (et sa valeur), on utilise la
fonction emit (clé à exporter, valeurs à exporter).
CONCLUSION
De nombreux projets s'appuient déjà sur CouchDB, depuis les systèmes embarqués,
jusqu'aux nuages de serveurs. En utilisant des protocoles connus, ouverts et éprouvés, les
concepteurs ont donné à leur création de solides bases. En choisissant le modèle de
développement open source, ils disposent d'une large audience, d'un développement
rapide et de plein de bonnes idées qu'ils n'auraient pas eues eux-mêmes. Enfin, en
repensant entièrement le concept de stockage de données, ils permettent aux
développeurs d'imaginer des applications nouvelles, plus souples et au moins aussi
puissantes. CouchDB souffre de plusieurs défauts qui le rendent peu apte à soutenir
des applications de production exigeantes. En revanche, Couchbase Server, qui en est
une évolution, est plus adapté aux besoins de production.

Das könnte Ihnen auch gefallen