NoSQLとRDBの違いを図解で解説
導入
SNSの投稿履歴やECサイトの閲覧ログなど、形や量がバラバラな大量データを管理するには、従来のデータベースでは対応しきれない場面が出てきます。そこで登場したのがNoSQLデータベースです。
なぜ重要か
インターネットサービスの規模が拡大するにつれ、1台のサーバーでは処理しきれない量のデータを扱う場面が急増しました。従来のRDB(リレーショナルデータベース)は整合性が高く複雑な問い合わせに強い反面、サーバーを横に増やしてスケールアウトすることが難しいという特性を持っています。そこで大規模なWebサービスを中心に、柔軟な構造で水平展開できるNoSQLが採用されるようになりました。
ITパスポートでは「NoSQLとRDBの違い」や「NoSQLの代表的な種類とその用途」が出題されています。特に「どのデータモデルがどのユースケースに適しているか」という判断を求める問題は頻出であり、単に用語を暗記するだけでなく、それぞれの特徴と適した場面をセットで理解しておくことが重要です。
くわしく知ろう
NoSQL(Not Only SQL)とは、リレーショナルデータベース(RDB)のように行と列のテーブル構造を使わず、より柔軟なデータ構造で大量データを扱えるデータベースの総称です。スケールアウト(サーバーを横に増やす拡張)に適しており、Webサービスの大規模データ処理で広く使われています。
NoSQLの代表的な種類のひとつがキー・バリュー型で、データをキーと値のペアで管理します。シンプルな構造のためアクセスが非常に高速で、セッション情報やキャッシュに向いています。Redis(レディス)が代表的なシステムとして知られています。
ドキュメント型は、JSONやXMLのような形式で一件ずつデータを格納する方式です。フィールドが柔軟に変えられるため、スキーマが固定されていないデータに適しています。SNSのプロフィールや商品カタログのようなデータに向いており、MongoDBが代表的なシステムです。
一方、複雑な関係性を持つデータ同士のつながりを表現するのに適しているのがグラフ型です。ノード(点)とエッジ(線)でデータの関係を表し、友人関係や推薦システムの実装に利用されています。
カラム指向型は、データを行ではなく列ごとに格納する方式で、大量データの集計分析に向いています。Apache Cassandraがその代表です。
RDBは一貫性と複雑な問い合わせ(JOIN等)が得意であり、財務・在庫管理など正確さが求められる業務に適しています。NoSQLとRDBは「使い分ける」という視点が重要です。
具体例で理解する
たとえばECサイトのショッピングカートのセッション管理にはキー・バリュー型、商品カタログの管理にはドキュメント型が使われることがあります。SNSの友人関係ネットワークの分析にはグラフ型が適しており、アクセスログや行動履歴の集計分析にはカラム指向型が活用されています。一方、銀行の取引記録のような正確さが最優先のデータにはRDBが適しています。
試験での出題パターン
【パターン1:NoSQLの説明として適切なものを選ぶ問題】
「テーブル構造に縛られない柔軟なデータ構造で大量データを扱えるデータベースの総称」が正解になります。「SQLを一切使わない」という誤解を誘う選択肢が登場することがあるため、「Not Only SQL(SQLに限らない)」という略語の意味を押さえておくことが重要です。
【パターン2:ユースケースに合ったNoSQLの種類を選ぶ問題】
「SNSの友人関係→グラフ型」「セッション・キャッシュ→キー・バリュー型」「商品カタログ→ドキュメント型」という対応関係を覚えておくと判断が速くなります。「最も適切なデータモデルはどれか」という形式で4種類の中から選ぶ問題が典型的なパターンです。
【パターン3:RDBとNoSQLの使い分けを問う問題】
「整合性・複雑な問い合わせが必要な業務(財務・在庫)にはRDB」「スケールアウトと柔軟なデータ構造が必要な大規模Webサービスにはまず NoSQL を検討」という方向性を理解しておくと、応用問題にも対応できます。
よくある間違い・紛らわしいポイント
【NoSQL=「SQLを使わない」という誤解】
NoSQLは「Not Only SQL」の略であり、「SQLも使うが、それ以外の方式も含む」という意味です。一部のNoSQLシステムはSQL構文に似た問い合わせ言語をサポートしているものもあり、「SQLが一切使えない」とは限りません。
【キー・バリュー型とドキュメント型の混同】
キー・バリュー型は「キーを指定して対応する値を取得する」という単純な操作に特化しており、内部構造を問い合わせる機能は持ちません。ドキュメント型はJSON内のフィールドを指定した問い合わせや絞り込みができる点が異なります。「高速・シンプル」がキー・バリュー型、「柔軟な問い合わせ」がドキュメント型という区別を意識してください。
【グラフ型とネットワーク型の混同】
グラフ型はノードとエッジで関係性を表現するNoSQLの一種です。かつて主流だった「ネットワーク型データベース」は全く別の技術であり、NoSQLの分類には含まれません。試験でグラフ型が選択肢に登場した場合は、「データの関係性・つながりを扱う」というキーワードを根拠にして選んでください。
まとめ・試験ポイント
- NoSQL=テーブル構造に縛られない柔軟なデータベースの総称
- キー・バリュー型=キーと値のペアで管理。高速・シンプル。キャッシュ向き
- ドキュメント型=JSONなどで1件ずつ格納。スキーマ柔軟。カタログ向き
- グラフ型=ノードとエッジでデータの関係性を表現。推薦・SNS向き
- RDB=一貫性・複雑な問い合わせが得意。財務・在庫管理向き
- 試験では「NoSQLの種類とユースケースの対応」が頻出
学習した内容を試験形式で確認しよう。ITパスポート入門試験100問に挑戦できます。
入門試験100問に挑戦する