データベースの機能依存性

機能の依存関係によるデータの重複の回避

データベース内の関数の依存関係は、属性間の制約のセットを強制します。 これは、リレーション内の1つの属性が別の属性を一意に決定する場合に発生します。 これは "Bは機能的にAに依存している"ことを意味するA - > Bと書くことができます。 これは、 データベース依存関係とも呼ばれます

この関係では、AはBの値を決定し、BはAに依存する。

データベース設計で機能依存性が重要な理由

機能的な依存関係は、データの正当性を保証するのに役立ちます。表の考慮社会保障番号(SSN)、名前、生年月日、住所などの特性を列挙する従業員。

属性SSNは、名前、生年月日、住所およびおそらく他の値の値を決定します。社会保障番号は固有であるため、名前、生年月日または住所は異なる場合があるためです。 次のように書くことができます:

SSN - >氏名、生年月日、住所

したがって、名前、生年月日、住所は機能的にSSNに依存しています。 ただし、同じ名前を持つことができますが、複数の従業員が同じSSNを持つことはないため、逆ステートメント(name - > SSN)は真です。 もっと具体的には、SSN属性の値を知っていれば、名前、生年月日、住所の値を見つけることができます。 しかし、name属性だけの値を知っていれば、SSNを特定することはできません。

機能依存の左側には、複数の属性を含めることができます。 複数の事業所があるビジネスがあるとします。 Employee、Title、Department、Location、およびManagerの属性を持つEmployeeテーブルがあります。

従業員は彼が働いている場所を判断するので、依存関係があります。

従業員 - >場所

しかし、その場所には複数のマネージャが存在することがあるため、従業員と部門が一緒にマネージャを決定します。

従業員、部署 - >マネージャー

機能的依存と正規化

機能的依存性は、データの完全性を保証し、データの冗長性を削減する、データベース正規化と呼ばれるものに貢献します。 正規化がなければ、データベース内のデータが正確で信頼できるものであるという保証はありません。