PDA

View Full Version : [Python]CouchDB and Python: Magia!


nico159
24-02-2009, 14:32
Mi sono imbattuto per caso in un database al quanto particolare di recente: CouchDB. Cos'è CouchBD? Una maniera completamente differente di pensare ai database :) si potrebbe dire che CouchBD è il web :eek:.
Prima di tutto non è un database relazionale, ma un database orientato ai documenti. Facendo una similitudine, funziona esattamente come i dizionari in Python: ogni documento più avere un qualsiasi numero di coppie chiave-valore e non deve attenersi ad alcuno schema prestabilito.
"Author": "Rusty"
"PostedDate": "5/23/2006"
"Tags": ["plankton", "baseball", "decisions"]
"Body": "I decided today that I don't like baseball. I like plankton."
In un database classico bisogna definire la struttura dei dati prima di poterli inserire. Nel libro http://books.couchdb.org/ fa l'esempio dei biglietti da visita. Alcuni biglietti da visita hanno il numero di fax, altri no. In un database classico dovrei aggiungere il campo fax anche se solo una persona utilizza il fax, in CouchBD invece non c'è bisogno di definire alcuno schema prima di inserire i dati. Posso aggiungere il fax solo all'unica persona che utilizza il fax. CouchBD si adatta al cambiamento dei dati :eek:

CouchBD è scritto in Erlang e utilizza il protocollo HTTP per comunicare (CouchBD gira su un server web!). Dato che HTTP già supporta cose come l'autenticazione, il carching..non c'è bisogno di un middleware. Possiamo addirittura interrogare il nostro db tramite Ajax. Per interrogare i dati utilizza MapReduce (http://labs.google.com/papers/mapreduce.html), sviluppato da Google. I dati vengono interrogati tramite funzioni Javascript.
Non ci sono lock(!), è nato con l'idea di poter essere distribuito...è veramente un progetto molto interessante. Siamo ancora all'inizio, ma so già che lo seguirò con tanto interesse ;)

CouchBD in the real world? Il sito del framework PyLons (http://pylonshq.com/) utilizza CouchBD. Tramite la libreria couch-db python (http://code.google.com/p/couchdb-python/) Python permette di fare vere magie:
http://lethain.com/entry/2008/aug/18/an-introduction-to-using-couchdb-with-django/

shinya
24-02-2009, 14:51
E' un progetto molto interessante, confermo! Anche il blog dell'autore è molto interessante di solito.

http://damienkatz.net/
http://twitter.com/CouchDB

cdimauro
24-02-2009, 15:02
Dalla descrizione sembra molto interessante. Stasera, se ho tempo, me lo guardo per benino. :fagiano: