リレーショナルデータベースマネージメントシステム
出典: フリー百科事典『ウィキペディア(Wikipedia)』
リレーショナルデータベースマネジメントシステム (relational database management system, RDBMS) とは、エドガー・F・コッドが提唱した関係モデル (リレーショナルモデル) に基づいた、コンピュータのデータベースマネジメントシステム (DBMS) である。 RDBMS によって構築するデータベースを、リレーショナルデータベースという。 関係モデルにおける「関係」(リレーション) は、一般には「表」(テーブル) と呼ばれることが多い。 2007年現在、RDBMS は最も一般的に使われているデータベースマネジメントシステムである。
いくつかの RDBMS では、オブジェクト指向の機能拡張を行っている。 このような RDBMS は、ORDBMS と呼ばれる (オブジェクト関係データベース) 。
商用の RDBMS としては Oracle Database や IBM DB2 などが、オープンソースの RDBMS としては MySQL や PostgreSQL などが有名である。 ただし、これらの DBMS を 真のRDBMS と呼んで良いのかどうかについては、後述のとおり、議論の対象となっている。
RDBMS とされるシステムの多くは、データベース言語として SQL を採用している。
目次 |
[編集] RDBMSの機能
以下に RDBMS の主な機能を示す。
- データベース言語
- データベース言語は、DBMS に対してさまざまな指示を伝えるための言語である。概念的には、データ定義言語 (DDL)、データ操作言語 (DDL)、データ制御言語 (DCL) の構成要素からなる。データ定義言語 (DDL) はデータベースの構造を定義する。データ操作言語 (DML) はデータベースに対する検索や更新などの操作を行う。データ制御言語 (DCL) はデータに対するアクセス制御を行う。RDBMS では、関係モデルに基づいたデータベース言語を備えている。RDBMS のデータ操作言語は、関係モデルの関係代数と関係論理に基づいている。RDBMS とされるシステムの多くは、関係データベース言語 SQL を備えている。
- 物理的データ独立性
- データベースを格納する記憶装置を変更する際、それに伴って RDBMS にアクセスする方法を変更する必要はない。RDBMS にアクセスする利用者やアプリケーションソフトウェアに対して、RDBMS は記憶装置の変更を隠蔽することができる。
- 論理的データ独立性
- RDBMS ではビューにより論理的データ独立性を支援する。ビューとは、関係代数もしくは関係論理の式に名前を付けたものである。ビューは関係の一種であり、導出関係とも呼ばれる。なおこれに対し SQL CREATE TABLE 文で定義するような基本的な関係 (テーブル) を基底関係という。またビューを使うことで、複雑な検索や更新などのデータ操作を簡略化して記述することができる。
- データ整合性
- 不正なデータが登録されることや、不正なデータに更新されることを、防ぐ。RDBMS では、定義域・データ型・一意性制約 (ユニーク制約)・参照整合性制約・一般制約・トリガ などの機能を備えている。
- トランザクション処理
- ACID特性に基づいたトランザクション処理を行う。複数のユーザが同時に同一のデータを参照・更新した場合でも、矛盾なく正常に処理をこなす。
- セキュリティ
- ほとんどの RDBMS ではセキュリティ (機密保護) に関して任意アクセス制御もしくは強制アクセス制御を提供し、さらに一部の RDBMS ではデータの暗号化機能も提供する。多くの RDBMS では任意アクセス制御を採用している (SQLでは任意アクセス制御のみを規定している) 。SQL の任意アクセス制御においては、GRANT文により、利用者 (認証識別子) を指定して、その利用者がアクセスできるオブジェクト (関係など) 、およびアクセスの種類 (検索、更新など) を定義する。データ暗号化機能では、RDBMS を迂回した不正なデータアクセスに対する対策として、RDBMS で管理・送受信するデータを暗号化する。
- 復旧
- トランザクション障害、システム障害、記憶媒体の障害からの復旧を行う。
- 最適化
- データ操作言語 (DML) による、高水準な関係代数や関係論理で記述されたデータ処理要求を、低水準な手続きに最適化して実行する。
- 分散データベース
- 分散データベースは、ネットワークで接続された複数のコンピュータを使い、それぞれのコンピュータ上で DBMS のプロセスを協調させて動かし、全体として仮想的に一つの DBMS を実現する技術である。複数のコンピュータを使うため、可用性や処理性能を向上させることができる。クライアント・サーバのデータベースは、分散データベースの簡単で特殊な形態と位置づけることができる。
いくつかの RDBMS では、オブジェクト指向の機能拡張を行っている。 このような RDBMS は、ORDBMS と呼ばれる (オブジェクト関係データベース) 。
[編集] RDBMSの用語の歴史
1969年、エドガー・F・コッドは画期的な論文を発表して RDBMS を提唱した。 この論文は1970年に、ACM の学術誌に "A Relational Model of Data for Large Shared Data Banks" として掲載された。 コッドは、この論文とその後に発表した論文で、「リレーショナル」(「関係に基づく」) の概念とは何かを定義した。
コッドが提唱した RDBMS が備えるべき条件として、「コッドの12の規則」が有名である。 しかし関係モデルの初期の実装の多くは、コッドの12の規則の全てを満たすには至らなかった。 そのため RDBMS という用語は、当初と比べてより広い意味でのデータベースシステムを対象として使われることが、多くなってきている。
現在では、RDBMS という用語は、次のようなシステムに対して使われている。
- システムの利用者が、データをいくつかの関係 (複数の行と複数の列からなる表) の形で、扱うことができるシステム
- システムの利用者が、表形式のデータを参照・更新する手段として、関係演算 (選択、射影、結合、和などの関係代数や関係論理) を、使うことができるシステム
関係モデルを比較的正確に実装した最初の RDBMS は、Peterlee にある IBM UK Scientific Centre で実装された IS1 (1970-1972) およびその後継システム PRTV (1973–79) であった。RDBMS として販売された最初のシステムは、1978年からリリースされた Multics Relational Data Store であった。その他には Ingres (カリフォルニア大学バークリー校で開発された) や IBM BS12 などが挙げられる。
[編集] RDBMSの用語の現在
どのような DBMS が、「リレーショナル」DBMS といえるのか (もしくはいえないのか) については、議論の対象となっている。データベースに携わる人の多くに受け容れられた RDBMS の定義は、まだできていない。
一部では、複数の行と複数の列からなる構造としてデータを扱うことができさえすれば、RDBMS としての基準を満たすとしている。この見解において RDBMS の基準を満たすとされるDBMSは、コッドの12の規則のうちいくつかを満たす。広く知られている DBMS のほとんどは、厳密に関係モデルに準拠しているわけではなく、コッドの12の規則の全てを満たすには至っていない。
別の見解では、コッドの12の規則の全てを満たすには至っていない DBMS (もしくはクリス・デイト、ヒュー・ダーウェンにより提唱された関係モデルの見解を満たすには至っていない DBMS ) は、RDBMS とはいえないとしている。この見解は、データベースの理論家やコッドの考え方を支持する人に共有されている。主な論者は、エドガー・F・コッド、クリス・デイト、ヒュー・ダーウェン、ファビアン・パスカルである。この見解によれば、DBMS の多くが「真にリレーショナル」とはいえないことになる。この見解をとるなら、SQLを使ってデータを参照・更新する DBMS の全てが、RDBMS とはいえない。こうした見解をもつ人は、コッドの12の規則の全てを満たしていない DBMS を、「疑似リレーショナルデータベースマネジメントシステム」(PRDBMS) と呼んでいる。この人々は、コッドの12の規則を全て満たす RDBMS を「真のリレーショナルデータベースマネジメントシステム」(TRDBMS) と呼ぶ。
現在は、RDBMS の選定を行う際は、コッドの12の規則の全てを満たすという要件は考慮されない。情報技術 (IT) を担う組織におけるデータ管理を行う人々にとっての TCO (総保有コスト) が、とても重視される。一部の人は、このような現状は不幸であり皮肉であると考えている。なぜなら、コッドの12の規則の有用性を確信している人の見解では、この RDBMS としての基準を正確に満たすことにより、DBMS の信頼性と一貫性と生産性と処理性能を高めることができ、それゆえ TCO の抑制に大きく役立つはずであった。RDBMS の基準を正確に満たすことによるこのような利点は、実際に、DBMS を真の RDBMS としようと努めている人々にとって、とても大きな動機づけとなっている。
現在、RDBMS のほとんどが、データベース言語として SQL を採用している。しかし SQL に代替するデータベース言語が提唱され、実装が行われている。ただし SQL に代替するデータベース言語を採用し実装している商用の RDBMS は非常に少ない。
[編集] RDBMSに関する批判
現在の RDBMS に関して言及されている批判と不満を述べる。
- ほとんどの RDBMS のベンダは SQL 以外のオプショナルなデータベース言語を提供することを模索していない。多くの人々は、SQL にはある程度の改定もしくは抜本的な改定が必要だと考えている。SQL は開発されてから約30年もの歴史を経ており、また SQL はそもそも関係モデルに準拠していない[1]。
- 広く使われている RDBMS の多くは静的な型づけを採用している。一定の人々は、動的な型づけされた列 (カラム) もしくはオプショナルな列を採用すれば、プロトタイピングや、市場で素早く敏捷であることが重要であるような分野において、有用であると思っている。(オプショナルな列を実装しているいくつかのシステムでは、行 (組、レコード) に指定された列が無い場合はnullあるいは空白を返すことによって実装している)
- 広く使われ過ぎている。すべてのデータモデルが RDBMS を必要とするわけではない。しかし多くの開発者はデータベース管理システム (DBMS) を採用する際に、とにかく RDBMS を採用し利用する傾向がある。結果として、RDBMS ではない DBMS のほとんどが開発時間と革新に飢えている状態になっている。
[編集] 関連項目
[編集] RDBMS製品
[編集] 商用
- Oracle Database・・・オラクル
- Microsoft SQL Server・・・マイクロソフト
- DB2・・・IBM
- Sybase Adaptive Server・・・Sybase
- Symfoware Server・・・富士通
- HiRDB・・・日立
- RIQSⅡ V2・・・NEC
- HiRDB on XDM (XDM/RD)・・・日立
[編集] オープンソース
[編集] 参考文献
- C.J.Date、藤原譲ほか訳 『データベースシステム概論 原著第6版』 丸善、1997年 ISBN 4-621-04276-9
- C.J.Date、Hugh Darwen、QUIPU LLC 訳 『標準SQLガイド 改訂第4版』 アスキー、1999年 ISBN 4-7561-2047-4
[編集] 脚注
- ^ Why SQL is not relational: SQLデータベースのテーブルは Bag であり集合 (Set) ではない、その他参照
[編集] 外部リンク
- A Relational Model of Data for Large Shared Data Banks - エドガー・F・コッドの関係モデルの論文 (1970年)
- Database Debunkings - ファビアン・パスカル、クリス・デイト などの人々がデータベースに関する記事を執筆しているサイト。「リレーショナル」という語は、完全に正確に関係モデルを実装した DBMS に対してのみ使うことが重要であるとする、批判的見解を発信している。
- Database Vendors Directory - RDBMSと関連製品の一覧
- Are SQL Server, DB2, and Oracle really relational? - Itoi Blomgren, Michiko の論文 (2003年)
- A Brief History of IT Management and the RDBMS - ITマネジメントの運用の視点による、RDBMS 技術の歴史の概要
- Analysis of modern DBMS design - データベース業界分析者による記事