データベース選定基準〜スキーマレスかRDBか〜
データベース選定基準
スキーマ | スキーマレス | SQL | NoSQL スキーマレスなデータベースでもSQLで扱える製品は多い |
---|---|---|
データベースタイプ | RDBMS (1969年からある) | JSONドキュメント型NoSQL キーバリュー型NoSQL (フルマネージド・クラウドとの相性が良い) |
クエリの柔軟さ | ◎ SQLの50年の歴史 | △ |
トランザクション手続きの柔軟さ | ◎ | △ |
アトミック(データの一貫性) | ◎ | △ |
スケールの容易さ | △ | ◎ 利用者数、レコード数、テーブルサイズ |
管理の容易さ | △ | ◎ |
スキーマ変更の容易さ | △ | ◎ クライアントアプリを変更するだけ |
表結合(UNION JOIN ) | ◎ | △ |
ストアドプロシージャ | ◎ | × |
Auto Increment属性 | ◎ | × |
主キー | シリアル値可 | シリアル値不可(ハッシュ値) |
トリガー | ◎ before / afterなど柔軟に定義可能 | △ |
クライアントSDK | × クライアント用のREST APIを実装する必要がある | ◎ JS、Node、Go、Java、Swift、Python等の言語ごとに充実 |
対象システム | ミッションクリティカルな勘定系システム js クラウドを利用しない小規模なシステムでは SQLite、BerkleyDBがおすすめ | スマートフォンアプリ、ウェブアプリ サーバレス運用 複雑でないスキーマ、かつ、簡易なクエリのシステム js クラウドを利用するアプリでは 圧倒的にスキーマレスが適している | ビッグデータ適応性 | js ビッグデータを扱うにはスキーマレスとSQLの 双方の利点を合わせ持った Google Cloud Spanner のような製品を用いる |