Database in Depth 超概要(1)
『データベース実践講義』のお勉強を開始します.基本的に自分自身のためのノートなので,他人が読んで分かるようには書きません(間違ったことを書いてしまうかもしれません).ちなみにタイトルは『データベース実践講義』の原題です.ノートではDiDと略します(なんか大学時代を思い出します)
1章 概要
この章はDiDの出発点となる章です.
大切なこと:SQL≠リレーショナルモデル
1.1 用語に対する注意
リレーショナルモデル | 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を否定しているんだけど(^^;;