はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

リレーショナルモデルについてのメモ

リレーショナルモデルのキーに関する用語

  • スーパーキー: タプルの値を一意に決定することができる属性の集合
  • 候補キー: スーパーキーのうち、それ以上属性を減らすとタプルの値を一意に決定できなくなるような最小の(既約の)もの
  • 主キー: 候補キーから代表として1つを選んだもの
  • 外部キー: 他の関係(リレーション)を参照するために使用する属性の集合。参照される側の関係においては主キーとなる
  • 複合キー: 複数の属性で構成されたキー
  • ナチュラルキー(自然キー): データーそのものをキーにしたもの
  • サロゲートキー(代理キー): データーに含まれないがタプルの値を一意に決定しやすいように付与されたキー

参照:

リレーション、関数従属性、Prologの類似性

漢(オトコ)のコンピュータ道: リレーショナルモデルのドメイン設計についての議論

リレーションとは真となる命題の集合であることを思い出して欲しい。 リレーションの述語が、例えば「Xという学籍番号を持ち、Y年入学、Zという名前の(中略)生徒が存在する」というようなものと仮定すれば、リレーションに含まれる学籍番号だけが存在するということをリレーションが表現することができるのである。(閉世界仮説)

複合主キー「否定派」と「許容派」の論争: 設計者の発言

たとえば、a=F(b,c)という関数従属性が存在するとしよう。 これは論理レベルでは、{b,c}を複合主キーとし、aを属性項目とするテーブルを要求する

これらの考え方は論理型言語Prologに似ている。

f(a, b, c).  % ←事実の宣言: a, b, cという事実の組が関係fに存在する (a, b, cならばfである)
f(X, b, c).  % ←問い合わせ: X, b, cを満たすようなXは存在するか?
X = a.       % ←Prologからの回答: Xはaである