NoSQLの解説(基本情報技術者シラバス用語)

目次

NoSQLとは

NoSQL(Not Only SQL)とは、従来から主流だった関係データベース(RDB)以外のデータベース管理システムの総称です。RDBのような厳密な表形式(テーブル)やSQLという言語に縛られず、より柔軟な構造でデータを保存します。代表的な種類には、キーと値のペアで保存する「キーバリューストア」や、JSON形式の文書をそのまま保存する「ドキュメント指向」などがあります。RDBに比べてデータの整合性のルールは緩いですが、大量のデータを非常に高速に書き込み・読み込みできるため、ビッグデータの処理に適しています。

具体例

SNSサービスにおけるリアルタイムのメッセージのやり取りや、スマートフォンのゲームアプリのセーブデータの保存などが好例です。これらは1秒間に数万回もの大量の書き込みが発生するため、厳密な表形式で整理するRDBでは処理が追いつかなくなります。そこでNoSQLである「MongoDB」や「Redis」を導入し、高速なデータ保存を実現しています。

もう少し詳しく

NoSQLは、「Not Only SQL(SQLだけではない)」の略であり、RDBが直面した「大量データの高速処理(スケーラビリティ)」の課題を解決するために2000年代後半から急速に発展しました。RDBは単一のサーバーで処理をスケールアップ(高性能化)するのには向いていますが、複数のサーバーにデータを分散させる「スケールアウト(並列化)」が難しいという弱点があります。一方、NoSQLはデータを単純な構造で保持するため、分散処理が非常に容易という特徴を持っています。

NoSQLは、データの保存モデルによって大きく以下の4つのタイプに分類されます。

1. キーバリューストア(KVS / Key-Value Store):固有の「キー(Key)」と、それに対応する「値(Value)」のシンプルなペアでデータを保存します。極めて単純な構造のため、メモリ上にデータをキャッシュしてミリ秒未満で読み書きする「Redis」や「Memcached」などが代表的です。
2. ドキュメント指向(Document Database):XMLやJSONといった半構造化された「ドキュメント」形式でデータを丸ごと保存します。データの階層構造をそのまま扱えるため、「MongoDB」などが広く使われています。
3. カラム指向(列指向 / Wide-Column Store):行単位ではなく、列(カラム)単位でデータを集約して保存します。特定の列に対する集計処理が非常に高速で、ビッグデータ分析用の「Apache Cassandra」や「HBase」などがあります。
4. グラフ指向(Graph Database):データとデータ同士の繋がり(関係性)を「ノード」と「エッジ」で表現して管理します。SNSのフォロワー関係やレコメンデーションエンジンに使われる「Neo4j」などがあります。

RDBが厳格な「ACID特性」を重視するのに対し、NoSQLの多くは「BASE特性(基本利用可能:Basically Available、緩やかな状態:Soft-state、結果整合性:Eventual consistency)」という、一時的な不整合を許容しながらもシステム全体の稼働と高速処理を両立させる妥協(トレードオフ)を選択しています。これは分散システムにおける「CAP定理(整合性・可用性・ネットワーク分断耐性のうち同時に2つしか満たせないという定理)」に基づいた設計思想です。

試験でのポイント

IT試験においては、NoSQLの定義やRDBとの違い、そして主なデータモデルの種類を識別する問題が出題されます。

試験対策としての重要ポイントは以下の通りです。
・RDB以外のデータベースの総称である:リレーショナルモデル(二次元の表)を使用せず、SQLを使わない、あるいはSQL以外の仕組みも利用可能なシステム全般を指します。
・大量データの分散処理に適している:複数のサーバーにスケールアウトしやすく、ビッグデータやリアルタイム性が求められるシステム(ログ収集やSNSなど)に適しています。
・代表的なデータモデルの紐付け:「キーバリューストア(KVS)」「ドキュメント指向」などの名前が出たら、NoSQLに分類されることを正しく選べるようにしておきましょう。

RDBのようなスキーマ(表の定義)の事前設計が不要で、スキーマレス(定義が自由)に動的データを追加できる柔軟性もNoSQLの大きなメリットとして試験で問われます。

関連する用語

NoSQLと対比される存在である「関係データベース(RDB)」や、RDBの厳格な特性である「ACID特性」、NoSQLで多く採用されるデータの緩やかな整合性ルールである「結果整合性(Eventual Consistency)」が関連します。また、代表的なNoSQLのモデルである「キーバリューストア(KVS)」や、分散システムの限界を示す「CAP定理」も重要な関連キーワードです。

読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ