最近流行りのリアルワールドデータも、ほとんどリレーショナルデータモデルに基づいたデータベースで運用されていることが多いです。
皆さんも、リレーショナルデータベースという言葉は良く耳にするのではないでしょうか。
では、リレーショナルデータベースとリレーショナルデータモデルは同じものを指すのでしょうか?
結論として、それらは全然異なるものです。
また、「正規化」という言葉も良く聞くと思いますが、これはモデル理論ではなく、テーブル設計の方法に関するものです。
これもリレーショナルデータモデルの本質とは、かなり離れています。
そこで、リレーショナルデータモデル理論について分かりやすく説明してみたいと思います。
論文候補の原稿から抜いてきているので、少し堅苦しい文章ですがご容赦ください
リレーショナルデータモデル(Relational Data Model)
Relational Data Modelは,1970年にEdgar Frank “Ted” Coddにより発明されたデータベース管理システムの理論である.Relational Data Modelには,数理論理学の一分野である述語論理と,集合論がベースとなっている.下記に,述語論理と集合論について説明します。
述語論理
述語論理とは,命題論理を拡張した概念である.命題論理とは命題の真偽をについて扱った学問である.下記に,命題の例を示す.
命題1における患者X1は名詞であり,「X1」の部分には様々な名前を割り当てることが可能である.述語論理学ではこれを変項と呼ぶ.同様に,命題1における「女性である」という句は,変項の性質や関係を表わすものであり,これを述語と呼ぶ.述語の数を増やすことで,下記のような命題も考えられる.
このように,述語の数を増やすことで多くのパターンの命題を扱うことが可能である.また,これらの命題は下記の表1で示すような表形式で表すことができる.Table 1では,各1行が1命題に対応している.Coddは表の見出しである,{Patient, Sex, Age, Diagnosis Date, Disease name, Death date}を要素の集合として考えることで,データ構造として扱うことが可能であることに着目した.結果的に,表1で示したそれぞれのレコードは,命題であると同時に,各要素から成る集合と考えることができる.
コッド博士は、数理論理学をデータベースに応用した「リレーショナル論理」という概念(理論)を提案しました。
これは、リレーショナル論理にも表記の違いがあり、「タプルリレーショナル論理」と「ドメインリレーショナル論理」があります。データベース理論を学ぶ人は、教科書で学ぶかもしれません。これが理論の根幹ですが、提案されて以後、表を操作するための利便性から、仕様がたくさん追加されています。
現在では「リレーショナル論理」以外にも、データベース特有の数式ぽいものが定義されているというわけです。
SQLとは何?
少し話が飛んでしまいますが、つながりが良いので、ここでSQLにも触れておきます。
前述したとおり,Relational Data Modelは,述語論理と集合論を基礎としている.
Relational Data Modelが開発された当初は,データベースの専門家により述語論理と集合論を駆使することでデータベースを操作していた.しかしながら,データベースの専門家でなくとも容易に扱える言語が望まれるようになった.
このような背景から,述語論理と集合論を真理関数(否定,論理和,論理積等)と集合演算(和,差,積,直積,商など)というコンピュータ処理に適した道具で首尾よく置き換えることに成功し,SQLが誕生した.
このように, SQLはRelational Data Modelの仕様には厳密には含まれないが,その仕様を満たすための実装の一形態として深く関連している.現在では,各ベンダーの製品ごとに独自の拡張がなされている.
リレーショナルデータモデルの利点
Coddは一般的なデータ構造を述語論理と集合論に基づいて定義したデータベース管理システムを提案した.このデータモデルの利点は,主に2つ存在する.
ひとつめは,データモデルの実装において,表形式で表すことが可能であるという点である.そのため,直感的かつ可視性に優れたインターフェイスを実現することができる.
(この素晴らしい性質のおかげで、Excelや統計解析ソフトの表やデータセットと、リレーショナルデータモデルを混同してしまう人がかなり発生してしまいました・・)
ふたつめは,効率的なデータ操作が可能であるという点である.データ操作では,それぞれ述語論理と,集合論に依拠する真理関数と集合演算というコンピュータ処理に適した道具を利用できる.
上記で述べたような優れた性質から,Relational Data Modelは広く世間に受け入れられた.今日では,各ベンダーからRelational Data Modelをサポートする様々なRelational Database(RDB)製品がリリースされ,バージョンアップが繰り返されている.
コメント