Мне нужно спроектировать базу данных, которая будет отслеживать следующие атрибуты:
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, сохраняет зависимость, но не без потерь.
Есть ли решение моей проблемы?
Спасибо.