tom__bo’s Blog

MySQL!! MySQL!! @tom__bo

C.J.Dateのデータベース実践講義読んだ

「データベース実践講義」をかいつまんで読んだ。

www.oreilly.co.jp

増永 良文著の「リレーショナルデータベース入門」を読んでいて、リレーショナルモデルの説明部分の比較を主な目的として読んだ。

あとで振り返ると思うので、箇条書きで特に良かった部分をあげておく

  • P.34, 2.3章 型とは
    • 「リレーショナル・データベース入門」を読んでいたときにdomainって型ってことでいいんだよねと思っていたが、そうで良さそう
  • P48, 3.3 関係とは
    • ここでは名前つき属性の集合同士の直積ではなく、ヘッダーとタプルの集合の組み合わせrを属性A1, A2, ... , Anにおける関係値(または単に関係)と書いている。
    • このあたりの違いは後述するCoddの発表した論文等の中でも差異があるという話に繋がっているのかもしれない
  • P.181, 8.2章 リレーショナルモデルの目的
    • だいぶ抽象的だし、当時の話という感じもするけど、まあまとまっていていい
  • P.185, Coddの発表した論文中に見られる差異
    • 1970~1990にかけてCoddがリレーショナルモデルの定義を多少見直していて、それによってMike Stonebrakerは4つのモデルが考えられるとまで言っているらしい。

P185引用, 4つのモデル

  • 1970年にCACMの論文で定義されたもの
    • CACM 13, No.6 "A Relational Model of Data for Large Shared Data Banks", 1970/6月
  • 1981年にチューリング章を受賞した論文で定義されたもの
    • CACM 25, No.2, "Relational Database: A Practical Foundation for Productivity", 1982/2月
  • Codの12の規則と評価システムによって定義されたもの
    • Coddが"Computerworld"に寄稿した"Is Your DBMS Really Relational?", 1985/10/14
    • "Does Your DBMS Run By Rules?", 1985/10/21
  • Coddの著書で定義されたもの
    • "The Relational Model For Database Management Version 2", Addison-Wesley, 1990年

リレーショナル・データベース入門と比べてこっちをかいつまんで読むレベルにしてしまったのは以下の理由がある。

  • 数式を使わないように全部文章で説明されている
    • かなりわかりやすく書かれているけど、全部自然言語で説明されるのもそれはそれできつい
  • リレーショナル代数における演算の説明がSQLを使って書かれている。
    • おそらく殆どの人がリレーショナル代数の演算より先にSQLを学ぶと思うので、この説明はわかりやすさを優先した結果なのだろうけど、順序逆じゃない?って感じ。
    • リレーショナル代数で演算を定義した上でそれを実装のために標準化したのがSQLじゃん。
  • 説明がやや冗長、口語的