Web開発におけるデータベース、基本のきほん
■第1話:データベースを使う意義
(最終更新日:2022.06.12)

(絵が小さい場合はスマホを横に)
「データベースって何が便利なの?」
Web制作、Web開発を勉強し始めて、意外とつまづくのがデータベースである。
本項ではデータベースの意義から選び方、つまづきどころについて解説できればと思う。
本話ではデータベースを使う意義とその選び方について説明する。
また、ここでは単にデータベースと言えばリレーショナルデータベースマネジメントシステム(RDBMS)を指すものとする。
1.データベースを使う意義
データベースを使う意義は主に以下の5点であると考える。それぞれ簡単に説明する。
- 統一した方法で分かりやすくデータを管理できる
- 無駄が少なくデータを管理できる
- 一元管理できる
- SQLで検索、結合などの処理が簡単にできる
- トランザクション管理、データロックができる
これは、旧来の方法と比較すれば分かると思う。 CSVやTSVのようなファイル形式の管理だと、作る度にフォーマットを決めることになりバラつく。 一方、データベースの場合は先に保存する形式(登録項目や型)を決めてから保存を行う。 必然的に設計ありきの作り方になるため、データを整った形で管理することができる。
②無駄が少なくデータを管理できる詳しくは後に説明するが、正規化という手法を使うことで、データの無駄を少なくすることができる。 正規化により影響範囲を小さくできるので、変更に対する作業も少なくて済む。
データベースTableの例、無駄の少ない管理が可能
CSVやTSV、xlsxと言った個々のファイル単位の管理ではないので、データが散らからない。 一カ所のデータベースサーバーで管理するので、一括で管理できる。組織の資産としてデータ管理しやすい。
RDBMSによる一元管理(左)と個人のファイル管理(右)
データベースには、SQLというデータを操作するための言語が用意されていて、 検索やテーブル間の結合などの操作を簡単に行うことができる。 同様の操作をアプリケーション側のプログラミング言語で行うと非常に大変である。
⑤トランザクション管理、データロックができるお金の振込(自分の口座からの引落、相手の口座への預入)等といった複数の操作で1つの処理とする場合、 トランザクション処理(処理途中で障害が生じた場合のキャンセル)が必要になる。そのような機能も簡単に実装できる。 また、誰かがあるテーブルのデータを操作している際、他の人の処理を待つデータロックという機能も簡単に実装できる。
これら5つの意義は全て重要で、加えてどこからでもアクセスできる、データ管理ができるというのが非常に重要になってくる。 信頼性の高いデータを管理できるRDBMSの特徴は最初に掴んでおいてほしい。
2.データベースの種類
データべースは大きく、分散型のデータベースと中央集権型のデータベースの2種類に分けられる。 分散型のデータベースの代表例はブロックチェーンで、複数のユーザーが分散してログを取ることでデータの正当性を保証する方法である。 特定のある機関(銀行など)がデータを管理せず、商取引が行えるという点が強みである。手数料等にメリットが出る。 例えば、仮想通貨はもとより食品の産地経路管理、保険契約、病院間のカルテ共有などで有効である。
分散型データベース、ブロックチェーンの例
一方、中央集権型のデータベースは今まで説明してきたリレーショナルデータベースのことである。 高速に処理できる点、複数のデータ(Table)を統合して分析、処理できる点が強みである。 ERP(経営管理)、CRM(顧客管理)、MRP(生産管理)等で利用される。 皆さんご存知、WordPressの管理もこれを利用している。 用途は違えど分散型、中央集権型ともに重要なデータ管理手法である。
リレーショナルデータベースの使用例
3.リレーショナルデータベースとは
最後にリレーショナルデータベースの概要を説明する。 リレーショナルデータベースは行と列からなる表(Table)形式で管理するデータベースで、 各々のTableは共通となるキー(番号等)で連携することができるものである。 SQLという簡単な命令でデータを操作することができ、 先に挙げたトランザクションやデータロックといった重要な機能を有する。 近年、Web技術ではNoSQLというものも頻繁に活用されているが、 これはシンプルなデータの読み書きに特化し、高速処理できるというのが利点である。 しかしながら、SQLによるデータ連携やトランザクションやデータロック、データの連携が難しい。 データの一貫性という点でも、リレーショナルデータベースに劣る。 厳格なデータの管理では、未だリレーショナルデータベースが主力である。

リレーショナルデータベースのイメージ
▼参考図書、サイト
「SQLの絵本第2版」 アンク 翔泳社
「はじめてのデータベース設計1,2」 松田達也
「達人に学ぶDB設計徹底指南書」 ミック 翔泳社