連載
» 2008年11月20日 00時00分 公開

ゼロからのデータモデリング入門(2):信頼性の高いデータの管理・供給のためのDOA (1/3)

前回は、データベースシステムの歴史的背景と現状についてお話をしました。データベースが階層型、ネットワーク型からリレーショナル型への変遷をたどり、現在ではリレーショナル型が主流となっています。今回は、主流となっているリレーショナルデータベースではどのような技術が提供されてどのような有用性があるかを検証し、リレーショナルデータベースを有効活用するためのDOA(Data Oriented Architecture)思想についてお話しします。

[沖冠吾,株式会社アシスト]

前回のおさらい

 前回も述べましたが、リレーショナルデータベースは、階層型やネットワーク型の問題を解消し「データの独立性を高めてプログラムからデータを分離させる」ことにより開発時や保守時の生産性向上を実現したデータベースです。

 RDBMSとは、リレーショナルデータベースを実際に運用するために欠かせない「データ保証」「スループットの最大化」「障害対策」「セキュリティ」など数々の管理機能を搭載したデータベースマネジメントシステムです。

RDBMSの主な機能

 ここで、RDBMSの主な機能としてどのようなものがあるのかを見てみましょう。

参照整合性制約機能

 「参照整合性制約」とは、親子関係にあるテーブルの一方に更新、削除、挿入操作が行われた場合に、もう一方のテーブルに対して制約に基づく処理を行うことでデータ(値)の整合性を保証する機能です。

 図1に示す「勤務地テーブル」と「社員テーブル」の関係を例に考えてみましょう。

 この2つのテーブルは親子関係にあり、社員テーブルの外部キー「勤務地番号」は、親テーブルである「勤務地テーブル」の主キー「勤務地番号」を参照しています。従って、「社員テーブル」にある「勤務地番号」は常に親テーブルである「勤務地番号」にデータとして存在していなければなりません。このテーブル間の関係性を保証するのが参照整合性機能です。

図1 勤務地テーブルと社員テーブルの関係モデル 図1 勤務地テーブルと社員テーブルの関係モデル

 では、データの整合性を保証するために、どのような振る舞い(データ操作)が必要となるでしょうか。

 図2に示す「勤務地テーブル」と「社員テーブル」の親子関係において、親テーブルの「勤務地」を変更する場合、子テーブルの「社員テーブル」では以下の3つの方法で更新処理を制限することができます。

  1. 親テーブルのデータ更新時に子テーブルのデータも同時に更新する(CASCADE)
  2. 子テーブルでのデータ更新を禁止する(RESTRICT)
  3. 親テーブルのデータ更新時に子テーブルのデータをNULL値にセットする(SET NULL)

 RDBMSでは上記3つの方法により、データの整合性を保証しています。

図2 勤務地テーブルと社員テーブル 図2 勤務地テーブルと社員テーブル

排他制御機能

 RDBMSでは、「複数ユーザー」が「共有データ」に「同時にアクセス」することを前提とした「排他制御機能」を搭載しています。この機能は、あるユーザーが更新中のデータに対して、更新処理が終わるまで一時的にロックをかけることで、別のユーザーが同時に更新できないようにするものです。これにより、データに対して意図しない変更が加わることを防ぎ、矛盾が生じないようにします。

バックアップリカバリ機能

 RDBMS自体に障害が発生した場合のデータ保証機能として、RDBMSにはバックアップ/リカバリ機能が搭載されています。

 バックアップ機能でデータを複製し保管しておき、障害時にそのデータをリストアして物理的に復元し、リストアしたデータに対してリカバリ処理を行います。この機能により、障害発生前の元の状態にデータを戻すことができるため、データの整合性が保証されます。

セキュリティ管理

 データベースの本質はデータの共有化にありますが、誰もが同じようにデータを参照できてしまってはセキュリティ上の問題が発生します。

 データセキュリティは基本的に「利用者」「操作」「データ」の3つの要素で考えます。つまり、RDBMSにおけるセキュリティ管理機能は、どのような人がどのデータにどのような操作ができるかを明確にすることで、情報共有の利便性を維持しながら各人の管理すべき単位でデータの機密性保持を実現するものです。

 データの独立性を高めるためにリレーショナルデータベースでは、テーブル単位にデータ管理を行い、テーブル間の関係性をリレーションシップで定義します。

 RDBMSは、データの独立性を高めながらシステムを運用するために必要となる、「複数ユーザー」が「共有データ」に「同時にアクセス」できる機能が搭載されています。

 プログラムでデータ制御などを行うのではなく、RDBMSに実装されているさまざまな機能を有効活用し、RDBMSにデータ管理を任せることで情報システムの開発時、保守時の生産性向上を図ることが可能になります。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

8月8日10時30分〜16時30分の間、システムメンテナンスのため記事の一部表示や資料のダウンロードができなくなります。ご理解のほどよろしくお願いいたします。

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。