Dezvoltat de | Apache Software Foundation , Damien Katz , Jan Lehnardt , Noah Slater , Christopher Lenz , J. Chris Anderson |
---|---|
Prima versiune | 2005 |
Ultima versiune | 3.1.1 (17 septembrie 2020) |
Depozit | github.com/apache/couchdb |
Scris in | Erlang , JavaScript , C ++ și C |
Sistem de operare | Linux , Microsoft Windows și macOS |
Mediu inconjurator | Multi-platformă |
Tip | Baza de date orientată spre documente |
Licență | Licență Apache 2.0 |
Site-ul web | couchdb.apache.org |
Apache CouchDB este un sistem de gestionare a bazelor de date orientat spre documente scris în limba Erlang și distribuit sub licența Apache .
Conceput pentru web , face parte din mișcarea NoSQL și a fost conceput pentru a putea fi distribuit pe un cluster de servere .
În loc să fie comandată în rânduri și coloane, baza de date CouchDB este o colecție de documente JSON . În plus, CouchDB conține un server HTTP care permite efectuarea de cereri și returnează datele sale în formă JSON . Puteți interoga un server CouchDB direct cu un browser web sau puteți executa cereri cu JavaScript . Principalele operațiuni efectuate sunt MAP și REDUCERE , consultați articolul MapReduce . Aceste operații sunt utile atunci când baza de date este distribuită, sunt supuse constrângerilor de comutativitate, asociativitate și idempotență .
Datele pot lua orice tip atomic: șiruri, numere întregi, număr în virgulă mobilă și tipuri booleene. De exemplu:
„Titlu”: „Cea mai bună carte”% șir de tip de titlu
„Ediție”: număr întreg de tip ediție 2015%
Documentele sunt obiecte JSON compuse din perechi cheie-valoare, unde valorile pot fi de mai multe tipuri
Fiecare document are un identificator (_id) și un număr de revizuire (_rev). Fiecare actualizare creează o nouă versiune, cu același _id, dar cu un număr de revizuire diferit.
Să presupunem că avem un anumit document care are un anumit identificator (_id) și un număr de revizuire (2_id1). Să presupunem că există doi utilizatori (ut_1 și ut_2) care doresc să scrie în acest document. Primul care va ajunge va transforma versiunea în (3_id1). Când ajunge al doilea, nu poate scrie, deoarece vrea să scrie în (2_id1) care nu mai există.
Pentru a afla care baze de date sunt deja prezente:
Obțineți o anumită bază de date, de exemplu aici filme:
Fiecare document din CouchDB are un identificator. Acest ID este unic în baza de date. Pentru a obține un UUID
Pentru a face modificări, trebuie să utilizați alte metode HTTP : POST, GET, PUT și DELETE.
De exemplu, pentru a adăuga:
curl –X PUT HTTP://localhost:5984/films/ a0b611169309cf4acfd6c19afc001eb4 \ -d ‘{“cle”:”valeur”}’Pentru a șterge un document, trebuie să îl revizuiți, să citiți documentul înainte de al putea șterge. CouchDB nu șterge ca atare, dar creează o nouă versiune fără documentul șters.
curl -i -X DELETE \ "http://localhost:5984/films/74c7a8d2a8548c8b97da748f43000f1b" \ -H "If-Match: 2-17e4ce41cd33d6a38f04a8452d5a860b"