NoSQL（一般に "Not only SQL" と解釈される）とは、関係データベース管理システム (RDBMS) 以外のデータベース管理システムを指すおおまかな分類語である。関係データベースを杓子定規に適用してきた長い歴史を打破し、それ以外の構造のデータベースの利用・発展を促進させようとする運動の標語としての意味合いを持つ。関係モデルではないデータストアの特徴として、固定されたスキーマに縛られないこと、関係モデルの結合操作を利用しないこと、水平スケーラビリティが確保しやすい事が多いこと、高度なトランザクション処理を利用できないものが多いことなどが挙げられる。学術的な世界では、この種のデータベースのことを構造型ストレージ () と呼ぶことが多い。

NoSQL系データベース管理システムは、データの格納および取得が高度に最適化されているものが多い。その最適化のために機能性を最小限にしているものもある。その最たる例が、「値」およびそれを取得するための「キー」だけを格納できるKey-Value型データベースである。NoSQL系データベースは、関係データベースのような汎用性は欠くものの、その制約された条件下ではRDBMSより高いパフォーマンスを持つ。そのためビッグデータ系ソリューションでしばしば活用される。

NoSQL系データベース管理システムが有用な場面は、関係モデルを必要としないデータを扱う時や、大量のデータを扱う時である。用途は多様であり、数百万のkey-valueペアを格納したり、数10個程度の連想配列を格納したり、数百万の構造的データを格納したりと、様々に使われる。この構造は、大規模なデータを統計的に解析したり、増えつづける情報をリアルタイムに解析するのにも便利である。

産業界での有名な実装として、GoogleのBigTable、アマゾンのAmazon DynamoDBなどがある。オープンソースの実装も数多く存在し、例えばMongoDB、Redis、Apache HBase、Hypertable, Apache Cassandraなどがある。

 歴史 
NoSQLという用語は1998年、SQLインタフェースを持たない軽量な関係データベースのオープンソースソフトウェアの名前として最初に用いられた。その著者Carlo StrozziはNoSQL運動について、「関係モデル全体と一線を画すものであるから、『NoREL』などと名づけられるべきだった」と主張している。この用語は、Last.fmのJohan Oskarssonの呼びかけによって2009年初頭に開催されたオープンソースの分散データベースについての会合において、の従業員Eric Evansによって再導入された。この名前はMySQL、MS SQL、PostgreSQLなど関係データベースのシステムで広く用いられていた命名法を参照して付けられたものであり、ACID保証を提供しないような非関係型の分散データストアの勃興を表現する意図が込められていた。

NoSQL運動が普及するに従い、その名前のもつネガティブな印象（SQLは不要である、など）が問題となり議論が起こっている。Eric EvansはNoSQLをNot only SQLのバクロニムとして理解するのが好ましいとしている。

 アーキテクチャ 
現代的な関係データベースは、小規模の高頻度なトランザクションか、巨大だが書き込みをほとんど伴わないトランザクションに最適化されて設計されているため、近年必要とされてきている大規模データに基づく () 応用事例では性能が劣化してしまう。そのような応用の例として、検索のための文書のインデキシング、トラフィックの高いウェブサイトのサーバ、ストリーミングデータの配布などがあり、Diggのgreen badge、Facebookのインボックスの検索、eBayのシステム全体などがその実例である。

NoSQLのアーキテクチャにおいては、結果整合性のみを保証するなどして一貫性の保証を弱く設計したり、トランザクションをひとつのデータアイテムに限るという制限を設けたりすることが多い。補助的なミドルウェアの層を付加することによって完全なACID保証を提供している場合もある。

いくつかのNoSQLシステムは分散アーキテクチャを採用している。そのようなシステムでは、多くの場合は分散ハッシュテーブルを用いて、データを複数のサーバに冗長性を持たせながら配置する。これにより、サーバを追加するだけでシステムを容易にスケールアップさせることができ、障害への耐性も強くなる。

分類
NoSQL には、主要なものとして、以下のものがある。
 キー・バリュー型 (Key Value Store) - キーに対してバリュー（値）という単純な構造。Basho Riak, Redis,Amazon DynamoDBなど。大半はバリューとして単純なバイナリデータ (BLOB) のみが格納できるが、Redisのようにリスト、マップ、ソート済みセットといったリッチなデータ構造をサポートするものもある。またバリューに加えて、タグやメタデータと呼ばれる追加情報が格納できるものも多い。日本発のものには okuyama, Hibari などがある。
 ソート済みカラム指向 - 行キーに対してカラム（名前と値の組み合わせ）の集合を持つ。行ごとに好きな名前のカラムを好きな数だけ格納できる。カラムはカラム名によってソートされるため、例えばカラム名に時刻を使うことで1行の中に時系列のデータを格納することができる。Apache Cassandra, Apache HBaseなど。
 ドキュメント指向（Document-oriented、Document store） - XMLやJSONといった、 スキーマレスでデータ構造が柔軟なもの。MongoDB、Apache CouchDB、Amazon DocumentDBなど。XMLデータベースなどのシステムでは、XQueryを利用できるものもある。
 グラフ指向 - ノード（頂点）とエッジ（辺）とプロパティ（属性）の３つの要素から構成され、ノード間の関係を管理することに特化したデータベース。Neo4j、Amazon Neptuneなど。

 オープンソースのプロジェクト一覧 
 Apache Cassandra - 分散データベース、ソート済みカラム指向型
 Apache CouchDB - ドキュメント指向型
 Apache HBase - 分散データベース、ソート済みカラム指向型
 ArangoDB - multi-model database
 Basho Riak - 分散データベース、キー・バリュー型
 Chordless
 Db4o - オブジェクトデータベース（Javaオブジェクトなどの格納）
 GT.M
 Hibari - 分散データベース、キー・バリュー型（日本発）
 Hypertable - 分散データベース、ソート済みカラム指向型
 Memcachedb
 Mnesia - 分散データベース
 MongoDB - 分散データベース、ドキュメント指向型
 okuyama - 分散データベース、キー・バリュー型（日本発）
 Project Voldemort - 分散データベース、キー・バリュー型
 Redis - インメモリ・データベース、キー・バリュー型（リスト、マップ、ソート済みセットなど）
 ScyllaDB - 分散データベース、Apache CassandraをC++へと移植し高速化したもの
 SimpleDB
 Neo4j - グラフ型
 DEX
 BaseX
 eXist
 AllegroGraph
 OrientDB
 InfiniteGraph - グラフ型
 Sones GraphDB
 InfoGrid
 HyperGraphDB

 実装例 

 ドキュメントストア 
 名称 言語 補足 BaseX Java, XQuery XMLデータベース Erlang, Java, Scala, C JSONストア（オンラインサービス） C++ XML, 全文検索 Couchbase Server Erlang, C, C++ JSONとバイナリドキュメント Apache CouchDB Erlang JSONデータベース djondb C++ JSON, ACIDドキュメントストア Solr Java サーチエンジンElasticsearchJava JSON, サーチエンジン Java, XQuery XMLデータベース Java 実装 IBM Lotus Notes and IBM Lotus Domino Lotus Script, Java, IBM X Pages, その他 XQuery, Java, REST JSON対応のXMLデータベース, テキスト, バイナリ MongoDB C++, C#, Go BSONストア（JSONのバイナリフォーマット） C++, C#, C++ネイティブクラスのバイナリ Java, C CoreFoundation Property list C, C++, Objective-C JSON, XML, バイナリ XQuery, C++ XMLデータベース SimpleDB Erlang オンラインサービス C++, C#, Go MongoDBとフラクタルツリーインデックス C++, C#, Java, SPARQL ミドルウェアとデータベースエンジンのハイブリッド

 ドキュメントストア＋キーバリューストア＋グラフ 

 名称 言語 補足 Java JSON, SQLサポート C++ 

 グラフ 
 名称 言語 補足
 SPARQL RDFグラフストア
 IBM DB2 SPARQL RDFグラフストアを追加したDB2 10
 Java, C++, .NET, Python ハイパフォーマンス
 Scala Java ハイパフォーマンス, スケーラブル, 分散型グラフデータベース
 Neo4j Java C++, C#, Java, SPARQL ミドルウェアとデータベースエンジンのハイブリッド
 C# GraphQLと呼ばれるクエリー言語を備えたグラフデータベース Java セルレベルのセキュリティに特化した分散型, リアルタイムグラフデータベース
 Java, SPARQL 1.1 推論付きRDFグラフストア

 トリプル/クアッドストア (RDF) データベース 
 
 
 
 
 
 

 キーバリューストア 

 eventually consistent 
 Apache Cassandra
 Dynamo
 Hibari
 
 
 Riak

 ヒエラルキー 
 GT.M
 InterSystems Caché

 RAMキャッシュ 
 memcached
 Redis
 
 
 Oracle Coherence

 ソリッドステート・回転ディスク 

 
 BigTable
 cdb
 Couchbase Server
 
 
 （Berkeley DBを使用）
 MongoDB
 
 
 Tokyo Cabinet
 
 

 ordered 
 Berkeley DB
 
 
 
 
 

 オブジェクトデータベース 

 db4o
 
 InterSystems Caché
 
 
 ObjectDatabase++
 
 
 
 
 
 
 
 
 ZODB

 タビュラー 
 
 BigTable
 Apache HBase
 Hypertable
 
 

 タプルストア 
 Apache River
 
 
 

 ホスト型 
 
 
 Datastore on Google Appengine
 Amazon DynamoDB
 

 マルチバリューデータベース 
 Reality, 元はPick/MV Database
 (ESE/NT)
 
 Revelation Software's 
 
 D3 
 InterSystems Caché