Pull to refresh

Comments 14

Правило 2-й нормльной формы здесь совершенно не понятно, либо перевод такой.
Само правило — да, для новичка. Пример чуть упрощает понимание.
Про 2НФ написано нечто, абсолютно к ней не относящееся. Вторая нормальная форма — это когда нет полей, зависящих только от части составного ПК.

Не знаю уж, оригинал это такой или последствия перевода. Но в любом случае, если бы переводчик был в теме — такого появиться не должно было бы. Переводить материал про НФ, не разбираюсь в них — сложно ожидать хорошего результата.
Не согласен. 2НФ — данные в таблице зависят только от первичного ключа. Ваше замечание — частный случай 2НФ. У автора определено более обобщенно.
У автора — определенно ерунда.

Да и Вам было бы полезно найти четкое определение 2НФ, понять его, потом уже комментировать. Без обид, но тут нет ничего, с чем можно соглашаться или нет. Все очевидно.
«Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.»
Пруфы:
www.intuit.ru/studies/courses/3439/681/lecture/8482
ru.wikipedia.org/wiki/Вторая_нормальная_форма
www.mstu.edu.ru/study/materials/zelenkov/ch_4_2.html
citforum.ru/database/dbguide/4-5.shtml

К автору можно придраться только с точки зрения русского языка, но суть определения передана верно.
В вашем определении не описан случай не составного ПК и случай когда поле не зависит ни от какой части ПК.
Определение Вы нашли, но, похоже, не потрудились все же его понять.

Во всех перечисленных пруфах при определении 2НФ явно идет речь о составном ключе. Если первичный ключ состоит из одного поля (и таблица в 1НФ), то она уже автоматически находится в 2НФ.

Если поле не зависит ни от какой части ПК, то это уже не называется отношением, не является реляционной моделью данных и никакие нормальные формы тут не применимы.
Определение Вы нашли, но, похоже, не потрудились все же его понять.

Потрудитесь и вы.
Полная функциональная зависимость — неключевой атрибут функционально полно зависит от составного ключа если он функционально зависит от всего ключа в целом, но не находится в функциональной зависимости от какого-либо из входящих в него атрибутов.
Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.

Ваше определение нельзя назвать не верным, но полным его тоже назвать нельзя.

В вашем определении упущен важный момент — поле должно зависеть от ключа в целом и только от него. Кроме того для применения 2НФ ключ не обязан быть составным.

Если поле не зависит ни от какой части ПК, то это уже не называется отношением

Поле может зависеть от другого поля(«страна» может зависеть от поля «город» в таблице магазинов), не являющегося частью ключа. Этот случай полностью соответствует вашему определению, но тем не менее не является 2НФ.
Я вообще-то никаких определений не давал. Только описал максимально краткую суть 2НФ, чтобы показать некомпетентность статьи автора. Строгое определение, естественно, гораздо подробнее и приведено в вышеупомянутых пруфах.

Страна, зависящая от города в таблице магазинов, является транзитивной зависимостью страны от первичного ключа. При этом поле от первичного ключа, тем не менее, зависит. В таком виде таблица не соответствует 3НФ, но находится в полном согласии с 2НФ.

Не готов здесь проводить ликбез по нормальным формам, тут нужна отдельная хорошая статья. Но исходный материал точно таким не является :)
Хочу отметить что все три нормальные формы — это следование принципу DRY. И наоборот: следуя принципу DRY, ваша бд будет нормализованой, даже если вы специально не думаете об этом.

Хранение данных, воспроизводимых из существующих, обычно плохая идея.

Это либо плохая идея, либо денормализация.
Sign up to leave a comment.

Articles