DBMS_001
本記事ではDBMSをデータ格納装置としてだけではなく「アプリケーションとデータをつなぐ仕組み」として捉え、その機能と役割を実務的観点から説明します。

<用語解説>
DBMS(database management system)とはデータベース管理システムの事で、データベースの管理や構築が行えるシステムの事を言います。

■DBMSは独立しています

このDBMSは通常、ミドルウエアとして提供されており、データベースの機能を各アプリケーションが使用したい場合は、このDBMSを経由してデータの更新、挿入、削除を行います。

このような方式を採ることによって、各アプリケーションが独自にデータを持たずに一元管理することができますし、各アプリケーション側にデータの管理機能を持たせる必要もなくなるといった利点があります。

この、DBMSはさらにアクセス権限のコントロールやデータベースの管理、データベースの定義、データベース内のデータに矛盾が生じないようにするトランザクション処理などの機能も備えています。

日本語でいうところの、縁の下の力持ち的な役割を果たしています。

■DBMSの主な機能と役割

このような縁の下の力持ち的なDBMSには以下のような機能が備わっています。
  • データ定義機能:テーブルやカラムなどの構造を定義
  • データ操作機能:データの追加・削除・更新・検索など
  • トランザクション処理:処理中のデータ矛盾を防ぐための一貫性維持
  • アクセス制御:ユーザーごとにデータへの操作権限を制限
  • バックアップとリカバリ:障害発生時のデータ復旧サポート
このようにDBMSは、単なるデータの置き場ではなく、データを安全かつ効率的に管理するためのさまざまな機能を持っています。

例えば、沢山のテーブル(データを格納している表)を更新したり削除したりする際に、一連の処理をトランザクション処理としてまとめて処理をして行くことができます。

まとめて処理?当たり前でしょ?と思われるかもしれませんが、

りんごの商品カテゴリーを青果から果物へ、単価を100円から150円へ変える処理をしていく事を考えます。

この時、商品カテゴリーの変更後、単価を変更する前に処理がストップしてしまった場合、処理自体をなかったことにするとしないと、データが食い違ってしまいますよね?DBMSではこのようなもとに戻す処理をトランザクション処理として実装しているのです。

なお、現在ではDBMSのうち、RDB(リレーショナルデータベース)と呼ばれるDBが主流になっています。これは簡単に言うと、表で管理するといったイメージとなります。

■代表的なDBMSの種類

代表的なDBMSには、以下のようなものがあります。
  • Oracle Database
  • MySQL
  • PostgreSQL
  • SQL Server
このうち、MySQL や PostgreSQL などは、ソースコードが一般に公開されたオープンソースのDBMSとして広く活用されています。商用ライセンスが必要なDBMSと比べて導入コストを抑えられるため、中小企業やWeb開発などで人気があります。

また、これらはいずれもリレーショナルデータベース(RDBMS)に分類されます。

ちゃんとしたDBMSソフトは結構お高いので、ベンダーさんがどんなに頑張っても業務システムの値段が下がらない一因となっています。(MySQLなどのオープンソース系も導入コストが抑えられると言っても安くなるとは言っていません。)

■まんがとDBMS

このまんがでは、音声での問い合わせに対して「ダルマ君」が回答をしています。おそらく、音声を認識して、その内容を元に、データベースに対して問い合わせを行い、回答をさらに音声化して出力するといった仕組みなのでしょう。

このうちの、データの問い合わせ関係は全てDBMS側で行ってくれます。そして、このデータは通常の販売管理のデータと共有で使えると言っています。

このように、データベースが特定のアプリケーションから独立していることにより、データを複数のアプリケーションで活用することができるというのも特徴の一つですね。