私の教科書では、リレーショナルデータベースの主キーの次の定義を説明していますが、完全には理解していません。助けをいただければ幸いです。
ましょ関係すること。次に、Rの主キーは、次の2つのプロパティを満たすの属性セットのサブセット、たとえばです。
一意性プロパティ: 2つの異なるタプルがに対して同じ値を持つことはありません。
不可逆性プロパティ:適切なサブセットに一意性プロパティはありません。
Irreducibilityプロパティに迷っています。
私の教科書では、リレーショナルデータベースの主キーの次の定義を説明していますが、完全には理解していません。助けをいただければ幸いです。
ましょ関係すること。次に、Rの主キーは、次の2つのプロパティを満たすの属性セットのサブセット、たとえばです。
一意性プロパティ: 2つの異なるタプルがに対して同じ値を持つことはありません。
不可逆性プロパティ:適切なサブセットに一意性プロパティはありません。
Irreducibilityプロパティに迷っています。
回答:
次の表を検討してください。
FirstName LastName Pet FavColour
-----------------------------------
Alice Jones dog red
Alice Smith dog green
Bob Smith cat blue
キーは属性の任意のセットです:{FirstName、LastName、Pet、FavColour}の任意のサブセット。uniquenessプロパティは、2つのレコードがキーの属性に同じ値を持つことはできないことを示しています。したがって、たとえば、{FavColour}は一意性プロパティを持つキーです。2つのレコードが同じ値を持つことはありません。{Firstname、Lastname}も一意です。同じ姓名を持つレコードは2つありません。一方、{Pet}は、最初のレコードと2番目のレコードの属性の値が同じであるため、一意ではありません。
現在、{FirstName、LastName、Pet、FavColour}も一意のキーです。2つのレコードがすべての属性に同じ値を持つことはありません。しかし、それは一種のばかげた鍵ですよね?既約性により、キーからいずれかの属性を削除すると、一意性が失われます。したがって、{Firstname、LastName、Pet、FavColour}は還元できません。これは、FavColourを削除した場合でも、一意性を持つキー{FirstName、LastName、Pet}が取得されるためです。また、 Petを破棄して、まだ一意である{FirstName、LastName}を取得できるため、これは還元不可能ではありません。ただし、{FirstName}も{LastName}も一意ではないため、{FirstName、LastName}は既約です。つまり、同じ姓と名を持つ2人がいます。