関係データベース管理システム(かんけいデータベースかんりシステム)またはリレーショナルデータベースマネジメントシステム(英語: relational database management system、略称:RDBMS)は、関係データベース (RDB) の管理システムである。RDB がデータベースの種類を示すのに対して、RDBMS は RDB の実装を示す。標準問い合わせ言語として SQL を用いたアクセスを行うため、相対する言葉として RDBMS 以外のデータベースを意味する NoSQL (Not only SQL) がある。
2007年の時点では、広く知られていてまた広く使われているデータベースのほとんどは関係データベースであったが、その後NoSQLが発展したため必ずしもそうとは言えなくなっている。
SQLを扱うRDBMSが表を使って演算を行う事から、全く異なる用途の表計算ソフトと間違えられる事もあるが、RDBMSでは、データの形式は表に限定されておらず、表計算ソフトのように見た目に分かりやすい表を作る事が目的ではない。あくまでも、必要なデータを必要な時に素早く引き出して他のソフトウェアに提供する事が目的である。
関係データベースをオブジェクトデータベースと融合させたオブジェクト関係データベースなどといったものもある。その管理システムはオブジェクト関係データベース管理システムなどと呼ばれる (ORDBMS)。
商用のRDBMSとしてはOracle DatabaseやIBM DB2などが、オープンソースのRDBMSとしてはMySQLやPostgreSQLなどが、広く知られている。ただし、これらのDBMSを 真のRDBMSと呼んで良いのかどうかについては、後述のとおり、議論の対象となっている。 以下にRDBMSの主な機能を示す。 いくつかのRDBMSでは、オブジェクト指向の機能拡張を行っている。このようなRDBMSは、オブジェクト関係データベース管理システム (ORDBMS) と呼ばれる。 1969年、エドガー・F・コッドは画期的な論文を発表してRDBMSを提唱した。この論文は1970年に、ACMの学術誌に「A Relational Model of Data for Large Shared Data Banks(大規模共有データバンクのデータ関係モデル)[1]」として掲載された。コッドは、この論文とその後に発表した論文で、「リレーショナル」(「関係に基づく」)の概念とは何かを定義した。 コッドが提唱した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などが挙げられる。 どのような データベース管理システム (DBMS) が、「リレーショナル」DBMSといえるのか(もしくはいえないのか)については、議論の対象となっている。データベースに携わる人の多くに受け入れられたRDBMSの定義は、まだできていない。 一部では、複数の行と複数の列からなる表の構造としてデータを扱うことができさえすれば、関係モデルに厳密に準拠していなくとも、RDBMSとしての基準を満たすとしている。この見解においてRDBMSの基準を満たすとされるDBMSの多くは、コッドの12の規則のうちいくつかを満たす。しかし広く知られているDBMSのほとんどは、厳密に関係モデルに準拠しているわけではなく、コッドの12の規則の全てを満たすには至っていない。 別の見解では、コッドの12の規則の全てを満たすには至っていないDBMS(もしくはクリス・デイト、ヒュー・ダーウェンにより提唱された関係モデルの見解を満たすには至っていないDBMS)は、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の用語の現在
Size:38 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef