CouchDB

Apache CouchDB Descrierea imaginii Couchdb screenshot.png. informație
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 .

Proiecta

Î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ță .

Tipuri de date

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

Documentele sunt obiecte JSON compuse din perechi cheie-valoare, unde valorile pot fi de mai multe tipuri


{ "_id":"discussion_tables", "_rev":"D1C946B7", "Sunrise":true, "Sunset":false, "FullHours":[1,2,3,4,5,6,7,8,9,10], "Activities": [ {"Name":"Football", "Duration":2, "DurationUnit":"Hours"}, {"Name":"Breakfast", "Duration":40, "DurationUnit":"Minutes", "Attendees":["Jean", "Bob", "Maurane", "Marie", "Antoine"]} ] }

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.

Actualizarea și coerența datelor

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ă.

Configurarea CouchDB

curl http://localhost:5984/


Pentru a afla care baze de date sunt deja prezente:

curl -X GET http://127.0.0.1:5984/_all_dbs


Obțineți o anumită bază de date, de exemplu aici filme:

curl http://localhost:5984/films/


Fiecare document din CouchDB are un identificator. Acest ID este unic în baza de date. Pentru a obține un UUID

curl -X GET http://localhost:5984/_uuids

Adăugați, editați și ștergeți documente

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"

linkuri externe

  1. „  Versiunea 3.1.1  ” ,17 septembrie 2020(accesat pe 7 octombrie 2020 )