ITパスポート試験 用語辞典
【Relational Database Management System】
- 別名:
- DBMS
- 分野:
- テクノロジ系 » データベース » データベース方式
- 重要度:
(Wikipedia 関係データベース管理システムより)
関係データベース管理システム(かんけいデータベースかんりシステム)、リレーショナルデータベースマネジメントシステム(relational database management system、略称:RDBMS)は、関係データベースの管理システムである。2007年の時点では、広く知られていてまた広く使われているデータベースのほとんどは関係データベースであったが、その後NoSQLが発展したため必ずしもそうとは言えなくなっている。
一定の人々は、関係モデルを煩雑であるなどとみなしているためか、RDBMSの簡単な定義として、「データを表の形式で永続化し、かつデータ間の関連もまた表の形式で永続化できるDBMS」と考えているようである。
関係データベースをオブジェクトデータベースと融合させたオブジェクト関係データベースなどといったものもある。その管理システムはオブジェクト関係データベース管理システムなどと呼ばれる (ORDBMS) 。
関係データベースの、標準の問い合わせ言語として SQL がある。
商用の RDBMS としては Oracle Database や IBM DB2 などが、オープンソースの RDBMS としては MySQL や PostgreSQL などが、広く知られている。ただし、これらの DBMS を 真のRDBMS と呼んで良いのかどうかについては、後述のとおり、議論の対象となっている。
RDBMSの機能
以下に RDBMS の主な機能を示す。
- データベース言語
- データベース言語は、DBMS に対してさまざまな指示を伝えるための言語である。概念的には、データ定義言語 (DDL)、データ操作言語 (DML)、データ制御言語 (DCL) の構成要素からなる。データ定義言語 (DDL) はデータベースの構造を定義する。データ操作言語 (DML) はデータベースに対する検索や更新などの操作を行う。データ制御言語 (DCL) はデータに対するアクセス制御を行う。RDBMS では、関係モデルに基づいたデータベース言語を備えている。RDBMS のデータ操作言語は、関係モデルの関係代数と関係論理に基づいている。RDBMS とされるシステムの多くは、データベース言語 SQL を備えている。
- 物理的データ独立性
- データベースを格納する記憶装置を変更する際、それに伴って RDBMS にアクセスする方法を変更する必要はない。RDBMS にアクセスする利用者やアプリケーションソフトウェアに対して、RDBMS は記憶装置の変更を隠蔽することができる。
- 論理的データ独立性
- RDBMS では導出関係 (ビュー) により論理的データ独立性を支援する。導出関係とは、関係代数もしくは関係論理の式に名前を付けたものである。導出関係は関係の一種であり、ビューとも呼ばれる。なおこれに対し SQL CREATE TABLE 文で定義するような基本的な関係 (テーブル) を基底関係という。また導出関係を使うことで、複雑な検索や更新などのデータ操作を簡略化して記述することができる。
- データ完全性
- データ完全性は、不正なデータが登録されることや、不正なデータに更新されることを防ぐことをいう。RDBMS では、定義域・データ型・一意性制約 (ユニーク制約) ・参照整合性制約・一般制約 (CHECK制約) ・トリガ などの機能を備えている。
- トランザクション処理
- ACID特性に基づいたトランザクション処理を行う。複数のユーザが同時に同一のデータを参照・更新した場合でも、矛盾なく正常に処理をこなす。
- セキュリティ
- ほとんどの RDBMS ではセキュリティ (機密保護) に関して任意アクセス制御もしくは強制アクセス制御を提供し、さらに一部の RDBMS ではデータの暗号化機能も提供する。多くの RDBMS では任意アクセス制御を採用している (SQLでは任意アクセス制御のみを規定している) 。SQL の任意アクセス制御においては、GRANT文により、利用者 (認証識別子) を指定して、その利用者がアクセスできるオブジェクト (関係など) 、およびアクセスの種類 (検索、更新など) を定義する。データ暗号化機能では、RDBMS を迂回した不正なデータアクセスに対する対策として、RDBMS で管理・送受信するデータを暗号化する。
- 復旧
- トランザクション障害、システム障害、記憶媒体の障害からの復旧を行う。
- 最適化
- データ操作言語 (DML) による、高水準な関係代数や関係論理で記述されたデータ処理要求を、低水準な手続きに最適化 (クエリ最適化) して実行する。
- 分散データベース
- 分散データベースは、ネットワークで接続された複数のコンピュータを使い、それぞれのコンピュータ上で DBMS のプロセスを協調させて動かし、全体として仮想的に一つの DBMS を実現する技術である。複数のコンピュータを使うため、可用性や処理性能を向上させることができる。クライアント・サーバのデータベースは、分散データベースの簡単で特殊な形態と位置づけることができる。
いくつかの RDBMS では、オブジェクト指向の機能拡張を行っている。
このような RDBMS は、オブジェクト関係データベース管理システム (ORDBMS) と呼ばれる。RDBMSの用語の歴史
1969年、エドガー・F・コッドは画期的な論文を発表して RDBMS を提唱した。
この論文は1970年に、ACM の学術誌に (大規模共有データバンクのデータ関係モデル) として掲載された。
コッドは、この論文とその後に発表した論文で、「リレーショナル」(「関係に基づく」) の概念とは何かを定義した。コッドが提唱した RDBMS が備えるべき条件として、「コッドの12の規則」が有名である。
しかし関係モデルの初期の実装の多くは、コッドの12の規則の全てを満たすには至らなかった。
そのため RDBMS という用語は、当初と比べてより広い意味でのデータベースシステムを対象として使われることが、多くなってきている。現在では、RDBMS という用語は、次のようなシステムに対して使われている。
- システムの利用者が、データをいくつかの関係 (複数の行と複数の列からなる表) の形で、扱うことができるシステム
- システムの利用者が、表形式のデータを参照・更新する手段として、関係演算 (制限、射影、結合、和などの関係代数や関係論理) を、使うことができるシステム
関係モデルを比較的正確に実装した最初の RDBMS は、ミシガン大学で実装された Micro DBMS (1969) と、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 に代替するデータベース言語 (データベース言語仕様 D に基づいた Tutorial D などのデータベース言語) が提唱され、実装が行われている。ただし SQL に代替するデータベース言語を採用し実装している商用の RDBMS は非常に少ない。
RDBMSの市場シェア
商用RDBMSの市場は、によると、アメリカ合衆国においては、Oracle、IBM/Informix、Microsoft、Sybase、Teradata の5社が、市場 (売上高) の約9割を占めている。
オープンソースのRDBMSとしては近年では、PostgreSQL、MySQL、Firebird などが広く使われるようになっている。
ガートナーの2008年の調査結果は以下のとおりである。
- Oracle Database - 70%
- Microsoft SQL Server - 68%
- MySQL (Oracle Corporation) - 50%
- IBM DB2 - 39%
- IBM Informix - 18%
- SAP Sybase Adaptive Server Enterprise - 15%
- SAP Sybase IQ - 14%
- Teradata - 11%
RDBMSに関する批判
現在の RDBMS に関して言及されている批判と不満を述べる。
- ほとんどの RDBMS のベンダは SQL 以外のオプショナルなデータベース言語を提供することを模索していない。多くの人々は、SQL にはある程度の改定もしくは抜本的な改定が必要だと考えている。SQL は開発されてから約30年もの歴史を経ており、また SQL はそもそも関係モデルに準拠していない。
- 広く使われている RDBMS の多くは静的な型づけを採用している。一定の人々は、動的型づけされた列 (カラム) もしくはオプショナルな列を採用すれば、プロトタイピングや、市場で素早く敏捷であることが重要であるような分野において、有用であると思っている。(オプショナルな列を実装しているいくつかのデータベース管理システムでは、行 (組、レコード) に指定された列が無い場合はnullあるいは空白を返すことによって実装している)
- 広く使われ過ぎている。すべてのデータモデルが RDBMS を必要とするわけではない。しかし多くの開発者はデータベース管理システム (DBMS) を採用する際に、とにかく RDBMS を採用し利用する傾向がある。結果として、RDBMS ではない DBMS のほとんどは、開発時間と資金と革新が欠乏している。
- 一般的なRDBMSでは構造的に、高負荷時や同時アクセスが発生した場合の性能が保証されないという欠陥がある。多くのシステムでは、画面の切り替わりが8秒以内、バッチの実行時間が4時間以内といったような性能保証を求められるが、データを格納しているRDBMSに性能保証の機構がないため、システム全体で確実な性能保証ができない要因となっている。
- 基礎理論(23)
- アルゴリズムとプログラミング(27)
- コンピュータ構成要素(32)
- システム構成要素(29)
- ソフトウェア(17)
- ハードウェア(14)
- 情報デザイン(21)
- 情報メディア(28)
- データベース(19)
- ネットワーク(71)
- セキュリティ(121)
このページのWikipediaよりの記事は、ウィキペディアの「関係データベース管理システム」(改訂履歴)の記事を複製、再配布したものにあたり、このページ内の該当部分はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下 に提供されています。