Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースの世界 SQL vs NoSQL
Search
MIKIO KUBO
July 10, 2025
Programming
0
15
データベースの世界 SQL vs NoSQL
データベースの世界
## SQL vs NoSQL
### あなたのデータに最適なのはどっち?
MIKIO KUBO
July 10, 2025
Tweet
Share
More Decks by MIKIO KUBO
See All by MIKIO KUBO
Connecting Theory and Practice V
mickey_kubo
0
6
PyMongo入門
mickey_kubo
0
3
Pythonで学ぶSQL入門
mickey_kubo
0
11
AutoGluon 時系列予測モデルの解説
mickey_kubo
0
15
AutoGluon Tabularモデル入門
mickey_kubo
1
11
AutoGluon: State-of-the-Art Automated Machine Learning
mickey_kubo
0
40
AutoGluon: State-of-the-Art Automated Machine Learning (English)
mickey_kubo
1
13
Python型ヒント完全ガイド 初心者でも分かる、現代的で実践的な使い方
mickey_kubo
1
120
SQLModel 入門
mickey_kubo
0
29
Other Decks in Programming
See All in Programming
AI駆動のマルチエージェントによる業務フロー自動化の設計と実践
h_okkah
0
150
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
510
Modern Angular with Signals and Signal Store:New Rules for Your Architecture @enterJS Advanced Angular Day 2025
manfredsteyer
PRO
0
220
Discover Metal 4
rei315
2
130
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.3k
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
550
Claude Code + Container Use と Cursor で作る ローカル並列開発環境のススメ / ccc local dev
kaelaela
9
5.1k
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
130
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
640
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
How STYLIGHT went responsive
nonsquared
100
5.6k
Gamification - CAS2011
davidbonilla
81
5.4k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Faster Mobile Websites
deanohume
307
31k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Transcript
データベースの世界 SQL vs NoSQL あなたのデータに最適なのはどっち? 1
データベースってそもそも何? データベースとは、データを効率的に保存・検索・管理するために整理された「データの集まり」 です。 そして、そのデータベースを管理するためのソフトウェアが**データベース管理システム (DBMS)**です。 なぜDBMS が重要? データの 一貫性や 安全性を守ってくれます。
複数人での同時アクセスをうまくさばいてくれます。 開発者は面倒なファイル管理から解放され、アプリケーションのビジネスロジックに集中 できます。 2
データベースの設計図:「スキーマ」 スキーマとは、データベースの「論理的な構造」を定義した設計図です。 テーブル/ コレクション: データの主な入れ物。 列/ フィールド: データの属性(名前、年齢など)。 制約 (
ルール): PRIMARY KEY (重複禁止のID), NOT NULL (空欄禁止)など、データの品質を保つた めのルール。 SQLデータベースでは、このスキーマを 厳格に守らせます。 これにより、アプリケーション側のコードがシンプルになり、不正なデータが入るのを防ぎます。 3
パラダイム① リレーショナルデータベース (SQL) 4
SQL の世界観:整理整頓された「表」 リレーショナルデータベースは、データをExcelのシートのような**テーブル(表)**で管理しま す。 行 ( レコード): 個々のデータ(例: ある一人の顧客情報)。 列
( カラム): データの属性(例: 顧客ID , 名前 , メールアドレス )。 キー (Key): 主キー: 各行をユニークに識別する「ゼッケン番号」。 外部キー: 他のテーブルの主キーを参照し、テーブル同士を「関連付ける」ためのもの。 この「関連付け」がリレーショナルデータベースの心臓部です。 5
SQL の強み:データの整合性を守る「ACID 特性」 リレーショナルデータベースは、金融取引のような「絶対に失敗が許されない」処理のために、 ACIDという4つの特性を保証します。 Atomicity (原子性): トランザクションは「全部成功」か「全部失敗」のどちらか。中途半端な状 態にしない。 Consistency
(一貫性): データは常にルール(制約)に従った正しい状態を保つ。 Isolation (独立性): 複数の処理が同時に動いても、お互いに干渉しない。 Durability (永続性): 一度成功した処理の結果は、システム障害が起きても失われない。 → 信頼性が求められるシステムに不可欠! 6
SQL の代表選手たち データベー ス 特徴 最適な用途 MySQL 最も広く使われているオープンソース。 Webアプリのバックエンドに強く、パフォ ーマンスと信頼性に定評がある。
Webアプリケーション、オンライン 取引処理(OLTP)、SaaS PostgreSQL 高機能で拡張性が高い。厳格なSQL標準準 拠と高度なデータ分析機能が特徴。 データ分析、地理空間情報システ ム、高い信頼性が求められるエンタ ープライズシステム SQLite サーバー不要の軽量な組み込み型データベ ース。ファイル1つで完結し、設定も不 要。 モバイルアプリ、ブラウザ、小規模 アプリ、プロトタイピング 7
パラダイム② 非リレーショナルデータベース (NoSQL) 8
NoSQL の登場背景:現代のデータ課題 SQLは強力ですが、現代のWebスケールアプリケーションでは限界に直面することがあります。 スキーマの厳格さ: 事前に決めた構造の変更が大変。アジャイル開発のスピードを妨げること も。 スケールの限界: 1台のサーバー性能を上げる「スケールアップ」には物理的・コスト的な限界 がある。 多様なデータ:
JSONのような構造が固定でないデータを扱うのが苦手。 →これらの課題を解決するために**NoSQL (Not Only SQL)**が生まれました。 9
NoSQL の世界観:柔軟性と拡張性 NoSQLデータベースは、SQLとは異なるアプローチを取ります。 柔軟なスキーマ: スキーマレス、または動的なスキーマを持ちます。同じコレクション内でもデ ータ構造が違うことが許容されます。 水平スケーラビリティ ( スケールアウト): サーバーの台数を増やすことで、性能をリニアに向上
させることができます。ビッグデータに最適です。 多様なデータモデル: 用途に合わせて最適なデータモデルを選べます。 結果整合性: 多くのNoSQLは「最終的にデータは一致する」という考え方(結果整合性)を採用 し、可用性や分散処理能力を優先します。 10
NoSQL の様々なタイプ:「適材適所」で選ぶ タイプ データモデル 代表例 最適なユースケース ドキュメ ント JSON/BSON形式の柔軟なド キュメント
MongoDB, Firebase コンテンツ管理、ユーザープロフ ァイル、変化の激しいデータ キーバリ ュー シンプルなキーと値のペア Redis, DynamoDB キャッシュ、セッション管理、リ アルタイムリーダーボード カラムフ ァミリー 行と列で構成されるが、列 は行ごとに可変 Cassandra, HBase IoTデータ、時系列データ、大規模 な分析クエリ グラフ ノード(点)とエッジ(線)で関 係性を表現 Neo4j, Neptune ソーシャルネットワーク、不正検 知、レコメンドエンジン 11
SQL vs NoSQL: どちらを選ぶ? 究極の問いですが、答えは**「アプリケーションの要件による」**です。 12
SQL が輝くとき データの整合性と信頼性が最優先される場合 金融システム、在庫管理、予約システムなど。 データ構造が明確で、変更が少ない場合。 複雑なクエリやデータ間の関連付けが頻繁に必要な場合。 キーワード: 構造化データ, 一貫性, 信頼性,
トランザクション 13
NoSQL が輝くとき 膨大なデータ量と高いスループットが求められる場合(ビッグデータ)。 スキーマが頻繁に変わる、または未定義の場合。 高い可用性と高速な読み書きが必要な場合。 水平方向のスケーラビリティが不可欠な場合。 キーワード: 非構造化データ, スケーラビリティ, 柔軟性,
パフォーマンス 14
まとめ SQLとNoSQLは敵対するものではなく、それぞれに得意な領域がある 補完的な関係です。 SQL: データの 整合性と 信頼性を保証する、伝統的で堅牢な選択肢。 NoSQL: 柔軟性と スケーラビリティを武器に、現代の多様なデータ課題に対応する革新的な選択
肢。 アプリケーションの目的、データの性質、将来の成長を見据えて、最適なデータベースを選択する ことが、成功するシステム開発の鍵となります。 15