データベースがなぜ必要なのか改めて考えてみよう

Webシステムでは必ずと言ってよいほどデータベースが使われています。なぜ、Webシステムではデータベースが使われているのでしょうか。⁠使うものだと思っていたから」というだけでは、データベースが必要な理由を理解しているとは言えません。そこで本記事ではその理由についていくつか解説したいと思います。

①大量のデータから知りたいデータを取り出すため

テキストの文字列で考えてみましょう。たとえば「⁠⁠松田、吉永、米沢』という文字列の中から『吉永』を探しなさい」と言われた場合、すぐに見つけることができるはずです。ただ10万人分の苗字であったらどうなるでしょうか。目で見て調べるだけで膨大な時間がかかるはずです。データベースではそのニーズを満たすために「サーチ」という機能があり、インデックスなどを備えることで高速に見つけ出すことができるようになっています。

②並列的な制御を可能にするため

Webシステムは多くのユーザが同時にアクセスすることを前提としているので、複数のユーザが同時に同じデータを更新しようとすることも考えられます。何も対策をしていないと、あるユーザがデータを更新したにもかかわらず、別のユーザによって書き換えられてしまい、データの整合性がとれなくなる事態になります。データベースでは「排他制御」という機能によって、同時アクセスによって競合が発生した場合は、あるユーザが独占して更新できるようにし、別のユーザは更新できないようにすることができます。

③万が一の障害に備えてデータを保護するため

トラブルはいつ起こるかわかりません。あるのが当たり前のデータが数分後に跡形もなく消えていることもありえます。データベースではバックアップやレプリケーション(複製)などの機能によって、不意の事態が発生したとしてもデータを安全に保護することができるようになっています。

以上データベースが必要な理由をごく一部ですが挙げていきました。これだけで理解することは難しいかもしれませんが、とりあえずデータベースには「大量のデータを取り扱ううえで必要になってくる機能が数多く用意されている」ということはおわかりいただけたかと思います。


Webエンジニアのためのデータベース技術[実践]入門はSoftware Design誌で2010~2011年にかけて連載された「データベース技術の羅針盤」を中心に加筆・修正を加えたものです。データベースのスペシャリストである著者が、現場での経験から得たノウハウを基本からていねいに解説しています。

データベースの利用に必要なツールの使い方などをきちんと理解しておくのはもちろん重要なことです。ただ、データベースはWebシステムの基幹を担っており、それだけで対応できるほど生やさしくはないことを意識しておくべきです。

Webシステムを開発するWebエンジニアという仕事は特定分野の知識を押さえていればよいわけではなく、プログラミング、サーバやネットワーク、そしてデータベースと幅広い分野において深い知識が求められます。ぜひ本書でWebエンジニアが知っておくべきデータベース技術の整理に役立てていただければと思います。