ブールとは逆に、わたしは概念からではなく、 判断とその内容から出発する。
--- フレーゲ、『ブールの論理計算と概念記法』
このノートは、LMCP 方式とよばれる データベース・スキーマの設計手法を説明します。 LMCP は、論理 logical、数学 mathematical、 計算 computational、物理 physical の頭文字をとったもので、 論理的側面の主たる構成要素として判断を使い、 数学的側面は関係代数、計算的側面はデータ構造とアルゴリズム、 物理的側面は現実の計算機を使います。
分類 | 構成要素 |
---|---|
L 論理 | 判断 |
M 数学 | 関係代数 |
C 計算 | データ構造・アルゴリズム |
P 物理 | 計算機 |
データ・モデリング は、概念設計、論理設計、物理設計の 3 つに分類されることがあります。 概念設計では、モデル化の対象となる世界のなかで認識される概念と、 概念間の関係を定式化します。 物理設計では、データベース製品に合わせた設計を行い、 論理設計は、概念設計を物理設計へ変換するときの橋渡しとして、 製品の考え方の基礎になっている理論を使います。 この手法は、概念 conceptual、論理 logical、物理 physical からなるため、ここでは CLP 方式とよびましょう。
CLP 方式として、もっともよく使われる組み合わせは、 概念設計に 実体関連モデル (E/R モデル) を使い、 論理設計に 関係モデル を使い、 物理設計に 関係データベース管理システム (RDBMS) の特定の製品を使う方法です。この場合、論理設計と物理設計は連続していますが、 概念設計と残りのふたつは、性質がかなり違うため、 うまく組み合わせられないことがあります。
実体関連モデルを中心に据えると、関係モデルは実装技術のように見えるのに対して、 関係モデルを中心に据えると、実体関連モデルは、実体というデータの境界と、 関連というデータ間のリンクが固定された、1960 年代の旧式の手法のように見えます。 というのは、データ構造依存性を抑えることにより、 環境変化への対応能力を向上させることが、 関係モデルを考案した目的のひとつだからです。 実体関連モデルと関係モデルを接ぎ木しても、 十分な成果は得られません。
2011 年の SIGMOD に掲載された論文 A Call to Arms: Revisiting Database Design は、伝統的な設計手法である CLP 方式が、 現実の企業でうまく機能しておらず、 データベース・スキーマの構造性が高いこと、いわば、硬い設計のため、 環境の変化に対して十分に対応できないことが述べられています。
CLP 方式のように、概念から始めてデータベース・スキーマを設計するよりも、 すぐれた方式があるのでしょうか。この問題を考えるために、 フレーゲが概念についての考え方を述べた 『ブールの論理計算と概念記法』(Booles rechnende Logik und die Begriffsschrift) に書かれている概念と判断の関係をヒントにしてみましょう。 フレーゲが考案した論理体系である 概念記法 は、 その名前のとおり、概念を書き記す方法を提供する体系です。 そのために、判断を分析することによって概念が見出されるという観察にもとづき、 判断から概念が構成されるという考え方を採用しています。
たとえば、2^4 = 2 × 2 × 2 × 2 を計算すると 16 になります。 この 2^4 = 16 が成り立つという判断から、どのような概念を構成できるのでしょうか。 いま 2 という個別の数をあらわす記号を、一般的な記号 a に置き換えると, a^4 = 16 が得られます。この判断が成り立つ a として、16 の 4 乗根という概念が得られ、 さらに、a^4 = n という判断からは、n の 4 乗根という概念が得られ、 さらに、a^p = n という判断からは、一般的な 累乗根 の概念が得られます。
このように、ひとつの判断をさまざまに分析することで、 その判断に含意されうる複数の概念を見出せます。 これは数学の例ですが、日常生活においても、 4 本足のまる顔で、三角の耳をもち、しなやかに歩いたり、走ったりする動物をみたときに、 それがネコだと判断できるようになって、はじめて、ネコという概念が成立します。 また、日本の美意識のわび (侘び) を学ぶときは、 茶室・茶道具のありようの変化をとおして、 どのような道具により価値があると千利休が判断しているかに 思いを馳せることで理解を深められます。
判断が概念を生み出す源として働くのであれば、 スキーマ設計で、概念を基礎要素に据える代わりに、 判断を基礎要素とする方法が考えらます。 概念は、判断のなかの特定のパターンとして見い出され、 より構造化された扱いやすさをもつと同時に、 パターン外の状況に適応する柔らかさを失っているといえます。 ちょうど、判断が生卵だとすると、概念はゆで卵や目玉焼きのようなものです。 A Call to Arms: Revisiting Database Design では指摘されていませんが、伝統的な設計手法である CLP 方式の低い柔軟性は、 概念から出発していることに主たる理由があるといえます。
伝統的な設計手法の CLP 方式の問題を解決するため、 概念を判断に置き換えましょう。 その前に、L 論理を、より適切な分類に置き換えます。 具体的なデータベース製品を対象とする P 物理に対して、 製品に依存しない設計を行うため L 論理とよばれます。 L 論理で、多くの場合、関係モデルが使われますが、 代数的な手法を多用する関係モデルそのものは、 論理的モデルではなく、数学的モデルです。 そのため、L 論理よりも M 数学が適しています。
一方、判断は、なにかが成り立つか成り立たないかに関心を寄せる、 L 論理学上の構成要素です。 同じ種類の判断の集合は、関係モデルの関係に変換でき、 関係モデルは関係から関係への計算能力を提供し、 計算結果の関係は、ふたたび、判断集合に戻せます。 この L 論理と M 数学を、C 概念と L 論理の代わりに使います。
関係モデルそのものは、関係をどのようなデータ構造で表現するか、 そのデータ構造をどのようなアルゴリズムで操作するかを規定しません。 しかし、現実の計算機で動かすためには、 なんらかのデータ構造とアルゴリズムを与える必要があります。 それは計算機科学の領域に含まれる話題であり、 C 計算的として分類することが適切です。
同じデータ構造とアルゴリズムでも、計算機のハードウェアまで考慮すると、 さまざまな実行方法が考えられ、これは P 物理の領域に分類できます。 通信プロトコルの OSI参照モデル での、第 1 層 (物理層) のようなものです。 P 物理的側面の特性が C 計算に影響を及ぼし、 異なるデータ構造とアルゴリズムが有利になることがありますが、 M 数学まで影響は及びません。
このように、判断から出発し、関係代数で計算を記述し、 データ構造とアルゴリズムで計算機上での実行方法を記述し、 それを具体的なハードウェアで計算を実行するという データ・モデリングの手法が LMCP 方式です。