CouchDB
Apache CouchDB, (dále pouze CouchDB) je open source dokumentově orientovaný databázový systém napsaný v programovacím jazyku Erlang a navržený pro místní replikaci a snadnou horizontální škálovatelnost napříč rozmanitými zařízeními. CouchDB je podporována komerčními subjekty CouchBase a Cloudant. HistorieV dubnu 2005, Damien Katz (bývalý vývojář Lotus Notes v IBM; současně zakladatel a CTO CouchBase) zaslal na svůj blog zprávu o novém databázovém systému, na kterém v té době pracoval. Na detaily byl příspěvek o projektu v jeho rané fázi skoupý, nicméně z příspěvku bylo jisté, že se jedná o úložný systém pro objemné objektové databáze nazývaný CouchDB (Couch – pohovka – je akronymem pro cluster nespolehlivého spotřebitelského hardware).[1] Jeho cílem bylo vytvořit databázi určenou pro Internet a od základu ji navrhnout pro služby web aplikací. CouchDB byla původně napsána v C++, později byl však projekt přepsán pro Erlang OTP platformu vybranou pro její toleranci k chybám. Vývoj projektu po téměř dva roky sám sponzoroval a uvolnil jako open source projekt pod GNU GPL. V únoru 2008 se projekt stal součástí Apache Incubator a byl přelicencován pod Apache Licence.[2] V listopadu 2008 se stal plnohodnotným Apache projektem podobně jako Apache HTTP Server, Apache Tomcat a Apache Ant.[3] V současnosti je CouchDB spravována Apache Software Foundation s podporou ze strany IBM. Katz na projektu pracuje na plný úvazek jako vedoucí vývojář. NávrhCouchDB je v mnohém podobná jiným dokumentovým úložištím jako jsou MongoDB a Lotus Notes. Namísto ukládání dat v řádcích a sloupcích tak, jak to dělají relační databázové systémy, CouchDB spravuje kolekce JSON dokumentů. Dokumenty v rámci kolekce nesdílejí společné schéma, přičemž nabízejí dotazovací kapacity prostřednictvím pohledů. Pohledy jsou definovány agregačními funkcemi a souběžně s tím filtrovány obdobně jako v MapReduce přístupu. Pohledy jsou většinou ukládány v databázi a jejich indexy plynule obnovovány, nicméně dotazy mohou vyústit i v pouze dočasné pohledy. CouchDB podporuje systém zprostředkovávající pohledy prostřednictvím externích socket serverů a na JSONu založeném protokolu.[4] Díky tomu takové servery mohly být a také byly vytvořeny v mnoha různých jazycích. CouchDB nabízí RESTful HTTP API spolu s množstvím volně dostupných klientů. Dodatečně, plugin architektura dovoluje užití různých počítačových jazyků pro pohledové servery, za všechny například JavaScript (výchozí), Perl, Ruby, Python, PHP či Erlang. Podpora ostatních jazyků může být snadno doplněna. Návrh CouchDB a její filosofie naplno čerpá z Web architektury, z jeho konceptu, zdrojů a metod a zjednodušeně může být popsána následujícím: CouchDB je užívána mnoha softwarovými projekty a webovými stránkami.[5] Například v distribuci Ubuntu od její verze 9.10 slouží k ukládání a synchronizaci adresářů, Tomboy poznámek či Firefox záložek se službou one.ubuntu.com.[6] Od verze 0.11 CouchDB podporuje CommonJS' Module specifikaci.[7] Vlastnosti
PříkladyCouchDB nabízí množinu RESTful HTTP metod (POST, GET, PUT, DELETE) za pomoci cURL nástroje příkazové řádky pro komunikaci s CouchDB serverem na výchozím portu 5984: curl http://127.0.0.1:5984/ CouchDB server zpracuje HTTP požadavek a vrátí následující odpověď formátovanou jako JSON řetězec: {"couchdb":"Welcome","version":"1.0.1"} Pro vytvoření nové databáze 'couch' stačí vykonat následující příkaz: curl -X PUT http://127.0.0.1:5984/couch V případě, že databáze ještě neexistuje je vytvořena a dostanete následující odpověď: {"ok":true} nebo tuto odpověď v případě, že databáze již existuje: {"error":"file_exists","reason":"The database could not be created, the file already exists."} Tento příkaz slouží k získání informace o databázi: curl -X GET http://127.0.0.1:5984/couch Při úspěšném zpracování server vrátí odpověď: {"db_name":"couch","doc_count":0,"doc_del_count":0,"update_seq":0,"purge_seq":0,"compact_running":false,"disk_size":79, "instance_start_time":"1303035684557220","disk_format_version":5,"committed_update_seq":0} A databázi včetně veškerého jejího obsahu můžeme samozřejmě i smazat: curl -X DELETE http://127.0.0.1:5984/couch Proběhlo-li vše v pořádku, obdržíme kladnou odpověď: {"ok":true} či odpověď zápornou v případě, že databáze neexistuje: {"error":"not_found","reason":"missing"} Open source komponentyCouchDB zahrnuje množství jiného open source softwaru jako součást své základní distribuce.
Příklady NoSQL databázíSouvisející článkyReference
Bibliografie
Externí odkazy
Video odkazy
|
Portal di Ensiklopedia Dunia