Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
140
データベースの世界 SQL vs NoSQL
データベースの世界
## SQL vs NoSQL
### あなたのデータに最適なのはどっち?
MIKIO KUBO
July 10, 2025
Tweet
Share
More Decks by MIKIO KUBO
See All by MIKIO KUBO
The Fusion of Mathematical Optimization and AI (MOAI): History and Outlook (Final Version)
mickey_kubo
0
18
The Fusion of Mathematical Optimization and AI (MOAI): History and Outlook (Short Version)
mickey_kubo
1
19
The Fusion of Mathematical Optimization and AI (MOAI): History and Outlook
mickey_kubo
1
65
History and Future of MO+AI
mickey_kubo
1
53
History and Future of MO+AI (Fusion of Mathematical Optimization and Artificial Intelligence)
mickey_kubo
1
17
Next.js 入門解説: Reactとの決定的な違いとApp Routerに基づくモダンWeb開発
mickey_kubo
1
75
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
190
React完全入門
mickey_kubo
1
73
TypeScript初心者向け完全ガイド
mickey_kubo
1
68
Other Decks in Programming
See All in Programming
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
100
Integrating WordPress and Symfony
alexandresalome
0
150
新卒エンジニアのプルリクエスト with AI駆動
fukunaga2025
0
200
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
330
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
310
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
210
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
790
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
680
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
100
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
260
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
5.5k
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Practical Orchestrator
shlominoach
190
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
The Language of Interfaces
destraynor
162
25k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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