Introduction

Voici une brève introduction à propos de CouchDB (traduction de l'introduction officielle).

Qu'est-ce que CouchDB ?

CouchDB est un serveur de base de données :

  • Orienté Document, accessible via une API REST HTTP/JSON.
  • Sans schéma, sans tables.
  • Distribué, implémentant une réplication incrémentale robuste avec une gestion et une détection bi-directionnelle des conflits.
  • En mesure d'effectuer des requêtes indexables implémentant un moteur de reporting qui utilise Javascript (par défaut) comme langage de requête.

Qu'est-ce que CouchDB n'est pas ?

CouchDB n'est pas :

  • Une base de données relationnelle (comme MySQL, PostgreSQL…)
  • Un remplaçant des bases de données relationnelles.
  • Une base de données orientée objet. Ou plus précisément, destiné à fonctionner comme une couche de persistance transparente pour un langage de programmation orienté objet.

Caractéristiques clés

Documents

Un document est un objet contenant des champs nommés. Les valeurs de ces champs peuvent être des chaînes de caractères, des nombres, des dates… ou même des listes et des tableaux associatifs.

Il est représenté lors des échanges avec la base de données par un objet JSON.

Un exemple de document pourrait être un billet de blog :

{
 "_id": "j-aime-le-chocolat",
 "Subject": "J'aime le chocolat",
 "Author": "Arthur",
 "PostedDate": "16/09/2009",
 "Tags": ["chocolat", "gâteau", "cuisine"],
 "Body": "Je me suis rendu compte aujourd'hui que j'aimais le chocolat, et surtout les gâteaux au chocolat."
}

Dans l'exemple ci-dessus, Subject est un champs contenant la chaîne de caractère “J'aime le chocolat”. Tags est un champs contenant une liste de valeurs : “chocolat”, “gâteau” et “cuisine”.

Une base de données CouchDB est une collection “à plat” de ces documents. Chaque document est identifié par un ID unique (c'est le champs “_id” ci dessus).

Vues

Pour remédier au problème de rajout de structure aux données semi-structurées, CouchDB intègre un modèle de vue en utilisant le langage Javascript pour sa description.

Les vues sont la méthode d'agrégation et de présentation des documents dans une base de données, et sont construites à la demande afin de rendre compte des données issues de ces documents. Les vues sont construites dynamiquement et ne modifient pas le document sous-jacent, vous pouvez avoir autant de représentations différentes (sous forme de vues) des mêmes données, que vous voulez.

Sans schéma

Contrairement aux bases de données SQL qui sont conçues pour stocker et rendre compte de données très structurées et liées entre elles, CouchDB est conçu pour stocker et rendre compte de grandes quantités de données semi-structurées, orientées document. CouchDB simplifie grandement le développement d'applications orientées document, qui constituent l'essentiel des applications web collaboratif.

Le schéma évolue avec les besoins et dans une base de données SQL, le stockage des données existantes doit être mis à jour pour coller au schéma. Cela provoque souvent des problèmes dès que de nouveaux besoins apparaissent qui n'étaient tout simplement pas prévu dans le design initial de la base de données, et, pour les systèmes distribués, cela rend les mises à jour problématiques pour chaque hôte qui doit passer par une mise à jour du schéma.

Avec CouchDB, aucun schéma n'est appliqué, de sorte que de nouveaux types de documents, avec un sens nouveau, peuvent être ajouté en toute sécurité aux côtés des anciens. Le moteur de vue, en utilisant Javascript, est conçu pour manipuler facilement des nouveaux types de documents, des documents disparates… mais qui restent de simples documents.

Distribué

CouchDB est une base de données distribuée autonome. Un certain nombre d'hôtes servant CouchDB (serveurs et clients hors ligne) peuvent avoir des répliques indépendantes de la même base de données, avec lesquelles les applications ont une interactivité complète (interrogation, ajout, modification, suppression). De retour en ligne ou de manière programmée, les changements de la base de données sont répliqués de manière bi-directionnelle (ou pas) entre les hôtes.

CouchDB intègre nativement la détection et la gestion des conflits, et le processus de réplication est incrémental et rapide, ne copiant que les documents et les champs modifiés depuis la réplication précédente. La plupart des applications ne nécessitent pas de développement spécifique pour profiter d'un environnement distribué et de la réplication.

Contrairement aux lourdes tentatives d'ajout de fonctions distribuées par dessus les mêmes modèles et bases de données traditionnels, CouchDB est le résultat de conception, d'ingénierie et d'intégration minutieuse. Les modèles de document, de vue, de sécurité, de réplication, le langage spécifique de requête, la couche efficace et robuste de gestion des accès disque sont tous soigneusement intégré pour donner un système fiable et efficace.

En savoir plus

Vous voulez en savoir plus ? Découvrez en plus avec des exemples.

introduction.txt · Dernière modification: 2009/10/29 11:55 par maximegarcia
 
 
Sauf mention contraire, le contenu de ce wiki est placé sous la licence suivante:CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki