Database in Depth 超概要(1)

『データベース実践講義』のお勉強を開始します.基本的に自分自身のためのノートなので,他人が読んで分かるようには書きません(間違ったことを書いてしまうかもしれません).ちなみにタイトルは『データベース実践講義』の原題です.ノートではDiDと略します(なんか大学時代を思い出します)

1章 概要

この章はDiDの出発点となる章です.
大切なこと:SQL≠リレーショナルモデル

1.1 用語に対する注意

リレーショナルモデル SQL
関係 テーブル
タプル
属性

またSQL演算子・関数・プロシージャ・ルーチン・メソッドと呼ばれているものは,全て演算子という用語で統一する.

1.2 製品ではなく原理である

DiDでは製品ではなく原理に主眼を置く
レオナルド・ダ・ビンチ
「理論なくして実践に浮かれる者は,舵と羅針盤を持たずして船に乗り込み,どこへ向かうのかも皆目見当のつかぬ操舵主のごとし.実践は十分な理論の上にこそ成り立つ

1.3 オリジナルモデルの概要

リレーショナルモデルは進化している.本節では「オリジナルの定義」のモデルを検証する
E. F. Codd : リレーショナルモデルを考え出した人.元IBM研究者.データベースに数学の理論を応用できると考えた.
オリジナルモデルは,

  • 構造
  • 整合性
  • 操作

の3要素で構成されている

1.3.1 構造

様々な用語を大まかに定義

関係 SQLで表に相当するもの
値の概念的なプール(=ドメイン?)
属性 SQLで列に相当するもの
タプル SQLで行に相当するもの
候補キー 一意な識別子の1つ.すべての関係には候補キーが最低でも1つ存在する
主キー 何らかの特別な扱いを受けるものとして選ばれた候補キー
外部キー ある関係における属性の集合であり,それらの値はほかの関係に属する特定の候補キーの値と一致しなければならないもの

1.3.2 整合性

整合性制約(制約) 必ずTRUEに評価されなければならないブール式
参照整合性 外部キーに一致しない値があってはならない(外部キーの定義を言い換えたもの)
実体整合性 主キー属性にnullは許可されない

DiDではnullを否定しているんだけど(^^;;