CouchDb Project site moved!
This Wiki is no longer active. The CouchDb permanent project homepage is here:
Welcome to the CouchDb Wiki If you have questions, comments or a sudden urge to fix spelling or sentence structure, feel free to edit this or any other document in this Wiki. You must be logged in to edit.
CouchDb is a database system meant to simplify the development of certain types of applications, particularly document oriented applications.
The CouchDb FAQ.
What CouchDb is:
- A stand-alone document store, accessible via XML REST.
- Ad-hoc and schema-free with a flat address space.
- Distributed, featuring robust, incremental replication with bi-directional conflict detection and resolution.
- Query-able and index-able, featuring a table oriented reporting engine with a simplified formula query language.
The CouchDb data model was partially inspired by the Lotus Notes and Domino backend.
What it is not:
- A relational database.
- A replacement for relational databases.
- An object-oriented database. Or more specifically, meant to function as a seamless persistence layer for an OO programming language.
What's a Document?
A CouchDb document is an object that consists of named fields. Field values are lists that may contain strings, numbers and dates. An example of a document would be a blog post:
Subject: "I like Plankton"
Author: "Rusty"
PostedDate: [5/23/2006]
Tags: "plankton" "baseball" "decisions"
Body: "I decided today that I don't like baseball. I like plankton."
In the above example document, Subject is a field that contains a single string value "I like plankton". Tags is a field with values "plankton", "baseball" and "decisions".
A Couch database is a flat collection of these documents. Each document is identified by a unique ID, a DocID. Each document has one (and only one) ID, and that ID must be unique. Two documents with the same ID in different replicas of the same database are considered to be instances of the same document.
By default, DocIDs are UUIDs (a randomly generated 128 bit number, example: F81D4FAE7DEC11D0A76500A0C91E6BF6), but any string can be a document ID.
Examples of valid DocIDs:
F81D4FAE7DEC11D0A76500A0C91E6BF6
Order_no_57
Global_Config_Settings
http://damienkatz.net/2006/04/error_code_vs_e.html
Whatchootalkinboutwillis
HTTP XML Api
The CouchDb server exposes it's data store via a RESTful HTTP Api. This means standard database CRUD operations (Create Read Update Delete) are exposed via HTTP operations like POST, PUT, GET and DELETE.
While this functionality can be exposed to directly browser clients, it's meant primarily to be used in an 3-tier systems. In such a system, CouchDb would only expose it's API to the application server, and be firewalled from the browser clients.
Full XML Rest API documentation here.
So what? Who cares? Why would I ever want to use CouchDb?
CouchDb is designed for document-oriented applications. A typical real world document oriented activities, if it weren't computerized, would consist mostly of actual paper documents. These documents would need to get sent around, edited, photocopied, approved, denied, pinned to the wall, filed away, etc. They could be simple yellow sticky notes or 10000 page legal documents. Not all document-oriented applications have real world counterparts.
Some examples of document-oriented applications:
- Contact Address/Phone Book
- Forum/Discussion
- Bug Tracking
- Document Collaboration/Wiki
- Customer Call Tracking
- Expense Reporting
- To-Dos
- Time Sheets
- E-mail
- Help/Reference Desk
CouchDb greatly simplifies the development of these types applications. And with bi-directional replication built into the core, it easily allows for geographically dispersed groups and disconnected users to share data and replicate changes back and forth.
Formula Query Language
Fabric is a simplified formula based language used to query the database and create computed tables.
Computed Tables
A Computed Table is the primary method of database navigation and reporting, providing an easy way to create multiple representations and transformations of document sets.
Current Status
All major client facing portions of CouchDb are currently implemented. The currently implemented feature set makes it suitable as the storage layer for a 3 tier architecture.
There is still lots of backend work to be done for it to be viable as a production database server.
Design Highlights
- Atomic updates and "Crash Only" design - There is no shut down phase and never a startup "consistency fix-up" phase.
- Multi-document "all or nothing" transactions.
- Highly concurrent design, no locks - Uses optimistic updates. Update conflicts will abort transactions.
- Read operations are parallelized.
- Write operations are serialized - But do not lock out readers, read operations can continue concurrently.
- Incremental index generation - The storage layout of CouchDb is optimized for computed table generation (the core indexing and reporting facilities of CouchDb) and designed to reduce the number of disk head seeks both during the document retrieval/collection phase and the index flushing phase.
last updated 2 years ago
#
<a href=http://groups.google.de/group/aston9742/web/poker-gratis-kostenlospoker> gratis kostenlos</a> [url=http://groups.google.de/group/aston9742/web/poker-gratis-kostenlos]poker gratis kostenlos[/url] http://groups.google.de/group/aston9742/web/poker-gratis-kostenlos http://groups.google.co.uk/group/orville7903/web/advance-cash-loan-online-payday [url=http://groups.google.co.uk/group/orville7903/web/advance-cash-loan-online-payday]advance cash loan online payday[/url] <a href=http://groups.google.co.uk/group/orville7903/web/advance-cash-loan-online-paydayadvance> cash loan online payday</a> <a href=http://groups.google.co.uk/group/orville7903/web/cash-loan-payday-tilcash> loan payday til</a> [url=http://groups.google.co.uk/group/orville7903/web/cash-loan-payday-til]cash loan payday til[/url] http://groups.google.co.uk/group/orville7903/web/cash-loan-payday-til [url=http://www.espacioblog.com/guynes986/post/2008/01/26/sites-poker-ligne]sites de poker en ligne[/url] http://www.espacioblog.com/guynes986/post/2008/01/26/sites-poker-ligne <a href=http://www.espacioblog.com/guynes986/post/2008/01/26/sites-poker-lignesites> de poker en ligne</a> [url=http://groups.google.se/group/ryder4532/web/7-card-stud-software]7 card stud software[/url] <a href=http://groups.google.se/group/ryder4532/web/7-card-stud-software7> card stud software</a> http://groups.google.se/group/ryder4532/web/7-card-stud-software
1 year ago # reply