2.1関係モデル

2.1関係モデル

データベーススペシャリスト試験の関係モデルを学習。まとめ。

関係モデルは、数学に基礎を置くフラットな表(テーブル)をデータ構造に採用したデータモデル。現在のDBMSの狩猟は関係モデルを用いたRDBMS(Relatinal DBMS)。

2.1.1関係モデルの背景・目標

(1)関係モデルの背景

階層モデルやネットワークモデルを使用したにも関わらず応用プログラムの生成が上がらない理由

①ナビゲーションの問題

②複数のレコードを同時に処理するコマンドが用意されなかった

③端末利用者がデータベースと直接対話する機能、特に予期しないやり方で対話する機能の必要性が十分に認識されなかった

(2)関係モデルの目標

データ独立、相互理解、集合演算、論理的基礎の目標

(3)関係DBMSのルール

2.1.2関係モデルの機能

(1)関係モデルの機能

関係でもるの機能は、データ構造部分、データインテグリティ(整合性)部分、データ操作部分の三つからなる。これは論理データモデル機能のデータ定義機能、整合性制約機能、データ操作機能にそれぞれ対応

①データ構造部分

データ構造部分は、定義域、任意の次数の関係(任意の個数の属性からなる関係)、属性、組(タプル:行のこと)、候補キー、主キーからなる。関係は次のような性質を持つ

順番を持つ集合(LIST)、重複を許す集合(Bag)、配列(アレイ)

②データインテグリティ部分

データインテグリティ部分は

  • エンティティインテグリティ(一意制約、非NULL制約、検査制約)
  • 参照インテグリティ(参照制約)
  • 定義域インテグリティ(ドメイン制約または形式制約)
  • ユーザ定義インテグリティ(更新制約)

③データ操作部分

データ操作部分は、選択、射影、結合などの代数的な演算子からなる。これらの演算子は関係を別の関係に変換する

(2)拡張関係モデル

拡張関係モデルでは次の点が機能拡張

①NULL値を含んだデータ操作部部の拡張(OUTER JOIN)

②汎化の拡張

SQL-99ではオブジェクト試行の概念が取り入れられた。ユーザデータ型(抽象データ型)では上位型(supertype)、副型(subtype)からクラス階層を定義、継承できる

関係モデルは値指向のデータモデル

③抽象データ型

抽象データ型(ADT:Abstract Data Type)を定義できるようになった

2.1.3関係モデル要素

(1)関係モデルの要素

①関係

関係が持つ属性A,B,C,・・・の値の集合(属性値集合または定義域)から直積を作る。この直積から任意のn個組を取り出して作った集合(部分集合)のことを関係(relation:リレーション)という。n個組とはn個の属性からなる直積の要素のこと。関係Rの一つのn個組は、表の一つの行を表す。n個組は単にタプルという。関係または表には、関係名または表名を与える

②属性

関係が持つ特性・性質を表現するものを属性(attribet)。属性は値を持ち、これを属性値という。属性は、列(column)、フィールド、データ項目という。属性には属性名を与え、属性の数を次数
(degree)という。

③定義域

関係が持つ属性の値の集合を属性値集合または定義域(domain)という。複数の属性が、一つの定義域を共有しても構わない

④関係スキーマ

関係はタプルの論理的な集合、タプルが挿入されたり、削除されたりすると変化する。一方、関係名とぞ校声明は恒常的、恒常的な部分を関係スキーマ(relation schema)という

⑤候補キー

関係の中で、タプル(行)を一意に識別する、冗長性のない一つまたは複数の属性を候補キー(candidate key)または単にキーという。冗長性がないとは、候補キーの属性集合から一つでも属性を除いた部分集合ではタプルを一意に特定できないということ。表現を変えれば、候補キーはタプルを一意に特定できる玉淑の属性集合。関係の中に候補キーは複数個あっても良い。一方、候補キーを含む属性集合をスーパキー(super keyu:超キー)という。スーパキーも候補キーを含むからタプルを一意に特定できるが、冗長性がある。関係の属性全部を組み合わせたものをスーパキーの一つである。なおスーパキーは、正規化理論を厳密に展開する場合に必要となるが、実用的なデータベース設計の立場では候補キーだけで十分

⑥主キー

候補キーのうちのどれか一つの主たるもの主キー(primary key)という。候補キーが複数ある場合、代表的なものを主キーに定める。主キーは一つの関係にただ一つあり、一意性を保証するため、NULL値は認められない。NULL値は属性が値を持たない状態。主キーに選ばなかった残りの候補キーを代替えキー(alternate key)という。またマイナンバのような自然のキーではなく、属性数の多い複合キーなどの代わりとする人工的な連番を代表キー(surrogate key)という

(2)関係の間の1対1、1対多関連

関係モデルは値指向のデータモデル、二つの関係のタプルの間に1対1あるいは1対多の対応関係がある場合、これを表現するために、主キー/外部キーの参照関係で表現する(参照制約)。関係モデルが値指向のデータモデルといわれるのは、主キーの値で一意にタプルを識別し、属性の値によって検索が可能であること

①外部キー

ある関係の属性の値が他の関係の属性の値を参照し、この値に一致すれば両者の間に参照関係が成立。この参照関係において、参照する側の属性を外部キー(foreign key)という。被参照側(参照される側)の属性は主キーまたは候補キー

②関係の間の多対多関連

関係モデルで無理に多対多関連を表現しようとすると、後述する第3正規形が崩れる。第3正規形を維持するため、多対多関連は1対多関連へ変換する

(3)実表、ビュー、導出表

ANSI/X3/SPARC 3層モデルの概念スキーマに相当する関係(リレーション)を基底関係(base relation:ベースリレーション)という。データベースに実存する関係を実表(base table:ベーステーブル)ともいう。関係に対するデータ操作言語の操作結果は、また関係になる。ベースリレーションに対する捜査結果を、ビュー(view)という。ビューは、データベースに実在しないので、仮想関係(virtual relation)、仮想表(virtual table)あるいは操作結果として導き出されたという意味で導出関係(derived talbe)、導出表(drived table)という。関係に対して演算を死した結果得られる関係はすべて導出関係。

データ操作言語による操作結果がまた関係なるという再帰性のために、関係データベースの操作言語は協力な問合せ機能を持つことになる