ユーザー登録」「カートに追加」「メッセージ履歴を表示」…
スマホでも PC でも、毎日のように使う機能。裏で必ず動いてる のがデータベースです。

あちこちで聞く データベース
図1:あちこちで聞く「データベース」

アプリの記事 で「アプリのデータはどこにある?」を見ました。今回はその答えの本命——「データベース(DB)」 を、ふんわり見ていきます。

データベースってなに?

ざっくり言うと、データベースは 「データを整理して保管・出し入れする、専門の倉庫」 です。

データベース=整理された倉庫
図2:データベース=整理された倉庫

英語は Database(データの基地)。会員情報・商品情報・購入履歴・メッセージなど、目的別に整理して入れて、いつでも取り出せる仕組み のソフトウェアです。

スマホ・PC・Webサービスの裏側では、こんな3層構造で動いてます:

  • アプリ(あなたが触る画面):LINE・Amazon・Instagram など
  • データベース(裏でデータを保管):MySQL・PostgreSQL・MongoDB など
  • ストレージ(物理的にデータを置く場所):SSD・HDD

つまりデータベースは 「アプリ」と「ストレージ」の間にいる、データの管理人。ストレージに直接アクセスするんじゃなく、DBを通すことで賢く扱える ようになります。

ファイルじゃダメなの?

「データなら、Excel や JSON のファイルに保存すればよくない?」——素朴な疑問ですが、Webサービス規模になると ファイルじゃ無理 な理由が4つあります。

ファイルとDBの違い4軸
図3:ファイルとDBの違い4軸
  • 検索のスピード:100万件のExcelから「ken_127」を探すと固まる。DBは インデックス(索引)で一瞬で見つける
  • 同時アクセス:Excelは誰かが開いてると他の人が編集できない。DBは 何千人が同時に 読み書きできる
  • 整合性(一貫性):銀行口座で「Aさんから-1000円・Bさんに+1000円」が片方だけ失敗すると地獄。DBは 両方成功 or 両方なし を保証する仕組み(トランザクション)がある
  • 関係性の表現:「ユーザー」と「注文履歴」と「商品」を つなげて扱う のがファイルでは大変。DBは関係を最初から想定して作られてる

→ 件数が 数千件まで なら Excel やスプレッドシートで十分。数万件以上・同時アクセス・お金が絡む ようになるとDB必須。

データベースの2大流派

データベースには RDB(リレーショナル)NoSQL(非リレーショナル) という二大派閥があります。違いを知ると、技術記事がぐっと読みやすくなる。

RDBとNoSQLの2大流派
図4:RDB(表型)とNoSQL(柔軟型)

RDB(リレーショナル型)

表(テーブル)でデータを管理し、表と表を関連付ける 伝統派。代表は MySQL・PostgreSQL・SQLite など。会員表・商品表・注文表をIDで関連付け、ガッチリ構造を決めて入れる。整合性が強い ので、銀行・予約・会員管理など 「絶対にズレちゃダメな情報」 に強い。操作には SQL(エス・キュー・エル)という英語っぽい命令言語を使うのが特徴。

NoSQL(非リレーショナル型)

表じゃない自由な形 でデータを入れる柔軟派。代表は MongoDB・Redis・Firebase Firestore など。ドキュメント型(JSON的)・Key-Value型(鍵と値)・グラフ型など 形が複数 ある。スキーマ変更が楽で 速さと拡張性が強い ので、SNSのタイムライン・チャット履歴・キャッシュなど 「量が多くて柔軟性が欲しい」 に強い。

昔はRDBほぼ一択、現代は「両方使い分け」 が当たり前。Webサービスは RDB(会員DB)+ NoSQL(タイムラインキャッシュ) の併用が定番。

どこで動いてる?

データベースは「どこに置いて、誰が運用するか」で3パターンあります。同じMySQLでも、置き場所によって運用が全然違う。

DBの3つの動かし方
図5:端末内 / サーバー / マネージドDB

① 端末内DB

スマホ・PCの中だけで動く小さなDB。代表は SQLite(スマホアプリ内)・IndexedDBブラウザ内)。LINEのトーク履歴(本体は端末内)・写真アプリ整理・設定保存など端末完結のデータ向け。実は SQLite は世界で一番使われてるDB(iPhone・Android・Webブラウザ・各種アプリに組み込まれてる)。

② サーバーDB(自前運用)

レンタルサーバーや クラウド の仮想サーバーに、MySQLやPostgreSQLを自分でインストール して動かす昔ながらの方式。自由度が高い反面、OS更新・バックアップ・スケール・障害対応を全部自分で 見る必要あり。個人開発から中規模サービスで広く使われてる。

③ マネージドDB(クラウドDBサービス)

DBの運用部分を丸ごとクラウドに任せる方式。代表は AWS RDS / Google Cloud SQL(RDB系)・Supabase(PostgreSQLベース)・Firebase Firestore(NoSQL系)。起動・バックアップ・スケール全部自動、料金は従量課金。現代のWebサービス開発では ほぼマネージド一択

→ 「昔は自分で立てる、今はマネージドが当たり前」。SaaS / PaaSの流れと同じ進化(クラウドの記事と整合)。Supabase = RDB寄り、Firebase = NoSQL寄り、と覚えると データベースの二大流派 とも繋がる。

身近なアプリで見るDB活用

「データベースって、結局どこで使われてるの?」——実は 毎日使うアプリの裏には必ずいる。代表的な例で見てみます。

身近なアプリでのDB活用例
図6:毎日使うアプリの裏でDBが動く
  • LINEのトーク履歴:誰と誰がやり取りしたか、いつ送ったか、既読か——端末内の メッセージDB(SQLite)に1件ずつ記録。バックアップを有効にすれば、クラウド側にも保管される
  • Amazonのカート:「カートに入れた商品」「数量」「ユーザーID」を RDB に保存。ログアウトしても消えないのはDBに残ってるから
  • Instagramのフォロー関係:「AさんがBさんをフォロー」という関係を DB に保存。タイムライン生成では「フォロー中の全員の投稿を最新順に」をDBから引いてくる
  • 銀行口座:残高・取引履歴・送金処理。ズレが絶対NG なので RDB のトランザクション機能が必須

→ アプリ=表側、DB=裏側。ふんわり言えば、「データを扱うアプリには必ずDBがいる」

まとめ

データベースのすべて、これ1枚で
図7:データベースのすべて、これ1枚で

ふんわり理解チェック

  • データベース=データを整理して保管・出し入れする専門の倉庫。アプリとストレージの間にいる管理人
  • ファイルじゃダメな理由:検索スピード/同時アクセス/整合性/関係性
  • 2大流派:RDB(表型・MySQL/PostgreSQL)と NoSQL(柔軟型・MongoDB/Redis/Firebase)
  • 動かし方3パターン:端末内(SQLite)/サーバー(自前)/マネージド(AWS RDS/Supabase/Firebase)。現代はマネージド主流

「データベース」は普段意識せず使ってますが、ほぼ全てのアプリの裏で支えてる立役者。構造化されてるから速く検索でき、同時アクセスに耐え、整合性を保ったまま何百万件でも扱える。

「Excelじゃダメな世界」が広がってると知るだけで、Webサービスの裏側がぐっと立体的に見えてきます🪶