初心者の前に立ちはだかる壁「DB」
初心者がWebアプリを作ろうとすると、必ず現れるボスキャラがいます。
「データベース(DB)」です。
多くの初心者がこう考えます。
「データを保存するだけなら、Excelでよくない?」
「テキストファイルに書き込めばいいじゃん」
しかし、それよりDBを使う方が圧倒的に効率がいいです。テキストやExcelで管理しちゃおうというのは、竹槍で戦車に挑むようなものです。
自分ひとりが使う家計簿ならExcelで十分です。
しかし、多くの人間がアクセスするWebシステムにおいて、Excelは無力です。
今日は、Webシステムの心臓部であるデータベースがなぜ必要なのか。Excelとは何が違うのか。その正体を解説していきます。
Excelとの決定的違い:同時アクセスの耐性
Excelは「文房具」です。
データベースは「インフラ(設備)」です。
決定的な違いは「同時に何人が触れるか」です。
Excelファイルを共有フォルダに置いて、会社の同僚10人で同時に編集しようとしたことはありますか。
「○○さんが編集中です」と表示されてロックされたり、保存した瞬間に誰かのデータが消えたりして、オフィスは修羅場になります。
データベースは違います。
100人、いや数万人が同時にアクセスしても平気な顔をしています。
「Aさんが書き込んでいる間に、Bさんが読み込みに来たから、Bさんには0.01秒前のデータを見せておこう」といった交通整理を、神のような速度で処理します。
この「整合性」を守る能力こそが、データベースの存在意義です。
構造:頑固なルールで守られた「表」
データベースの中身も、見た目はExcelのような「表(テーブル)」です。
行(レコード)があり、列(カラム)があります。
しかし、そのルールは軍隊のように厳格です。
Excelなら、金額の列に「不明」という文字を書き込んでも怒られません。
データベースでは不可能です。
「ここは数字専用の列だ! 文字を入れるな!」
と、入り口で門前払いされます。
日付の列に「来週のどこか」なんて曖昧なデータも入りません。
この融通の利かなさが、データの品質を保ちます。
「数字の列を合計したらエラーが出た(文字が混ざっていたから)」という、Excelあるある事故が起きないのです。
SQL:倉庫番への「命令書」
Excelはマウスでカチカチ操作します。
データベースは違います。マウスでは操作しません(管理ツールを使えば別ですが、基本は文字です)。
データベースという巨大な倉庫には、無愛想ですが仕事の早い「倉庫番(DBMS)」がいます。
彼に仕事を頼むには、「SQL(エスキューエル)」という専用の命令書を書く必要があります。
例えば、「users」という表から、20歳以上の人を探したい時。
SELECT * FROM users WHERE age >= 20;
これを翻訳するとこうなります。
- 「usersテーブルから(FROM)」
- 「年齢が20以上の行を(WHERE)」
- 「全部持ってこい(SELECT)」
この手紙を渡すと、倉庫番は大量のデータの中から、条件に合うものだけを一瞬でピックアップして持ってきてくれます。
人間が目で見て探す必要はありません。
主な製品:MySQLという巨人
データベースにはいくつかの製品がありますが、Web業界で最も使われているのが「MySQL(マイエスキューエル)」です。
- MySQL
無料で使えるオープンソースの巨人。世界中のWebサイトの裏側で動いています。 - PostgreSQL
MySQLのライバル。ちょっと機能がリッチで真面目。 - Oracle
大企業が使う有料の高級品。高い。
初心者は黙ってMySQL(またはその互換のMariaDB)を選んでおけば間違いありません。
まとめ:データは城の中に隠せ
- Excel
個人用のノート。自由だが脆い。 - データベース
全自動ハイテク倉庫。厳格で頑丈。
Webシステムにおいて、データは「資産」です。
顧客リスト、商品データ、売上記録。これらが消えたり矛盾したりすれば、ビジネスは終わります。
だからこそ、Excelのようなペラペラの紙ではなく、データベースという堅牢な城の中に保管するのです。
PHPなどのプログラムは、その城の窓口係に過ぎません。
Webシステムの真の支配者は、奥に鎮座するデータベースです。


コメント