ホーム記事一覧入門:データベースの世界(ファイルに保存するのと何が違うのか)

入門:データベースの世界(ファイルに保存するのと何が違うのか)

2026-11-09
8分
入門:データベースの世界(ファイルに保存するのと何が違うのか)

目次

今回はデータベース(DB)というものの話。

「業務改善の始め方③:AIと試作する(小さなアプリの作り方・確かめ方・残し方)」では、作業の記録を入力するアプリを作りました。

入力したデータは、ブラウザを閉じても消えません。

ただ、そのデータがどこにあるのか、ほかの置き方と何が違うのかは、説明しないままでした。

その置き場が、DB。

ぜひこの記事を通して知っておいてください🙏

この記事の結論

  • DBは、みんなのデータを1か所で預かり、頼めば出し入れしてくれる仕組み
  • 1台のパソコンで使う試作に限らず、複数のPCから使うときも、このDBが重要になる
  • 置き場所・バックアップ・費用を、どうするか決める必要があります

DBは、データを預かって出し入れする仕組み

DBは、情報を集めて整理しておくための道具です。人、商品、注文など、どんな情報でもしまっておけます。

多くのDBでは、データをテーブルという表の形でしまっています。作業記録なら、「いつ、誰が、何の作業を、何時間」が1件ずつ並ぶ形です。

ここまでなら、Excelの表と変わらないように見えます。違いが出るのは、使う人やパソコンが増えたときです。

DBがExcelと違い、得意なことはいろいろあります。

  • 何台・何人から同時に入れても、順番にさばいて取り違えない
  • 「ここには数字だけ」「時刻だけをここに入れる」のような決まりを、DBの側で作れる
  • 途中で止まっても、データが中途半端な状態で残らない
  • 何十万件あっても、条件に合うものだけをすぐ取り出せる

詳しくは、このあと見ていきます。

いまのアプリの置き方で、困ること

試作のアプリでは、入力用のパソコンを1台で入力、データはそのパソコンのブラウザの中に残る方法を取りました。

そして、月末には、まとめ役がCSVファイルに書き出して、控えを取ります。

1台で回すなら、これで十分です。困るのは、次のような場面です。

ブラウザの中では、別のパソコンからは見えない

ブラウザの中のデータは、そのパソコンの、そのブラウザの中にしかありません。

事務所のパソコンから今日の分を見たい。入力用のパソコンを2台に増やしたい。こうなると、いまの置き方では行き止まりです。

もちろん、PCが壊れた場合もデータの復旧はできなくなります。

閲覧データを消すと、一緒に消える

また、試作の記事では、マニュアルに「ブラウザの閲覧データを消さない」「プライベートウィンドウでは開かない」と書きました。

どちらも保存しているデータが消える行為だからです。

このように、ブラウザの中に置く方法は、ブラウザの扱いを心得ていないと、データの安全性は担保されません。

それ故、使い勝手の良い仕組みとは言えません。

DBに置くと、変わること

DBは、こうした困りごとを、置き場所から変えます。

データが1か所に集まる

DBでは、データを預かる側(サーバー)と、使う側を分けるのが一般的です。使う側のパソコンは、ネットワークを通じてサーバーにつなぎます。

入力用のパソコンと事務所のパソコンが、どちらもサーバーのDBへつながり、データを入れたり見たりする図。データはサーバーに1つだけある

どのパソコンから入力しても、データは同じ1か所に集約されます。事務所のパソコンから、全ての人間が入れた情報をそのまま見られるようになります。

試作のアプリのIndexedDBも、じつはDB

ここで、試作のアプリの保存先の話をしておきます。

保存先は、ブラウザに入っているIndexedDBという仕組みです。じつはこれも、ブラウザの中にある小さなDBです。ただし、しまわれる場所はそのパソコンの、そのブラウザの中だけです。

つまり、違いはDBかどうかではなく、DBをどこに置くかです。1台で使うならブラウザの中、みんなで使うならサーバーの中、という分け方になります。

DBを動かす仕組み、DBMS

DBの中で実際に働いているのが、DBMS(データベース管理システム)というソフトです。

アプリが「この日の記録を入れて」「佐藤さんの分を出して」と頼むと、DBMSが受け取って、決まった場所へしまったり、合うものだけを探して渡したりします。何台から同時に頼まれても、順番にさばいてくれます。

アプリは、DBMSに頼むだけでよいのです。よくできた仕組みです。

細かいところは「DBMSとは何か」に、表を番号でつないでしまう考え方は「リレーショナルデータベースとは何か」にまとめています。

よく名前を聞くDBMS

DBMSには、いくつも種類があります。名前をよく聞くものを並べます。

名前どんなものかよく使われる場面
PostgreSQL無料で使えるオープンソースのDBMSサーバーに置いて、みんなで使う
MySQLオープンソースで公開されているDBMS(開発はOracle社)Webサイトやサービスの裏側
SQLiteサーバーを立てず、ファイル1つにデータをしまうDBMS1台のパソコンやスマホの中のアプリ
Microsoft SQL ServerMicrosoft社のDBMS。無料のExpress版があるWindowsが中心の職場の業務システム
Oracle DatabaseOracle社のDBMS大きな会社の基幹システム
Microsoft Access入力画面と一緒に作れる、パソコン向けのDBMS小さな部署の台帳

どれを使うかは、このあとの「使う前に考えること」で見る置き場所や費用と一緒に決めます。

DBMSへの頼み方、SQL

アプリがDBMSに頼むとき、ふつうの日本語で頼むわけではありません。決まった書き方の言葉で伝えます。それがSQL(エスキューエル)です。

基本の頼み方は4つです。作業記録の表を例に並べます。

取ってくる(SELECT):作業記録から、佐藤さんの分を出して

SELECT * FROM 作業記録 WHERE 担当 = '佐藤';

書く(INSERT):この1件を作業記録に入れて

INSERT INTO 作業記録 (日付, 担当, 作業, 時間)
VALUES ('2026-11-09', '佐藤', '検品', 2);

変える(UPDATE):11月9日の佐藤さんの時間を3に直して

UPDATE 作業記録 SET 時間 = 3
WHERE 日付 = '2026-11-09' AND 担当 = '佐藤';

消す(DELETE):11月9日の佐藤さんの分を消して

DELETE FROM 作業記録
WHERE 日付 = '2026-11-09' AND 担当 = '佐藤';

どれも「何をするか」「どの表か」「どの行か(WHERE)」を並べた形です。変える・消すでWHEREを書き忘れると、表の全部の行が変わったり消えたりします。アプリを作るときに、いちばん気をつけるところです。

上の表のDBMSは、細かい違いはあっても、どれもSQLで頼めます。DBMSを乗り換えても、頼み方の基本はそのまま使えます。

アプリを作る側は、画面の裏でこのSQLをDBMSへ送っています。使う人がSQLを書く必要はありません。

SQLの基本の言葉と、表どうしをつないで出す書き方は「SQLとは何か」にまとめています。

使う前に考えること

便利な話が続きましたが、DBを使うと、考えることも増えます。

  • 置き場所:サーバーをどこに置くか。社内に置くのか、外のサービスを借りるのか
  • バックアップ:大事なデータは、定期的に控えを取ることを検討しましょう
  • 費用と手間:サーバーの費用に加えて、動かし続ける手間がかかります
  • セキュリティ:データが1か所に集まるぶん、誰が使えるかを決め、外から入られないように守る必要があります

実際にDBの管理を検討するのは、アプリの規模感で考えましょう。

いまの状況置き方
1台のパソコンで入力するブラウザの中のDB(IndexedDB)のままでよい
1台のままで、控えが不安CSVを書き出す間隔を短くする
複数のパソコンから入力・確認したいサーバーのDBを検討する

まとめ

DBの話、入門編は以上です。

  1. DBは、データを1か所で預かり、出し入れしてくれる仕組み
  2. 1台なら、ブラウザの中のDB(IndexedDB)で足りる。複数のパソコンからなら、サーバーのDBへ
  3. DBに置くと、集まる・崩れない・守りやすい
  4. その代わり、置き場所・バックアップ・費用を決める必要がある

これで世の中のシステムが管理している情報が、DBでどう管理されているか、少し見えてきたことだと思います。

そしてこれから、自分のアプリを作り、大きくしていくにあたって、DBは避けられない選択肢です。

まだ入門です。

これからどんどん、DBについての活用術を出していきますから、ぜひお役立ててください!

参考文献・リソース

•[Database basics(Microsoft)](https://support.microsoft.com/en-us/access/database-basics)
•[What Is a Database?(Oracle)](https://www.oracle.com/database/what-is-database/)
•[What Is PostgreSQL?(PostgreSQL公式ドキュメント)](https://www.postgresql.org/docs/current/intro-whatis.html)
•[About SQLite(SQLite公式)](https://www.sqlite.org/about.html)
•[MySQL Server README(Oracle、GitHub)](https://github.com/mysql/mysql-server)
•[Editions and supported features of SQL Server 2022(Microsoft Learn)](https://learn.microsoft.com/en-us/sql/sql-server/editions-and-components-of-sql-server-2022)
•[Oracle Database(Oracle)](https://www.oracle.com/database/)
•[Architectural Fundamentals(PostgreSQL公式ドキュメント)](https://www.postgresql.org/docs/current/tutorial-arch.html)
•[Transactions(PostgreSQL公式ドキュメント)](https://www.postgresql.org/docs/current/tutorial-transactions.html)
•[Backup and Restore(PostgreSQL公式ドキュメント)](https://www.postgresql.org/docs/current/backup.html)
•[The SQL Language(PostgreSQL公式ドキュメント)](https://www.postgresql.org/docs/current/tutorial-sql.html)
•[IndexedDB API(MDN)](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API)
•[Storage quotas and eviction criteria(MDN)](https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria)