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

アプリの記事 で「アプリのデータはどこにある?」を見ました。今回はその答えの本命——「データベース(DB)」 を、ふんわり見ていきます。
データベースってなに?
ざっくり言うと、データベースは 「データを整理して保管・出し入れする、専門の倉庫」 です。

英語は Database(データの基地)。会員情報・商品情報・購入履歴・メッセージなど、目的別に整理して入れて、いつでも取り出せる仕組み のソフトウェアです。
スマホ・PC・Webサービスの裏側では、こんな3層構造で動いてます:
- アプリ(あなたが触る画面):LINE・Amazon・Instagram など
- データベース(裏でデータを保管):MySQL・PostgreSQL・MongoDB など
- ストレージ(物理的にデータを置く場所):SSD・HDD
つまりデータベースは 「アプリ」と「ストレージ」の間にいる、データの管理人。ストレージに直接アクセスするんじゃなく、DBを通すことで賢く扱える ようになります。
ファイルじゃダメなの?
「データなら、Excel や JSON のファイルに保存すればよくない?」——素朴な疑問ですが、Webサービス規模になると ファイルじゃ無理 な理由が4つあります。

- 検索のスピード:100万件のExcelから「ken_127」を探すと固まる。DBは インデックス(索引)で一瞬で見つける
- 同時アクセス:Excelは誰かが開いてると他の人が編集できない。DBは 何千人が同時に 読み書きできる
- 整合性(一貫性):銀行口座で「Aさんから-1000円・Bさんに+1000円」が片方だけ失敗すると地獄。DBは 両方成功 or 両方なし を保証する仕組み(トランザクション)がある
- 関係性の表現:「ユーザー」と「注文履歴」と「商品」を つなげて扱う のがファイルでは大変。DBは関係を最初から想定して作られてる
→ 件数が 数千件まで なら Excel やスプレッドシートで十分。数万件以上・同時アクセス・お金が絡む ようになるとDB必須。
データベースの2大流派
データベースには 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
スマホ・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活用
「データベースって、結局どこで使われてるの?」——実は 毎日使うアプリの裏には必ずいる。代表的な例で見てみます。

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

ふんわり理解チェック
- データベース=データを整理して保管・出し入れする専門の倉庫。アプリとストレージの間にいる管理人
- ファイルじゃダメな理由:検索スピード/同時アクセス/整合性/関係性
- 2大流派:RDB(表型・MySQL/PostgreSQL)と NoSQL(柔軟型・MongoDB/Redis/Firebase)
- 動かし方3パターン:端末内(SQLite)/サーバー(自前)/マネージド(AWS RDS/Supabase/Firebase)。現代はマネージド主流
「データベース」は普段意識せず使ってますが、ほぼ全てのアプリの裏で支えてる立役者。構造化されてるから速く検索でき、同時アクセスに耐え、整合性を保ったまま何百万件でも扱える。
「Excelじゃダメな世界」が広がってると知るだけで、Webサービスの裏側がぐっと立体的に見えてきます🪶