質問に書き留めた FD のセットは、単一の関係スキーマに適用されます。特定のリレーション スキーマに適用される FD のセットによって、そのリレーション スキーマに対するキーが決定されます。
たとえば、5 つの FD のセットは、最初に使用した 7 列の関係スキーマに対応しています。そして、その FD のセットにより、7 列の関係スキーマのキーが実際に {PID EventName} であることを判断できます。
しかし、その 7 列のスキーマを部分に分割すると、どの FD が引き続き適用可能で、どの部分に適用できるかという結果が生じます。
例えば。あなたが選び出したとします
Team(_TeamName_, TeamCoach)
そして去る
Competitor(PID, EventName, Pname, TeamName, EventDate, TeamRating).
個々の FD ごとに、個々の FD が適用される 2 つの新しい関係スキーマのどちらに適用するかを決定する必要があります。
手元の例では:
Team(_TeamName_, TeamCoach)
TeamName --> TeamCoach
Competitor(PID, EventName, Pname, TeamName, EventDate, TeamRating)
PID -> Pname
PID --> TeamName
EventName --> EventDate
TeamName, EventName --> TeamRating
これで、2 つの関係スキーマだけでなく、それぞれに適用される FD の 2 つの異なるセットもできました。teamname->teamcoach FD は、(改訂された) 競技者関係スキーマには適用されなくなり、チーム スキーマのみに適用されるようになりました。これにより、TeamName がTeam schemaのキーになると結論付けることができます。
ところで、最初に使用したすべての FD を常に保持できるとは限りません。属性の全体的なセット (左側と右側) が、スキーマの分割後に、これらすべての属性を含む関係スキーマが存在しないような FD であり、そのような FD は単純に表現できなくなります。結果の設計では、FD (/key) の形式をとらないデータベース制約として復元する必要があります。それが「依存関係の保存」の問題です。