|
A NoSQL (originally referring to "non SQL" or "non relational" 〔http://nosql-database.org/ "NoSQL DEFINITION: Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable"〕) database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed since the late 1960s, but did not obtain the "NoSQL" moniker until a surge of popularity in the early twenty-first century, triggered by the needs of Web 2.0 companies such as Facebook, Google and Amazon.com.〔http://www.eventbrite.com/e/nosql-meetup-tickets-341739151 "Dynamo clones and BigTables"〕〔http://www.wired.com/2012/01/amazon-dynamodb/ "Amazon helped start the “NoSQL” movement."〕 Motivations for this approach include: simplicity of design, simpler "horizontal" scaling to clusters of machines, which is a problem for relational databases, and finer control over availability. The data structures used by NoSQL databases (e.g. key-value, wide column, graph, or document) differ slightly from those used by default in relational databases, making some operations faster in NoSQL and others faster in relational databases. The particular suitability of a given NoSQL database depends on the problem it must solve. Sometimes the data structures used by NoSQL databases are also viewed as "more flexible" than relational database tables.〔http://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html "Customers like SimpleDB’s table interface and its flexible data model. Not having to update their schemas when their systems evolve makes life much easier"〕 NoSQL databases are increasingly used in big data and real-time web applications. NoSQL systems are also sometimes called "Not only SQL" to emphasize that they may support SQL-like query languages.〔(【引用サイトリンク】title=NoSQL (Not Only SQL) )〕 Many NoSQL stores compromise consistency (in the sense of the CAP theorem) in favor of availability, partition tolerance, and speed. Barriers to the greater adoption of NoSQL stores include the use of low-level query languages (instead of SQL, for instance the lack of ability to perform ad-hoc JOIN's across tables), lack of standardized interfaces, and huge previous investments in existing relational databases.〔 〕 Most NoSQL stores lack true ACID transactions, although a few databases, such as MarkLogic, Aerospike, FairCom c-treeACE, Google Spanner (though technically a NewSQL database), Symas LMDB and OrientDB have made them central to their designs. (See ACID and JOIN Support.) Instead, most NoSQL databases offer a concept of "eventual consistency" in which database changes are propagated to all nodes "eventually" (typically within milliseconds) so queries for data might not return updated data immediately or might result in reading data that is not accurate, a problem known as stale reads.〔https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-reads〕 Additionally, some NoSQL systems may exhibit lost writes and other forms of data loss.〔Martin Zapletal: Large volume data analysis on the Typesafe Reactive Platform, ScalaDays 2015, (Slides )〕 Fortunately, some NoSQL systems provide concepts such as write-ahead logging to avoid data loss.〔http://www.dummies.com/how-to/content/10-nosql-misconceptions.html "NoSQL databases lose data" section〕 For distributed transaction processing across multiple databases, data consistency is an even bigger challenge that is difficult for both NoSQL and relational databases. Even current relational databases "do not allow referential integrity constraints to span databases."〔https://iggyfernandez.wordpress.com/2013/07/28/no-to-sql-and-no-to-nosql/〕 There are few systems that maintain both ACID transactions and X/Open XA standards for distributed transaction processing. == History == The term ''NoSQL'' was used by Carlo Strozzi in 1998 to name his lightweight, Strozzi NoSQL open-source relational database that did not expose the standard SQL interface, but was still relational.〔 〕 His NoSQL RDBMS is distinct from the circa-2009 general concept of NoSQL databases. Strozzi suggests that, as the current NoSQL movement "departs from the relational model altogether; it should therefore have been called more appropriately 'NoREL'", referring to 'No Relational'. Johan Oskarsson of Last.fm reintroduced the term ''NoSQL'' in early 2009 when he organized an event to discuss "open source distributed, non relational databases". The name attempted to label the emergence of an increasing number of non-relational, distributed data stores, including open source clones of Google's BigTable/MapReduce and Amazon's Dynamo. Most of the early NoSQL systems did not attempt to provide atomicity, consistency, isolation and durability guarantees, contrary to the prevailing practice among relational database systems.〔(【引用サイトリンク】title= The ACID Model )〕 Based on 2014 revenue, the NoSQL market leaders are MarkLogic, MongoDB, and Datastax.〔(【引用サイトリンク】url=http://wikibon.com/hadoop-nosql-software-and-services-market-forecast-2013-2017/ )〕 Based on 2015 popularity rankings, the most popular NoSQL databases are MongoDB, Apache Cassandra, and Redis.〔(【引用サイトリンク】url=http://db-engines.com/en/ranking )〕 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「NoSQL」の詳細全文を読む スポンサード リンク
|