データベースは社会を定義する – DB入門のすすめ –

現代社会においてデータベースの恩恵を受けていない人はいません。携帯電話のアドレス帳から、コンビニのPOSシステム、銀行口座、飛行機の予約システム、生産管理などの業務システムなどまで数多くのものがデータベースによって成り立っています。

その範囲は部品管理から生産管理、受注管理、売上管理、請求管理、支払管理、原価管理、勤怠管理といった具合に多岐にわたり、おおよそ全ての業種において何かしらのデータベースが運用されていると言い切ってしまっても過言ではありません。

つまり、現代の社会活動の多くがデータベースという形式を用いて記録され、その内容に基づいて動いていると考えることも可能なわけです。さらに言い換えると、データベースの知識さえあれば、多くの社会活動の記録や仕組みを正確に記述して、誰にでも伝わる形で表現することができるようになります。

物事を正確に記述して誰にでも伝わる形式で表現することができれば、それを応用できるようになります。たとえば、物体を対象とした力と運動の関係は、幼い子どもでもボールを投げたり、ブランコを漕いだりするうちに体験的に「理解」できるものですが、そのままでは応用できる範囲には限界があります。

しかし、そこに個々の物体と力と運動の関係を正確に記述する力学という表現手段さえあれば、任意の物体に対する正確な動力計算や強度計算などに用いることが可能となります。敢えて大げさに言えば、ボールどころかスペースロケットを飛ばすことにだって利用することが可能です。




力学が記述する対象は物体と力と運動の関係ですが、現在の一般的なデータベースが記述する対象は実体 (Entity) と関連 (Relation) の2つのデータの関係です。

実体とは実世界に存在する顧客、商品、組織のほか、契約プランやマラソン大会のように形がないもの、あるいは概念的な存在である場合もあります。ただし、文京区や Erika Mustermann と言った個別具体的な存在ではなく、顧客や学生、都道府県、自動車メーカーや市町村などの任意の総体を表す概念です。そこに氏名や生年月日、国籍、商品名、製造番号、JANコード、日時などの何かしらの属性(attribute) による特徴づけが加わって、はじめて特定の職員や商品やイベントなどの具体的な対象のデータとなります。

関連とは2つ以上の実体間の相互関係を表すものです。職員と部署という2つの実体間にある所属、会員と商品との間にある購入、取引先企業と配達業者との間の指名などの実体どうしの相互関係を表現します。

データベースは実体型と関連型の2系統のデータを用いて、地方自治体や企業や学校などの組織構造、サービス利用などの取引行為、診察歴などの医療行為といった実社会のあらゆる対象を定義します。したがって、多くの場合、データベースの内容さえ覗ければ、組織の内部構造や業務内容を剥き出しにすることもできます。

データベースの表現力はそれぐらい強力なのです。これを知っているかどうかで組織や社会活動に対する見方が大きく変わってきます。データベースという視点さえ持っていれば、データから組織や業務などの全体像を俯瞰的に把握できるようになります。

しかし、データベースの効用はそれだけには留まりません。データベースの真価はデータを資産として管理、運用し、そこから価値のある情報を生み出すことにあります。情報化社会の実現はデータベースの適切な活用なくしてありえません。

そこで重要となってくるのが DBMS (Database Management System) と SQL (Structured Query Language) への理解です。力学の例で言えば、これらは微分や線形代数にあたる存在です。利用者がデータベースという「コンテンツ」を利用しようとするときに実際に利用するソフトウェアが DBMS であり、そこで用いられる「言語」が SQL です。

これらはデータベースそのものではありませんが、データベースを思い通りに表現し、操作し、運用するときに用いられる、まさに数式や自然言語のようなものです。IBM DB2, Microsoft SQL Server, Oracle Database, MySQL, PostgreSQL, SQLite といったソフトウェアはすべて DBMS に該当します。これらの DBMS は記憶装置に書き込まれた物理的なデータと利用者またはソフトウェアとを仲介し、データベースとして利用するための諸機能を提供します。

DBMS のおかげで、データベースのファイル構造を意識せずにデータの検索、登録、更新、アクセス管理などの処理が行えるわけです。

そして SQL とは今日の DBMS の主流である RDBMS (Relational Database Management System) においてデータベースを操作するために用いられる言語です。複数の文献を見ていると RDBMS が最初に考案されたのは 1969 年から 1970 年あたりのことで、当初は数学の集合論を応用した関係代数 (relational algebra) というもので操作を行っていたようです。


The Relational Model for Database Management: Version 2

基本情報技術者試験、応用情報技術者試験などにおいて出題される直積や交差、射影といった操作を調べていくと、この関係代数に行き当たりますね。

SQL は先の関係代数 (つまり演算処理) を誰にでも使いやすくする目的で作成された専用言語で、のちにデータベース言語の国際標準規格にもなっています。今日ではデータベースと言えば、まずは何をおいても SQL に習熟することが第一の目標になります。世の中のほとんどの DBMS が SQL で操作されることを前提として設計されているためです。

考えたことを無意識に SQL で表現して、クエリを見たら瞬時に結果が思い浮かぶぐらいになると不自由なく DBMS を操作できるようになります。最初は戸惑うかもしれませんが、SELECT や UPDATE など頻繁に使用するものは数が限られているので、一つづつ覚えていけば大丈夫です。

ここでオススメなのは『SQL ゼロからはじめるデータベース操作』です。


SQL 第2版 ゼロからはじめるデータベース操作

ほかの参考書でも問題はありませんが、この著者のデータベース参考書は深い内容をきわめて分かりやすく説明しているものばかりなので、ハズレがありません。上の一冊だけでも初学者には十分すぎるぐらいの分量を丁寧に解説しています。

SQL の扱いに習熟しましたら、つぎに手にとって見ていただきたいのが『楽々ERDレッスン』です。


楽々ERDレッスン (CodeZine BOOKS)

こちらは 2006 年発行の少し古い本なのですが、ほかに類書を見たことがないほどユニークな本です。その内容は手元にある受付用紙や領収書、請求書などを題材にして手当たりしだいにデータベースを設計していくという異色なものです

最初に見たときは、その目のつけどころに感嘆しましたが、本書の魅力はその一点のみにとどまりません。データベース設計の過程を実演していくなかで、現役の業務用ソフトウェアのデータベース設計者がどこに着目して、どのような手順で設計を行っているのかを実例を通して学ぶことができます。

設計したデータベースを実際に DBMS 上で実装して、適当なデータを入力してみるとより理解が深まります。ここまででもデータベースの操作や設計というものが分かってくるので、その効用を実感できるはずです。

さらに内容を進めると運用やセキュリティという分厚い壁に直面することになるのですが、それを仕事にしないのであれば、そこから先は専門家に任せてしまっても問題はありません。

研究者や技術者でも無い限り、データベースを学ぶ上で重要なのは、データをきちんと整理して資産化し、必要なときに必要な情報に変換できること、そして、その上で情報を活用できることです。

ただ、それだけのことが強力な武器になるのは、現代社会の至るところにデータベースが用いられ、ありとあらゆる対象がデータベースという形式で記述されていることからも明らかです。これを知らないなんて、あまりにも勿体ないので、ぜひ有効に活用してください。

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us