RDB

2022-10-01 (土) 11:48:20

RDB

  • Relational DataBase
  • 関係データベース

RDB の構造

    • 列と行の2次元の表
    • 属性、アトリビュート(Attribute)
    • 組、タプル(Tuple)

RDB の仕組み

キー

  • スーパーキー
    • super key
    • データ(行)を一意に特定することができる属性(列)
  • 候補キー
    • candidate key
    • スーパーキーの中で、データ(行)を一意に特定する上で必要最小限の属性(列)
    • 候補キーの性質
      • 一意制約が設定される
      • 1つの表に候補キーが1つとは限らない
  • 主キー
    • primary key
    • 候補キーの中から代表で選ばれたもの
    • 候補キーの性質
      • 一意制約が設定される
      • NOT NULL制約が設定される
  • 代理キー
    • alternate key
    • 候補キーの中から代表で選ばれなかったもの
  • 外部キー
    • foreign key
    • 他の表を参照する属性(列)
    • 一般的には被参照表(外部キーによって参照される表)の主キーを参照する
    • 外部キーの参照制約
      • 被参照表に値が存在することを保証すること
    • 外部キーの性質
      • NOT NULL制約が設定されていなければNULLは許可される
  • 代用キー
    • surrogate key
    • 主キーが複数の属性(列)で構成されている場合に、連番などで追加する属性のこと
    • 代用キーを設ける場合、代理キー以外の属性は非キー属性の代理キーにする

RDB の正規化

関係従属

  • 部分関数従属
  • 完全関数従属
  • 推移的関数従属

正規化の手順

  • 第1正規化
    • 表の繰り返し部分を排除した第1正規形の表を作成する
    • 繰り返し部分を別の表に分解する
    • 分解された表は結合により元の表を再現できる
  • 第2正規化
    • 第1正規形の表の全ての非キー属性が候補キーに完全関数従属した第2正規形の表を作成する
    • 候補キーの一部に部分関数従属する非キー属性を別の表に分解する
  • 第3正規化
    • 第2正規形の表の全ての非キー属性が候補キーに関数従属した第3正規形の表を作成する
    • 非キー属性間の関数従属をなくした状態にする
    • 候補キーに推移的関数従属している非キー属性を別の表に分解する

RDB の演算

集合演算

  • 和 ※UNION / UNION ALL
  • 共通(積) ※INTERSECT
  • 差 ※EXCEPT
  • 直積

関係演算

  • 選択・射影
  • 結合
    • 内結合 ※INNER JOIN
    • 外結合 ※OUTER JOIN
      • 左外結合 ※LEFT OUTER JOIN
      • 右外結合 ※RIGHT OUTER JOIN
      • 完全外結合 ※FULL OUTER JOIN

RDBMS

  • RDBのデータベース管理システム

RDBMS(パブリックドメイン

RDBMS(OSS

RDBMS(有償)

関連用語