www.wikidata.de-de.nina.az
Apache CouchDB ist ein Datenbankmanagementsystem nach dem Ansatz einer dokumentenorientierten Datenbank das seit 2005 als freie Software entwickelt und unter den Bedingungen von Version 2 0 der Apache Lizenz verbreitet wird CouchDB ist grosstenteils in der Programmiersprache Erlang geschrieben Als Skriptsprache wird JavaScript eingesetzt welches serverseitig von SpiderMonkey interpretiert wird Apache CouchDBAdministrationsoberflache FutonBasisdatenEntwickler Apache Software FoundationErscheinungsjahr 2005Aktuelle Version 3 3 2 1 25 April 2023 Betriebssystem Linux Unix Mac OS X WindowsProgrammiersprache ErlangKategorie dokumentenorientierte DatenbankLizenz Apachedeutschsprachig neincouchdb apache orgDas Ziel von CouchDB ist es das einfache Datenmodell einer dokumentenorientierten Datenbank mit der Skalierbarkeit und Leistung einer professionellen relationalen Datenbank zu verknupfen Dazu muss CouchDB auf Mehrkern Systemen und in Multi Server Umgebungen einsetzbar sein Inhaltsverzeichnis 1 Entwicklungsgeschichte 2 Einsatz 3 Eigenschaften 4 Integrierte Software 4 1 Fauxton 4 2 Couchapp 5 PouchDB 6 Literatur 7 Weblinks 8 EinzelnachweiseEntwicklungsgeschichte BearbeitenCouchDB wird seit 2005 von Damien Katz entwickelt der vorher als Senior Developer an Lotus Notes gearbeitet hatte Sein Ziel ist die Verbindung des dokumentenorientierten Ansatzes von Lotus Notes mit dem MapReduce Ansatz von Bigtable der verteilten High Performance Datenbank von Google die als proprietare Losung nicht frei verfugbar ist Mit CouchDB sollte ein schemaloses Datenbanksystem entstehen das durch Verteilbarkeit eine hohe Durchsatzrate ermoglicht 2 Der Name CouchDB ist ein halbironisches Backronym das fur Cluster of unreliable commodity hardware Data Base steht Zu deutsch Datenbank auf einem Cluster aus unzuverlassiger Standardhardware Im November 2007 wies die IANA CouchDB offiziell die Portnummer 5984 tcp udp zu 3 Nachdem Damien Katz die CouchDB Entwicklung fur zwei Jahre privat betrieb arbeitete er von Januar 2008 4 bis 2009 als Vollzeitangestellter von IBM und trieb dort die weitere Opensource Entwicklung von CouchDB voran Der fur die Einstellung von Katz verantwortliche IBM Manager bezeichnete diesen Schritt nicht als Akquisition wenngleich in der Zukunft die Verwendung von CouchDB in IBM Produkten vorstellbar sei 5 Neben Damien Katz arbeiten sechs weitere Entwickler aktiv an CouchDB 6 Ende 2009 grundete Katz mit 2 Millionen Dollar Venture Kapital eine eigene Firma namens Relaxed Inc 7 CouchDB war ab Februar 2008 im Incubator zu Deutsch Brutkasten der Apache Software Foundation 8 dort werden Projekte an die Richtlinien der Apache Foundation angepasst bevor sie ein Top Level Projekt werden Im Marz und im Juli 2008 hielten Jan Lehnardt CouchDB Committer und Damien Katz Vortrage auf den O Reilly Entwicklerkonferenzen ETech 2008 9 und OSCON 2008 10 Im November 2008 wurde CouchDB zu einem Apache Project aufgewertet 11 Trotz der Versionsnummer von 0 11 wurde CouchDB im Juni 2009 schon produktiv in etwa 13 Softwareprojekten und 40 Websites eingesetzt 12 Version 1 0 erschien am 14 Juli 2010 mit drastisch verbesserter Arbeitsgeschwindigkeit und Unterstutzung fur Windows Betriebssysteme 13 Ab der Version 1 1 0 von Anfang Juni 2011 wird SSL nativ unterstutzt 14 Ausser der Referenzimplementierung im Apache CouchDB Projekt werden von den Herstellern IBM 15 und Couchbase 16 auch kommerzielle CouchDB kompatible Datenbanken als SaaS angeboten und entwickelt Einsatz BearbeitenBeim CERN in Genf werden am Large Hadron Collider Daten in der Menge von ca 10 PB pro Jahr produziert Hierfur wird Apache CouchDB als Data Management System aufgrund der grossen Mengen unstrukturierter Daten eingesetzt 17 Das Disaster Action Team des Internationalen Roten Kreuz setzt in Katastrophengebieten die auf CouchDB basierende mobile Anwendung iDAT ein CouchDB ermoglicht hiermit den Betrieb als fehlertolerante Multi Node Peer to Peer Datenbank in Regionen mit stark eingeschrankter Netzverfugbarkeit 18 Bei IBM wird CouchDB als zentrales Fundament zur Bereitstellung und Orchestrierung der Infrastruktur der IBM Cloud Dienste eingesetzt 19 20 United Airlines verwendet CouchDB fur Betrieb und Management des In Flight Entertainment System in seinen uber 3 000 Flugzeugen 21 22 Auch Facebook verwendet CouchDB in diversen Softwareprojekten und Anwendungen 12 Die Node js Paketverwaltung npm verwendet Apache CouchDB als zentrale verteilte Datenbank 23 Das dynamische Content Management System der englischen Sendergruppe BBC wurde mit CouchDB als Datenbank realisiert 24 Eigenschaften BearbeitenDie wichtigsten Eigenschaften von CouchDB Architektur CouchDB ist eine dokumentenorientierte Datenbank und unterscheidet sich wie andere dokumentenorientierte Datenbanken z B Lotus Notes grundlegend von relationalen Datenbanken RDBM Im Gegensatz zu diesen RDBMs speichert CouchDB die Daten nicht in Tabellen Zeilen und Spalten sondern verwaltet sie in Dokumenten die aus JSON Objekten bestehen altere Versionen von CouchDB benutzten XML Zugriff und Schnittstellen Der Zugriff auf die Daten erfolgt bei CouchDB uber eine REST HTTP Schnittstelle Indirekt Fur viele klassische Programmiersprachen stehen Bibliotheken und Clients zur Verfugung um wie bei anderen Datenspeichern z B SQL Datenbanken oder Textdateien den Zugriff auf CouchDB zu standardisieren 25 JavaScript Standard PHP 26 Perl Ruby 27 oder Python Die Unterstutzung fur weitere Sprachen ist geplant Zusatzlich bietet CouchDB eine Plug in Architektur die es dem Nutzer erlaubt weitere Funktionen hinzuzufugen Direkt Dokumente und Dateien konnen direkt von CouchDB ohne einen zusatzlichen Webserver an einen Browser ausgeliefert werden Diese konnen per Ajax das ebenfalls von CouchDB ausgeliefert wird weitere Inhalte nachladen und an das DOM hangen Es kann aber auch direkt dynamisch serverseitig generiertes HTML geladen werden 28 dd MapReduce Im Gegensatz zu herkommlichen Datenbanken werden Filter bei CouchDB parallel uber MapReduce und nicht wahrend der eigentlichen Abfrage abgearbeitet Trotzdem konnen Abfragen sogenannte views in CouchDB auch Funktionen enthalten die wahrend der Abfrage ausgefuhrt werden Multiversion Concurrency Control Um Schreib Lese Blockaden zu vermeiden werden mit Multiversion Concurrency Control Daten nicht uberschrieben sondern immer neue Versionen hinzugefugt Beim Replizieren wird die grosse Menge an alten Versionen nicht weitergegeben Uber die Nutzung von ACID wird u a die Versionsverwaltung und hohe Zugriffsgeschwindigkeit erreicht 29 Merge Replikation Durch die Moglichkeit der Merge Replikation konnen mehrere Instanzen gleichzeitig und unabhangig betrieben werden Oft wird CouchDB mit spaltenorientierten Datenbanken verglichen wie zum Beispiel Bigtable CouchDB ist aber kein spaltenorientierter Speicher da einzelne Dokumente innerhalb derselben Datenbank eine voneinander unterschiedliche Struktur besitzen konnen Integrierte Software BearbeitenDa CouchDB eigenstandig als Webserver Dokumente direkt an den Browser verteilen kann kann auf jegliche zusatzliche Software wie Webserver und serverseitige Skriptsprachen z B PHP Ruby verzichtet werden Fauxton Bearbeiten Fauxton ist ein Web Interface zur Administration von CouchDB Ahnlich wie phpMyAdmin konnen auch Datenbanken auf fremden Rechnern uber eine Netzwerkverbindung oder das Internet administriert werden Seit Version 2 0 ist Fauxton in die CouchDB Installation integriert und uber server 5984 utils erreichbar Couchapp Bearbeiten Couchapp ist ein integriertes Javascript Webframework fur CouchDB Couchapp nutzt stark das Paradigma Konvention vor Konfiguration und bietet clientseitige jQuery Bibliotheken an Uber die Couchapp Kommandozeile lasst sich ein strukturierter Dateibaum als Mustervorlage fur eine CouchDB Anwendung erzeugen und als Design Dokument in die CouchDB laden In Couchapp sind folgende jQuery Erweiterungen integriert Evently durch Javascript Events werden Widgets an die HTML Grundstruktur nachgeladen Neben inhaltlichen Elementen werden vor allem Elemente zur Bearbeitung von Dokumenten uber Evently gesteuert Mustache eine einfache Template Engine 30 Pathbinder kann aus dem URL Fragment hash seite html unten Javascript Events anstossen CouchApp Loader ladt ein Design Dokument der CouchDB in die Javascript Anwendung Markdown zur Eingabe von Inhalten ist die vereinfachte Auszeichnungssprache Markdown eingebunden Im Unterschied zu serverbasierten klassischen grossen Webframeworks kann Couchapp keine Bilder skalieren oder E Mails verschicken PouchDB BearbeitenPouchDB ist eine mit CouchDB API Kompatible Datenbank in JavaScript geschrieben und sie kann als Erganzung zur CouchDB verwendet werden PouchDB lauft im Browser und auf Node js und speichert die Dokumente im Web Storage des Browsers Ein Anwendungsszenario ist die uneingeschrankte Funktion einer Webapplikation ohne permanenten Internetzugang Eine Synchronisierung der Daten zwischen PouchDB und CouchDB kann zu einem Zeitpunkt erfolgen wenn wieder eine Internetverbindung besteht Literatur BearbeitenJ Chris Anderson Jan Lehnardt und Noah Slater CouchDB The Definitive Guide O Reilly Sebastopol CA Januar 2010 ISBN 0 596 15589 1 In englischer Sprache Text ist lizenziert nach Creative Commons Attribution License Eine Vorabversion Rough Cuts Version erschien 2008 Christopher Chandler CouchDB in Action Manning Greenwich CT 2009 31 ISBN 1 935182 28 5 Mario Scheliga CouchDB kurz und gut O Reilly Koln 30 April 2010 ISBN 3 89721 559 4 In deutscher Sprache Oliver Frommel Mal ausspannen Auf Linux Magazin Online 29 September 2009 Rudolf Jansen CouchDB Angesagter Vertreter der NoSQL Datenbanken Auf heise developer 12 Februar 2010 Andreas Wenk und Till Klampackel CouchDB Das Praxisbuch fur Entwickler und Administratoren Galileo Computing 28 September 2011 ISBN 978 3 8362 1670 8 In deutscher Sprache Oliver Kurowski CouchDB mit PHP entwickler press Juni 2012 ISBN 978 3 86802 068 7 In deutscher Sprache Weblinks BearbeitenOffizielle Website englisch Offizielles Wiki englisch Podcast Folge FS136 mit dem Thema CouchDB von Tim Pritlove auf Freak Show Juli 2014 Podcast Folge CRE125 uber CouchDB von Tim Pritlove auf Chaosradio Express Juni 2009 Einzelnachweise Bearbeiten Release 3 3 2 25 April 2023 abgerufen am 26 April 2023 Christopher Chandler CouchDB in Action PDF 1 1 MB Manning Greenwich CT 2009 ISBN 1 935182 28 5 S 8 Port Numbers auf den Seiten der IANA letzte Aktualisierung des Dokuments am 19 Juni 2009 Abgerufen am 21 Juni 2009 New Gig Blogeintrag vom 1 Januar 2008 auf der Website von Damien Katz Abgerufen am 21 Juni 2009 Damien Katz and CouchDB Blogeintrag vom 16 Januar 2008 auf der Website von Anant Jhingran Abgerufen am 21 Juni 2009 Committers auf der Projektseite zu CouchDB bei Apache Incubator Rudolf Jansen Freiheit fur die Dokumente In heise Developer Heise Zeitschriften Verlag GmbH amp Co KG 12 Februar 2010 abgerufen am 4 August 2010 Apache mailing list announcement vom 9 Februar 2008 auf mail archives apache org Abgerufen am 31 Januar 2017 O Reilly Emerging Technology Conference ETech 2008 CouchDB from 10 000 ft Vortrag von Jan Lehnardt vom 6 Marz 2008 Abgerufen am 21 Juni 2009 O Reilly Open Source Convention OSCON 2008 CouchDB from 10 000 ft Vortrag von Jan Lehnardt vom 23 Juli 2008 Abgerufen am 21 Juni 2009 Incubated Projects auf Apache Tabelle Graduated from incubation mit Start und Enddatum 12 Februar 2008 bis 19 November 2008 Abgerufen am 21 Juni 2009 a b CouchDB in the wild Eine Liste der Softwareprojekte und Websites die CouchDB einsetzen Abgerufen am 21 Juni 2009 nytimes com heise de Cloudant Overview Abgerufen am 28 Marz 2022 amerikanisches Englisch Couchbase The Modern Database for Enterprise Applications Abgerufen am 28 Marz 2022 Why Large Hadron Collider Scientists are Using CouchDB In ReadWrite 26 August 2010 abgerufen am 28 Marz 2022 amerikanisches Englisch iDAT Red Cross Code 31 Juli 2021 abgerufen am 28 Marz 2022 Database Deep Dives CouchDB Abgerufen am 28 Marz 2022 amerikanisches Englisch couchdb Abgerufen am 28 Marz 2022 amerikanisches Englisch Database Deep Dives CouchDB Abgerufen am 29 Marz 2022 amerikanisches Englisch United Airlines Streamlines Operations With Couchbase Case Study Abgerufen am 29 Marz 2022 What s new from GitHub Changelog September 2021 recap In The GitHub Blog 19 Oktober 2021 abgerufen am 28 Marz 2022 amerikanisches Englisch Erlang Factory Enda Farrell Software Architect for internet scaling Abgerufen am 28 Marz 2022 Bibliotheken und Klienten fur CouchDB Memento vom 31 Januar 2017 im Internet Archive auf der CouchDB Website letzte Anderung am 29 September 2008 Abgerufen am 21 Juni 2009 Archivierte Kopie Memento vom 25 Oktober 2010 im Internet Archive github com web archive org couchdb Abgerufen am 28 Marz 2022 amerikanisches Englisch mustache github io Erschienen als E Book Manning Early Access im April 2009 Printausgabe angekundigt fur Dezember 2009 Normdaten Sachbegriff GND 7725142 8 lobid OGND AKS Abgerufen von https de wikipedia org w index php title CouchDB amp oldid 237815618