次の属性を追跡するデータベースを設計する必要があります。
stdnum // student number
postcode // postal code
phone_number // student phone number
city // student address: city
機能的な依存関係もリストされています。
stdnum -> postcode
stdnum -> phone_number
postcode -> city
phone_number -> city
無損失結合、依存関係保持、属性の第 3 正規形分解を見つける必要があります。
私はさまざまな分解を試みましたが、すべての要件に従うものはありませんでした (それらは、ロスレス結合、依存関係の保持、第 3 正規形です)。
例)元のリレーションを変更せずにそのままにしておくと (テーブルには 4 つの属性すべてが含まれます)、ロスレス結合、依存関係は保持されますが、3NF ではなく、2NF のみになります。
次の分解:
(stdnum, postcode, phone_number, city) =
=(stdnum, postcode, phone_number) JOIN (postcode, city) JOIN (phone_number, city)
3NF にあり、依存関係を維持しますが、ロスレス結合ではありません。
私の問題の解決策はありますか?
感謝。