Upgrade to Pro — share decks privately, control downloads, hide ads and more …

とりあえず知っておきたい NoSQL / NoSQL basic

tyamap
October 11, 2024

とりあえず知っておきたい NoSQL / NoSQL basic

# とりあえず知っておきたいNoSQL
## yamashita

---

# NoSQL とは

- NoSQLは「Not Only SQL」の略
- 「SQLではない」ではなく「SQLだけじゃないよ」
- 非構造化データや多様なデータ形式に対応するデータベース
- 主にスケーラビリティと柔軟性を重視した設計

---

# RDBとの違い

## RDB
- 厳密なスキーマで高度に構造化
- 垂直スケーリング(サーバーの性能向上)が適している
- ACID特性: トランザクションの一貫性・完全性でデータの整合性を重視

## NoSQL
- スキーマレスで柔軟にデータを保存
- 水平スケーリング(サーバーの台数追加)が適している
- BASE特性: 整合性より可用性、柔軟性を重視

---

# キーバリュー型

- シンプルなデータモデル:キーと値のペア
- キーによる高速なデータアクセス
- 例: Redis、Amazon DynamoDB
- 用例: キャッシュ、セッション管理、リアルタイムデータ

---

# ドキュメント指向型

- データをJSON形式などのドキュメントとして保存
- KVS のキーがドキュメントに紐づいているイメージ
- 柔軟なデータ構造を持ち、階層的なデータをサポート
- 例: MongoDB、CouchDB
- 用例: ウェブアプリ、モバイルアプリ

---

# グラフ指向型

- ノードとエッジでデータの関係を表現
- 複雑な関係データを効率的に扱うことが可能
- 例: Neo4j、Amazon Neptune
- 用例: ソーシャルネットワーク、レコメンデーションエンジン

---

# その他

他にもいろいろ
- カラム指向データベース
- KVS をさらに拡張したイメージ
- 例: Cassandra
- 時系列データベース
- マルチモデルデータベース

---

# まとめ

- NoSQLは柔軟性とスケーラビリティに優れたデータベース
- データ構造によってさまざまな種類がある
- 要件に合わせて最適なデータベースを選択したい
- NoSQLの厳しさはやはり「SQLではない」ことによる学習コストの高さ、設計の難しさにある
- アプリケーションDBとは別で、データ分析ツールや一部の機能として何か作って見て学習するのが良さそう

tyamap

October 11, 2024
Tweet

More Decks by tyamap

Other Decks in Technology

Transcript