📦

SQL NoSQL 違い

2024/09/16に公開

データベースとは?

データベースとは、複数の人やプログラムがデータを簡単に管理し、活用できるよう体系的に管理されたデータの集合体です。
データを保存し管理するために使用するシステムを**データベース管理システム(DBMS)**と呼びます。

DBMSの分類

  • リレーショナルデータベース(Relational Database, RDB): データを表形式(行と列)で保存するシステムで、主にSQLで管理されます。
  • 非リレーショナルデータベース(Non-Relational Database, NoSQL): データを非定型形式で保存するシステムです。固定されたスキーマがなく、柔軟性と拡張性が重視されます。

SQLデータベース

SQLデータベースは、データを**行(Row)と列(Column)**がある表形式で保存するリレーショナルデータベースです。
エクセルに似た構造を持ち、構造化されたデータ管理のために使用されます。

例えば、会員登録情報をSQLデータベースに保存する場合、以下のようなテーブル構造になります

このようなSQLデータベースは、スキーマという構造に基づいてデータを保存します。スキーマはデータベースの構造や制約条件をあらかじめ定義した枠組みであり、これにより安定的で体系的なデータ管理が可能になります。

代表的な製品

  • MySQL: オープンソースのリレーショナルデータベースで、世界中で広く使用されています。
  • PostgreSQL: 高度な機能を提供するオープンソースデータベースで、拡張性とパフォーマンスに優れています。
  • Oracle Database: 商用リレーショナルデータベースの中で最も広く使われ、大規模な企業で主に使用されています。
  • SQLite: 軽量なリレーショナルデータベースで、主にモバイルや小規模なアプリケーションで使用されます。

NoSQLデータベース

NoSQLデータベースは、SQLデータベースとは異なり、スキーマが固定されていない非リレーショナルデータベースです。柔軟性、拡張性、パフォーマンスにおいて高い効率を提供します。NoSQLにはさまざまな種類があり、それぞれ異なる方法でデータを保存します。

代表的なNoSQLデータベースの種類

Key-Valueデータベース

最もシンプルな形式のデータベースで、データを**キー(Key)**と値(Value)**のペアで保存します。Pythonの辞書に似ており、迅速なパフォーマンスのおかげで、キャッシュ、セッション管理、リーダーボード、リアルタイム分析などに多く使用されます。

{'name': 'sunny'}

代表的な製品: Redis, Amazon DynamoDB

Documentデータベース

Key-Value形式から発展した方式で、データをJSONに似た**ドキュメント(Document)**形式で保存します。スキーマが自由なため、構造の変更に柔軟に対応できます。
代表的な製品: MongoDB, Amazon DocumentDB, Cloud Firestore

Graphデータベース

データを**ノード(Node)とエッジ(Edge)**で表現し、保存します。ノードの属性や関係を重視した構造で、ソーシャルネットワーク、レコメンドエンジン、経路探索などのデータ処理に適しています。
代表的な製品: Neo4j, Amazon Neptune

Discussion