Q. Why did we use XML?

リレーショナルデータベース(Relational Database; RDB)は扱いづらい.

RDBを検索用として利用する場合にはSQL (Structured Query Language)などが利用できるので便利なのであるが,登録されている情報そのものを利用して何らかの出力を出そうと思うと扱いづらい.

RDBにいれたとしても,あまり役にもたたない項目というものが結構ある.

RDBのカラム定義を変更するのは結構手間で登録されている内容を消してしまわないかを心配しながら行う神経をすり減らす作業である. 情報の記述内容自体は別にもっていた方が安心できる.

XML (Extensible Markup Language)はテキスト形式である.すなわち,項目を定義するときに,記述を蓄積する際の属性をどのようにするか悩まなくてよい.

EDBのように常に開発ステージにあるようなシステムでは,データベースの構造を途中で変更したいことがある. そのような場合に,RDBはとにかく困る.

情報の履歴を全てRDBでもつと,データベースそのものが重たくなる.履歴そのものが検索対象になることは稀である. そのようなものはRDBにいれる必要はない.

Q. What's XMLDB?

EDBで利用しているXMLDB (XML Database)とは,少数のカラム

EIDEDB IdeintifierEDBの情報識別子.integer
EOIDEDB Object IdentifierEDBのオブジェクト識別子.integer
TEIDTable EID情報が属するテーブルのEID.integer
XMLXMLで記述された情報本体.text
からなる単純なRDBの1テーブルのことである. このテーブルの上に全ての情報が蓄積される.
これと対比して通常のリレーショナルデータベースライクに項目を定義したテーブル,もしくはそれらの集合をRDBと呼んでいる.

Q. Why did we use both XMLDB and RDB?

XMLは検索用途には向かない. だから検索用にRDBを用意する.

RDBに蓄積される内容は,XMLDBにある情報の一部分である. 検索対象となるものだけをRDBに展開すればよい.

Q. How to expand from XMLDB to RDB?

通常,XMLDBで定義されたテーブル毎にRDBにも対応するテーブルを作成する.

しかし,用途によっては,全ての項目は必要なく,また,XMLDBのカラムのネスト構造をうまく表現できないことがある.

EDBでは,カラム毎にRDBのテーブルを作成している.