|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana) ・ ベース : [べーす] 【名詞】1. base 2. bass 3. cavity base (歯科:土台)
オブジェクト関係データベース (オブジェクトかんけいデータベース、オブジェクトリレーショナルデータベース、英: object-relational database; ORD, ORDB) またはオブジェクト関係データベース管理システム (object-relational database management system; ORDBMS) は、コンピュータの関係データベース管理システム (RDBMS、関係データベース) の一種であり、ソフトウェア開発者が自分たちでデータ型とメソッド (この2つの組み合わせはオブジェクト指向でいうオブジェクトのクラスに相当する) を自由に定義してデータベースを開発することができるデータベース管理システム (DBMS) である。「オブジェクト関係データベース」という用語は、時によっては、従来のRDBMSにORDBMSに似た機能を提供する外部ソフトウェア製品をいう場合もある。こうした外部ソフトウェア製品は正確にはオブジェクトリレーショナルマッピングシステムと呼ぶ。 関係モデルに基づくRDBMSもしくはSQL-DBMSでは、SQLなどのデータベース言語標準により事前に規定された限られたデータ型の集合に属するデータについては効果的に扱うことができるが、オブジェクト指向の考え方を採り入れたORDBMSでは、ソフトウェア開発者が自分たちでデータ型とメソッドを自由に定義してデータベースを開発してDBMSに統合させることができる。ORDBMS技術の目標は、ソフトウェア開発者に対して問題領域以下の階層について考えずに済む水準にまでデータベース設計の抽象化の水準を上げることである。 ORDBMSの実装としては、Illustra、Informix Dynamic Server 、PostgreSQL、IBM DB2 、Oracle Database などがある。 == RDBMSとの比較 == RDBMS (関係データベース管理システム) では、次のようなSQL文を記述できる (MySQLでの例) 。 CREATE TABLE Customers ( Id CHAR(12) NOT NULL PRIMARY KEY, Surname VARCHAR(32) NOT NULL, FirstName VARCHAR(32) NOT NULL, DateOfBirth DATE NOT NULL ) SELECT InitCap(Surname) || ', ' || InitCap(FirstName) FROM Customers WHERE Month(DateOfBirth) = Month(getdate()) AND Day(DateOfBirth) = Day(getdate()) 現在のほとんどのRDBMSでは、ユーザ定義関数を定義することができる。ユーザ定義関数を使って上記の問い合わせを記述し直すと次のようになるであろう。 SELECT Formal(Id) FROM Customers WHERE Birthday(Id) = Today() ORDBMS (オブジェクト関係データベース管理システム) でも、このような記述をすることができる。BirthDay() のようなユーザ定義のデータ型と式を定義することができる。すなわち次のように記述できるであろう。 CREATE TABLE Customers ( Id Cust_Id NOT NULL PRIMARY KEY, Name PersonName NOT NULL, DateOfBirth DATE NOT NULL ) SELECT Formal( C.Name ) FROM Customers C WHERE BirthDay ( C.DateOfBirth ) = TODAY; ORDBMSのもう一つの特長は、データベースがデータ間の関連を利用することができ、関連するデータを容易に辿ることができることである。 住所録アプリケーションにおいては、住所録に載せる一人一人に対して複数の住所を記録するために、もう一つテーブルを追加することになるであろう。従来のRDBMSを使うと、人物と住所のデータを検索するために結合が必要になる。 従来のRDBMSを使った場合の検索問い合わせは次のようになる。 SELECT InitCap(C.Surname) || ', ' || InitCap(C.FirstName), A.city FROM Customers C, Addresses A WHERE A.Cust_Id = C.Id -- 結合 AND A.city = 'New York' ORDBMSでは、上記と同じ検索問い合わせを非常に簡潔に記述することができる。 SELECT Formal( C.Name ) FROM Customers C WHERE C.address.city = 'New York' -- 関連はORDBMSにより「認識」される 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「オブジェクト関係データベース」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Object-relational database 」があります。 スポンサード リンク
|