Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Находится ли таблица в 3НФ?

Струков Дмитрий Мастер (1137), закрыт 6 лет назад
В 3НФ говорится:
Отношение находится 3НФ, если оно в 2НФ и ни один из его не ключевых атрибутов не зависит функционально от любого другого не ключевого атрибута.

И как я понял, предполагается что таблица имеет только один потенциальный ключ.
Та квот, а у меня их 3:
ID, login, email
Логин и емайл имеют уникальный индекс.
Если ключевым атрибутом считается только ID, а он PRIMARY.
То login и email выходит не ключевые атрибуты?

Не могу понять, находится ли такая таблица в 3НФ или нет?
Лучший ответ
Дед Мазай Гений (58133) 6 лет назад
Да, это третья нормальная форма.
В Википедии сказано, что потенциальных ключей может быть несколько.
https://ru.wikipedia.org/wiki/Третья_нормальная_форма
Струков ДмитрийМастер (1137) 6 лет назад
В книгах про реляционные БД, ничего не говорится про виды ключей, пишут просто - ключевое поле.
Вот, я не совсем понял, что у них является ключевым полем:

• Только первичный ключ?
• Уникальный индекс тоже?

Так что получается, login и email, считаются ключевыми полями или нет?
Дед Мазай Гений (58133) login и email - альтернативные ключи или ограничения уникальности. Уникальный индекс - это способ реализации вышеперечисленных ограничений целостности. Можно считать, что уникальный индекс и альтернативный ключ - это одно и то же.
Остальные ответы
kaiu Высший разум (118822) 6 лет назад
Каждая таблица содержит один потенциальный ключ
"Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ (например, включающий все атрибуты отношения)."

И что там красным обозначается у вас?

Ну и главное тут функциональные зависимости убрать, по простому
1 4 16
2 5 25
3 6 36
4 5 25
5 4 16

Тут ключ по 1 столбцу, а другие два столбца (атрибута) не ключевые.
Но тут есть зависимость функциональная между 2 и 3.
Вроде есть, так как это я сказал и видно тем, кто занимался математикой.
Но от того, что видно, не значит, что действительно есть, вы не по данным это определяете, а зная модель которую показывает эта таблица и потому четко понимате, что 2 столбец есть аргумент функции квадрата а 3 есть сам результат этой функции зависимый от 2 столбца
Струков ДмитрийМастер (1137) 6 лет назад
>> И что там красным обозначается у вас?
Красные это уникальные ключ, они по отдельности.
Да ФЗ между login и pass есть, на то я и поставил на него уникальный индекс, что бы не было излишек.

Но в определении 3НФ говорится, о том что если НЕ КЛЮЧЕВЫЕ столбцы имеют ФЗ.

А login вроде как и ключевой, просто уникальный, но не первичный.

Ведь в определении не говорится какой именно ключ, просто сказано ключевой.
Вот я и думаю, можно ли его считать ключевым полем?
kaiu Высший разум (118822) А почему логину разрешен нулл, уже два нулла и нет уникальности же ? Уникальными могут быть много столбцов, допустим 1 2 3 4 5 и 1 5 2 4 3 3 4 2 5 1 вот два столбца и допустим и тот и тот может быть ключом, но мы допустим выбираем первый как первичный ключ (ну нам удобнее нумеровать с 1 и вверх, а не с 5 и до бесконечности вниз) Да хоть все оставшие столбцы могут быть уникальными ключами, но если за ключ ты принял только 1 столбец, то не ключевыми будут все остальные не входящие в первичный ключ, хоть ты его называешь уникальным ключом. Во 2нф говорится о функционально полной зависимости всех столбцов не входящих в первичный ключ, от первичного ключа, то бишь f(ключ) = строка атрибутов не входящая в первичный ключ. По простому зная порядковый номер в таблице мы можем найти строку
Похожие вопросы