Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

CouchDB : la base de données NoSql arrive sur Windows
Ce projet open-source serait plus rapide et plus simple que les SGBD classiques

Le , par Idelways

166PARTAGES

1  0 
Le premier système de gestion de base de donnée non relationnel (ou NoSql) stable et prêt pour un usage en production vient d'être lancé. Il s'appelle «CouchDB», a annoncé mercredi la société Couchio, qui sponsorise le projet.

Deux améliorations majeures ont valu à cette version 1.0 le chiffre rond : une nette amélioration des performances, et la compatibilité de la nouvelle version avec les systèmes Windows.

A en croire les tests de benchmarking réalisés par l'entreprise, la nouvelle version serait jusqu'à 300% plus rapide en lecture et écriture, résultat d'un important travail sur l'optimisation du code source.

Il s'agit de la première version de CouchDB entièrement fonctionnelle sous Windows, que ce soit Serveur et Desktop, les versions précédentes ne tournaient que sous Linux.

Une variante développée par Google existe pour Android.

CouchDB stocke les données dans de simples paires clés-valeurs JSON, format de données emprunté au Javascript.

Une base CouchDB pourrait être interrogée via de simples requêtes HTTP.

Cette technologie devrait intéresser les développeurs web, essentiellement pour la sauvegarde hors-ligne des données des applications web qui doivent fonctionner même sans accès internet.

En outre, développer pour CouchDB serait plus facile que pour une base de données relationnelle. Il n'est pas nécessaire par exemple de savoir formuler des requêtes SQL pour insérer ou extraire les données d'une base.

CouchDB repose sur une implémentation de Google MapReduce pour construire ses requêtes.

Le développement de CouchDB a commencé en 2005 dans les laboratoires d'IBM comme projet pour Lotus Notes afin d'aider la réplication hors ligne des données.

En 2008, le projet est devenu open-source et indépendant, avant que Couchio ne commence à assurer son support.

CouchDB est un projet de la Fondation Apache. Le SGBD et son code source sont disponibles en téléchargement sur cette page.

Source : Le site de Couchio

Lire aussi :

Des développeurs vous offrent une méthode d'utilisation de NoSQL, cette technologie est-elle un must ou un feu de paille ?

Apache Cassandra en version 0.6.0 est disponible : gain de performances de 30 % pour la base de données NoSQL

Faut-il en finir avec la mode NoSQL ? Ou est-ce plus qu'une simple mode passagère ?

Les rubriques (actu, forums, tutos) de Développez :

SGBD
Windows
Apache
Développement Web
Mobile

Et vous ?

Allez-vous tester cette version pour vos développement ?
Sa sortie aidera-elle l'émergence du NoSql?

En collaboration avec Gordon Fowler

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de verbose
Membre éclairé https://www.developpez.com
Le 16/07/2010 à 17:48
Je serais vivement intéressé par un tutoriel pour expliquer la mise en oeuvre d'une base NoSQL, notamment la construction des requêtes, et qui aborde aussi la théorie afin de comprendre comment ça tourne.
2  0 
Avatar de vosaray
Membre actif https://www.developpez.com
Le 22/07/2010 à 10:11
Citation Envoyé par Lyche Voir le message
Personnellement, je n'en vois pas l'utilité....
Je comprends que l'on puisse vouloir autre chose, mais je n'en vois pas l'intérêt.
Je comprends bien que tu ne comprends pas

CouchDB est un concept assez diffèrent des bases de données relationnelles classiques. Ce n'est pas un «*concurrent*» mais simplement un concept diffèrent.

L'idée de base consiste à résoudre la problématique de la gestion de volumes de données importantes dans un environnement pleinement distribué.

Ceci inclut la répartition des calculs et la réplication des données sur N noeuds, problématiques incontournables lorsqu'on est dans un environnement virtualisé/clusterisé/cloudé ou tout simplement lorsqu'on souhaite faire une féderation de données sur plusieurs serveurs.

CouchDB intègre la notion de réplication de données au coeur même du modèle de stockage en proposant un système de révision interne. Cela facilite la réplication, qu'elle soit simple (maitre/esclave) ou bien répartie (fully meshed).

Avec CouchDB tu peux sereinement et facilement construire des clusters de données alors que c'est une vrai galère avec les moteurs traditionnels.

D'ailleurs si les moteurs type MySQL sont performants en stand-alone, leur performances frisent le tragique dès lors qu'on est dans un cas de réplication (même simple) avec un volume important en écriture.

CouchDB a aussi ses «*mauvais côtés*». En effet les bases de données relationnelles reposent sur le fait que les données sont structurées et complexes (relations, règles d’intégrité), alors que CouchDB n'est prévu que pour gérer des données simples ( en fait ce sont des couples clé/valeur, des simples hash-map ).

Donc CouchDB n'est peut-être pas plus performant qu'un moteur relationnel dans certains cas et lorsqu'on utlise des données complèxes (les relations sont impléméntables, mais engendrent un surcroit de temps de calcul), mais lorsqu'on traite des données simples, ou alors qu'on peut se permettre de dupliquer une partie de celles ci, alors ses performances sont vraiement mises en valeurs.

Pour revenir à ton interrogation, «*on veut autre chose*» que les moteurs relationnels quand il s'agit de gérer un énorme volume de données, repartis sur N noeuds, et avec un temps d'accès quasi constant et scalable et qu'on ne dispose pas d'une infrastructure hardware ultra performante ni d'une équipe de DBA avec 10 ans d’expérience dans le clustering .

Par contre «*on veut*» du relationnel quand on fait une «*appi de gestion*» (au sens large), et qu'on est prêt à faire des concessions sur la distribution des traitements et des données.

D'ailleurs, fort heureusement, les deux peuvent cohabiter sans aucun souci

De plus les deux mondes vont aussi évoluer dans les années à venir. Il n'est pas dit que l'arrivée des bases NoSQL ne secouent pas un peu les concepts internes des moteurs classique. Et il est fort probable que les bases NoSQL évoluent aussi pour gérer de manière plus efficace des données complexes, tout en restant distribuables.

Pour ceux que ça intéresse, il y a un livre "on line" qui explique les concepts de CouchDB et présente un use case classique sur http://books.couchdb.org/relax/

Suite au succès de CouchDB dans le monde libre, les créateurs et principaux contributeurs ont crée Couch IO (http://www.couch.io), une société de conseil axée sur CouchDB, voir. Ceci est plutôt une très bonne nouvelle, car cela permettra de proposer des solutions commerciales autour de couch.
1  0 
Avatar de FailMan
Membre expert https://www.developpez.com
Le 16/07/2010 à 14:59
Enfin une alternative à SQLite ?
0  0 
Avatar de mitnick2006
Membre régulier https://www.developpez.com
Le 16/07/2010 à 15:07
et enfin une implémentation de NoSql en windows, c'est bien pour remplacer l'ancien langage SQL
0  0 
Avatar de FailMan
Membre expert https://www.developpez.com
Le 16/07/2010 à 15:10
Citation Envoyé par mitnick2006 Voir le message
et enfin une implémentation de NoSql en windows, c'est bien pour remplacer l'ancien langage SQL
Tout dépend de l'utilisation que tu en fais J'utilise certains types d'applications qui utilisent une base SQLite et pour lesquelles je pense que NoSQL aurait un peu plus d'intérêt, par contre d'autres pour lesquelles MySQL (que j'utilise) reste imbattable.
0  0 
Avatar de kaymak
Membre chevronné https://www.developpez.com
Le 16/07/2010 à 17:51
Citation Envoyé par verbose Voir le message
Je serais vivement intéressé par un tutoriel pour expliquer la mise en oeuvre d'une base NoSQL, notamment la construction des requêtes, et qui aborde aussi la théorie afin de comprendre comment ça tourne.
-> http://refcardz.dzone.com/refcardz/g...nosql-and-data
0  0 
Avatar de zoonel
Membre habitué https://www.developpez.com
Le 16/07/2010 à 18:23
c 'est moi ou on mélange tout ici ? ( réf à : Enfin un remplaçant de SQLite ? , c'est bien pour remplacer l'ancien langage SQL)

parce que nosql est juste un base de donnée non relationnelle tandis que le sql est un language d'interrogation de base de données relationnelles.
Bref ceux qui ont besoin de stoker des données de façon relationnelle le feront avec un bdd rel comme SQLite, et les autres pourront utiliser Nosql. Les premiers pourront utiliser le sql pour interroger leur bdd les autres un autre language (peut-on vraiment parler de language dans le cas de bdd non relationnel ?)
0  0 
Avatar de FailMan
Membre expert https://www.developpez.com
Le 16/07/2010 à 18:35
Citation Envoyé par zoonel Voir le message
c 'est moi ou on mélange tout ici ? ( réf à : Enfin un remplaçant de SQLite ? , c'est bien pour remplacer l'ancien langage SQL)
Non, j'ai certaines applis qui utilisent SQLite alors que NoSQL suffirait simplement, seulement à l'époque où ça a été conçu, NoSQL n'existait pas ou était totalement inconnu
0  0 
Avatar de dtcSearch
Membre actif https://www.developpez.com
Le 16/07/2010 à 22:55
hummm...

Ça pourrait être intéressant dans le cadre de projet nécessitant le stockage d'information totalement paramétrable...

NoSQL permet les transactions?
0  0 
Avatar de damien.charpentier
Nouveau membre du Club https://www.developpez.com
Le 17/07/2010 à 0:33
Citation Envoyé par dtcSearch Voir le message
hummm...

Ça pourrait être intéressant dans le cadre de projet nécessitant le stockage d'information totalement paramétrable...

NoSQL permet les transactions?
A l'époque où je l'ai testée, Big Table (via google app engine) ne supportait que les single row transactions. C'est surement le prix a payer pour une base très scalable..
0  0