「関係スキーマ」初めて聞いた時に「??」ってなるくらい、言葉から想像が出来なかった記憶があります。
関係スキーマは関係データベースにおいて重要で、これが分かるとデータをどう繋げると良いか分かってきます。
そこで、今回はこの「関係スキーマ」とは何かを解説していきます!
関係スキーマとは?
データベースにおける、ある関係を関係名とそれを構成する属性名を並べたもので構成するものです。
以下のように表現されるものです。
関係名(属性1、属性2、属性3、・・・、属性名n)
なんのこっちゃ?って感じかと思いますが、下の記事で解説した「概念データモデル」で出てくるエンティティ名とその属性を横並びで表現したものですね。
例として下の図のようなものが関係スキーマになります。
関係スキーマとテーブルの関係
この関係スキーマは上の例を見てもらえると分かると思いますが、それぞれがデータベースのテーブルと対になっています。
「関係名はテーブル名」、「属性名は列名」となりますね。
関数従属性
関係スキーマにおいて、ある属性Xを決めると、他の属性Yの値が一意に決まる場合、「YはXに関数従属している」と言います。
関数従属の関係を「X→Y」と表現します。このときXを決定項、Yを被決定項と呼びます。
関数従属性はデータベースにおいて、どの属性をユニーク(唯一)にしたり、キーをどれにするかなどを考える時に必要になってきます。
上の例ですと、Y(社員名)は同姓同名がいる可能性がありますので、Yが決まったからといってX(社員ID)は決まりませんね。
各種キー
関係スキーマにおいて、表の行(タプル)を特定するための属性や属性の集合を「キー」と呼びます。
このキーを理解することも非常に重要です。
キー関しては以下記事で解説してますのでご参照ください!
まとめ
今回はデータベースにおける関係スキーマに関して解説しました。
データベースにおけるテーブル(表)を関係スキーマを使うことで繋ぎやすくなりますね。
複雑なデータベースで関係スキーマの数が多くなるとそれぞれの繋がりが分かり難くなりますが、一つ一つの関係を正しく整理していくことがポイントですね。
関数従属する方向とER図のリレーションシップの矢印方向は逆になる、とういうことも覚えておくと良いと思います。
以上です!