Web制作、Web開発の歩き方

Web開発におけるデータベース、基本のきほん

■第1話:データベースを使う意義

(最終更新日:2022.06.12)

データベースのイメージ
この記事は6分で読めます!
(絵が小さい場合はスマホを横に)

「データベースって何が便利なの?」

Web制作、Web開発を勉強し始めて、意外とつまづくのがデータベースである。 本項ではデータベースの意義から選び方、つまづきどころについて解説できればと思う。 本話ではデータベースを使う意義とその選び方について説明する。 また、ここでは単にデータベースと言えばリレーショナルデータベースマネジメントシステム(RDBMS)を指すものとする。


1.データベースを使う意義

データベースを使う意義は主に以下の5点であると考える。それぞれ簡単に説明する。

  1. 統一した方法で分かりやすくデータを管理できる
  2. 無駄が少なくデータを管理できる
  3. 一元管理できる
  4. SQLで検索、結合などの処理が簡単にできる
  5. トランザクション管理、データロックができる
①統一した方法で分かりやすくデータを管理できる

これは、旧来の方法と比較すれば分かると思う。 CSVやTSVのようなファイル形式の管理だと、作る度にフォーマットを決めることになりバラつく。 一方、データベースの場合は先に保存する形式(登録項目や型)を決めてから保存を行う。 必然的に設計ありきの作り方になるため、データを整った形で管理することができる。

②無駄が少なくデータを管理できる

詳しくは後に説明するが、正規化という手法を使うことで、データの無駄を少なくすることができる。 正規化により影響範囲を小さくできるので、変更に対する作業も少なくて済む。

DBtableの例

データベースTableの例、無駄の少ない管理が可能

③一元管理できる

CSVやTSV、xlsxと言った個々のファイル単位の管理ではないので、データが散らからない。 一カ所のデータベースサーバーで管理するので、一括で管理できる。組織の資産としてデータ管理しやすい。

一元管理

RDBMSによる一元管理(左)と個人のファイル管理(右)

④SQLで検索、結合などの処理が簡単にできる

データベースには、SQLというデータを操作するための言語が用意されていて、 検索やテーブル間の結合などの操作を簡単に行うことができる。 同様の操作をアプリケーション側のプログラミング言語で行うと非常に大変である。

⑤トランザクション管理、データロックができる

お金の振込(自分の口座からの引落、相手の口座への預入)等といった複数の操作で1つの処理とする場合、 トランザクション処理(処理途中で障害が生じた場合のキャンセル)が必要になる。そのような機能も簡単に実装できる。 また、誰かがあるテーブルのデータを操作している際、他の人の処理を待つデータロックという機能も簡単に実装できる。

これら5つの意義は全て重要で、加えてどこからでもアクセスできる、データ管理ができるというのが非常に重要になってくる。 信頼性の高いデータを管理できるRDBMSの特徴は最初に掴んでおいてほしい。

2.データベースの種類

データべースは大きく、分散型のデータベースと中央集権型のデータベースの2種類に分けられる。 分散型のデータベースの代表例はブロックチェーンで、複数のユーザーが分散してログを取ることでデータの正当性を保証する方法である。 特定のある機関(銀行など)がデータを管理せず、商取引が行えるという点が強みである。手数料等にメリットが出る。 例えば、仮想通貨はもとより食品の産地経路管理、保険契約、病院間のカルテ共有などで有効である。

ブロックチェーンの例

分散型データベース、ブロックチェーンの例

一方、中央集権型のデータベースは今まで説明してきたリレーショナルデータベースのことである。 高速に処理できる点、複数のデータ(Table)を統合して分析、処理できる点が強みである。 ERP(経営管理)、CRM(顧客管理)、MRP(生産管理)等で利用される。 皆さんご存知、WordPressの管理もこれを利用している。 用途は違えど分散型、中央集権型ともに重要なデータ管理手法である。

ブロックチェーンの例

リレーショナルデータベースの使用例

3.リレーショナルデータベースとは

最後にリレーショナルデータベースの概要を説明する。 リレーショナルデータベースは行と列からなる表(Table)形式で管理するデータベースで、 各々のTableは共通となるキー(番号等)で連携することができるものである。 SQLという簡単な命令でデータを操作することができ、 先に挙げたトランザクションやデータロックといった重要な機能を有する。 近年、Web技術ではNoSQLというものも頻繁に活用されているが、 これはシンプルなデータの読み書きに特化し、高速処理できるというのが利点である。 しかしながら、SQLによるデータ連携やトランザクションやデータロック、データの連携が難しい。 データの一貫性という点でも、リレーショナルデータベースに劣る。 厳格なデータの管理では、未だリレーショナルデータベースが主力である。

リレーショナルデータベースのイメージ

リレーショナルデータベースのイメージ


▼参考図書、サイト

 「SQLの絵本第2版」 アンク 翔泳社
 「はじめてのデータベース設計1,2」 松田達也 
 「達人に学ぶDB設計徹底指南書」 ミック 翔泳社