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件を見るMySQL(マイSQL)
オープンソースのリレーショナルデータベース管理システム。WordPressをはじめ多くのWebアプリに採用され、読み取りパフォーマンスが高く導入が容易なRDBMSの定番。
IT用語: ORM(オブジェクトリレーショナルマッパー)とは|SQLを書かずにDBを操作
プログラミング言語のオブジェクトとDBのテーブルを対応付けるORMの仕組みとN+1問題を解説。
IT用語: MongoDBとは|JSONライクなドキュメント型NoSQLデータベース
スキーマレスなJSONドキュメントを格納するMongoDBの仕組み・集計パイプライン・RDBとの使い分けを解説。
シャーディング(データベース水平分割)
データを複数のサーバー(シャード)に水平分割して分散させるDBスケーリング手法。1台のサーバーに収まらない大規模データの処理に使われる。モンゴDBやCassandraが得意とする。
IT用語: シャーディングとは|大規模DBを水平分割してスケールアウトする手法
ユーザーIDや地域などのキーでデータを複数DBに分割するシャーディングの仕組みとデメリットを解説。
Redis(リモートディクショナリサーバー)
インメモリ型のキーバリューストア。超高速な読み書きを実現し、キャッシュ・セッション管理・リアルタイム処理に広く使われるOSSデータベース。