NoSQL(非リレーショナルデータベース)
固定スキーマを持たない非リレーショナル型データベースの総称。ドキュメント型・キーバリュー型・カラム型・グラフ型などがあり、水平スケーリングと柔軟なデータ構造が特徴。
NoSQLとは?
NoSQL(Not Only SQL)は、リレーショナルデータベース(RDB)の固定スキーマやSQL以外のアプローチでデータを管理するデータベースの総称です。Webスケールのデータ処理ニーズを背景に2000年代後半から急速に普及しました。
NoSQLの主な種類
| 種類 | 特徴 | 代表的なDB |
|---|---|---|
| ドキュメント型 | JSONライクなドキュメントを格納 | MongoDB, Firestore, CouchDB |
| キーバリュー型 | キーで値を高速に取得 | Redis, DynamoDB, Memcached |
| カラム型 | 列単位でデータを格納・高速集計 | Cassandra, HBase, BigQuery |
| グラフ型 | ノードとエッジで関係を表現 | Neo4j, Amazon Neptune |
RDBとの比較
| 項目 | RDB | NoSQL |
|---|---|---|
| スキーマ | 固定(変更にはマイグレーション必要) | 柔軟(スキーマレス) |
| スケーリング | 垂直スケール(サーバーを強化) | 水平スケール(サーバーを追加) |
| トランザクション | ACID保証が強い | BASE(結果整合性)が多い |
| 結合(JOIN) | 容易 | 苦手(アプリ側で処理) |
| 適したデータ | 構造化データ | 非構造化・半構造化データ |
まとめ
NoSQLは「RDBの代替」ではなく「用途の違う選択肢」です。複雑なトランザクションにはRDB、大量データの高速読み書きやスキーマが頻繁に変わるデータにはNoSQLが向いています。
関連する用語 (データベース)
全23件を見るACID特性(トランザクション4要件)
データベーストランザクションの信頼性を保証する4つの特性。原子性(Atomicity)・一貫性(Consistency)・独立性(Isolation)・永続性(Durability)の頭文字をとった概念。
ORM(オブジェクト関係マッピング)
プログラミング言語のオブジェクトとデータベースのテーブルを対応付け、SQLを書かずにDBを操作できるようにするライブラリ。Prisma・TypeORM・Sequelize等が代表的。
IT用語: シャーディングとは|大規模DBを水平分割してスケールアウトする手法
ユーザーIDや地域などのキーでデータを複数DBに分割するシャーディングの仕組みとデメリットを解説。
シャーディング(データベース水平分割)
データを複数のサーバー(シャード)に水平分割して分散させるDBスケーリング手法。1台のサーバーに収まらない大規模データの処理に使われる。モンゴDBやCassandraが得意とする。
Redis(リモートディクショナリサーバー)
インメモリ型のキーバリューストア。超高速な読み書きを実現し、キャッシュ・セッション管理・リアルタイム処理に広く使われるOSSデータベース。
IT用語: Redisとは|高速インメモリデータストアの仕組みと活用パターン
メモリ上にデータを保存し高速なキャッシュ・セッション管理・Pub/Subを実現するRedisの仕組みと主要データ型を解説。