Movatterモバイル変換


[0]ホーム

URL:


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

データベースの世界 SQL vs NoSQL

Avatar for MIKIO KUBO MIKIO KUBO
July 10, 2025

データベースの世界 SQL vs NoSQL

データベースの世界
## SQL vs NoSQL
### あなたのデータに最適なのはどっち?

Avatar for MIKIO KUBO

MIKIO KUBO

July 10, 2025
Tweet

More Decks by MIKIO KUBO

See All by MIKIO KUBO

Other Decks in Programming

See All in Programming

Featured

See All Featured

Transcript

  1. データベースの世界 SQL vs NoSQL あなたのデータに最適なのはどっち? 1

  2. データベースってそもそも何? データベースとは、データを効率的に保存・検索・管理するために整理された「データの集まり」 です。 そして、そのデータベースを管理するためのソフトウェアが**データベース管理システム (DBMS)**です。 なぜDBMS が重要? データの 一貫性や 安全性を守ってくれます。

    複数人での同時アクセスをうまくさばいてくれます。 開発者は面倒なファイル管理から解放され、アプリケーションのビジネスロジックに集中 できます。 2
  3. データベースの設計図:「スキーマ」 スキーマとは、データベースの「論理的な構造」を定義した設計図です。 テーブル/ コレクション: データの主な入れ物。 列/ フィールド: データの属性(名前、年齢など)。 制約 (

    ルール): PRIMARY KEY (重複禁止のID), NOT NULL (空欄禁止)など、データの品質を保つた めのルール。 SQLデータベースでは、このスキーマを 厳格に守らせます。 これにより、アプリケーション側のコードがシンプルになり、不正なデータが入るのを防ぎます。 3
  4. パラダイム① リレーショナルデータベース (SQL) 4

  5. SQL の世界観:整理整頓された「表」 リレーショナルデータベースは、データをExcelのシートのような**テーブル(表)**で管理しま す。 行 ( レコード): 個々のデータ(例: ある一人の顧客情報)。 列

    ( カラム): データの属性(例: 顧客ID , 名前 , メールアドレス )。 キー (Key): 主キー: 各行をユニークに識別する「ゼッケン番号」。 外部キー: 他のテーブルの主キーを参照し、テーブル同士を「関連付ける」ためのもの。 この「関連付け」がリレーショナルデータベースの心臓部です。 5
  6. SQL の強み:データの整合性を守る「ACID 特性」 リレーショナルデータベースは、金融取引のような「絶対に失敗が許されない」処理のために、 ACIDという4つの特性を保証します。 Atomicity (原子性): トランザクションは「全部成功」か「全部失敗」のどちらか。中途半端な状 態にしない。 Consistency

    (一貫性): データは常にルール(制約)に従った正しい状態を保つ。 Isolation (独立性): 複数の処理が同時に動いても、お互いに干渉しない。 Durability (永続性): 一度成功した処理の結果は、システム障害が起きても失われない。 → 信頼性が求められるシステムに不可欠! 6
  7. SQL の代表選手たち データベー ス 特徴 最適な用途 MySQL 最も広く使われているオープンソース。 Webアプリのバックエンドに強く、パフォ ーマンスと信頼性に定評がある。

    Webアプリケーション、オンライン 取引処理(OLTP)、SaaS PostgreSQL 高機能で拡張性が高い。厳格なSQL標準準 拠と高度なデータ分析機能が特徴。 データ分析、地理空間情報システ ム、高い信頼性が求められるエンタ ープライズシステム SQLite サーバー不要の軽量な組み込み型データベ ース。ファイル1つで完結し、設定も不 要。 モバイルアプリ、ブラウザ、小規模 アプリ、プロトタイピング 7
  8. パラダイム② 非リレーショナルデータベース (NoSQL) 8

  9. NoSQL の登場背景:現代のデータ課題 SQLは強力ですが、現代のWebスケールアプリケーションでは限界に直面することがあります。 スキーマの厳格さ: 事前に決めた構造の変更が大変。アジャイル開発のスピードを妨げること も。 スケールの限界: 1台のサーバー性能を上げる「スケールアップ」には物理的・コスト的な限界 がある。 多様なデータ:

    JSONのような構造が固定でないデータを扱うのが苦手。 →これらの課題を解決するために**NoSQL (Not Only SQL)**が生まれました。 9
  10. NoSQL の世界観:柔軟性と拡張性 NoSQLデータベースは、SQLとは異なるアプローチを取ります。 柔軟なスキーマ: スキーマレス、または動的なスキーマを持ちます。同じコレクション内でもデ ータ構造が違うことが許容されます。 水平スケーラビリティ ( スケールアウト): サーバーの台数を増やすことで、性能をリニアに向上

    させることができます。ビッグデータに最適です。 多様なデータモデル: 用途に合わせて最適なデータモデルを選べます。 結果整合性: 多くのNoSQLは「最終的にデータは一致する」という考え方(結果整合性)を採用 し、可用性や分散処理能力を優先します。 10
  11. NoSQL の様々なタイプ:「適材適所」で選ぶ タイプ データモデル 代表例 最適なユースケース ドキュメ ント JSON/BSON形式の柔軟なド キュメント

    MongoDB, Firebase コンテンツ管理、ユーザープロフ ァイル、変化の激しいデータ キーバリ ュー シンプルなキーと値のペア Redis, DynamoDB キャッシュ、セッション管理、リ アルタイムリーダーボード カラムフ ァミリー 行と列で構成されるが、列 は行ごとに可変 Cassandra, HBase IoTデータ、時系列データ、大規模 な分析クエリ グラフ ノード(点)とエッジ(線)で関 係性を表現 Neo4j, Neptune ソーシャルネットワーク、不正検 知、レコメンドエンジン 11
  12. SQL vs NoSQL: どちらを選ぶ? 究極の問いですが、答えは**「アプリケーションの要件による」**です。 12

  13. SQL が輝くとき データの整合性と信頼性が最優先される場合 金融システム、在庫管理、予約システムなど。 データ構造が明確で、変更が少ない場合。 複雑なクエリやデータ間の関連付けが頻繁に必要な場合。 キーワード: 構造化データ, 一貫性, 信頼性,

    トランザクション 13
  14. NoSQL が輝くとき 膨大なデータ量と高いスループットが求められる場合(ビッグデータ)。 スキーマが頻繁に変わる、または未定義の場合。 高い可用性と高速な読み書きが必要な場合。 水平方向のスケーラビリティが不可欠な場合。 キーワード: 非構造化データ, スケーラビリティ, 柔軟性,

    パフォーマンス 14
  15. まとめ SQLとNoSQLは敵対するものではなく、それぞれに得意な領域がある 補完的な関係です。 SQL: データの 整合性と 信頼性を保証する、伝統的で堅牢な選択肢。 NoSQL: 柔軟性と スケーラビリティを武器に、現代の多様なデータ課題に対応する革新的な選択

    肢。 アプリケーションの目的、データの性質、将来の成長を見据えて、最適なデータベースを選択する ことが、成功するシステム開発の鍵となります。 15

[8]ページ先頭

©2009-2025 Movatter.jp