2016-10-25 5 views
1

Я довольно смущен определением 3NF.
Пусть R это отношение с установленным атрибутом X.
Пусть Y -> А есть функциональная зависимость, где А не является главным атрибутом и Y представляет собой подмножество X.Определение 3NF

Если Y является подмножеством любой ключ-кандидат для R, то отношение не находится в 3NF (и даже не в 2NF), потому что это частичная зависимость, которая не разрешена в 2NF (и по расширению 3NF).

Если Y не является простым атрибут, отношение не в 3NF, потому что это переходная зависимость не-прайм атрибута A на любом кандидата ключе через не-прайм атрибут Y.

Но что если Y - это множество, содержащее как простые, так и непеременные атрибуты? Что, если A - подмножество Y? Что, если Y содержит только простые атрибуты, но эти простые атрибуты исходят из разных ключей R, так что Y не является надлежащим подмножеством какого-либо конкретного ключа R? Что делать, если Y содержит только, но несколько атрибутов без первичности? Какие из этих случаев нарушают требования 3NF и почему?

ответ

0

TL; DR Получить определения прямо.


Чтобы узнать, нарушает ли дело 3NF вы должны смотреть на критерии, используемые в каком-то определения.

Ваш вопрос скорее просят, я знаю, что четное число - это такое, которое делится на 2 или одно, десятичное представление которого заканчивается на 0, 2, 4, 6 или 8, но что, если это три раза квадрат? Ну, вы должны показать, что данные условия подразумевают, что он делится на два или что его десятичное представление заканчивается на одной из этих цифр.

Когда некоторые FD удерживаются, другие должны также удерживать. Мы говорим, что последнее подразумевается первым. Поэтому, когда данные FDs держат, как правило, удерживают тонны других. Таким образом, один или несколько произвольных держав FD не обязательно сообщают вам о каких-либо нормальных формах. Например, когда U - надмножество V, U → V должно выполняться; такие FDs называются тривиальными, потому что они подразумеваются любой коллекцией FD. Например, когда U → V, каждое надмножество U определяет каждое подмножество V. Аксиомы Армстронга - это некоторые правила, которые можно механически применять для поиска всех удерживаемых FD. Существуют алгоритмы для нахождения канонического/минимального/irriducible покрытия для заданного набора, набора FD, который подразумевает все те, что в нем, без соответствующего подмножества. Существуют также алгоритмы для определения того, удовлетворяет ли отношение определенным NF и разлагать их на компоненты с более высокими NF, если они не являются.

Иногда мы считаем, что существует случай, когда определение не обрабатывается, но на самом деле мы неправильно определили его определение.

Например Определение вы пытаетесь обратиться к для связи, находящегося в 3NF на самом деле требует, чтобы не было ни одного транзитивные зависимости от не-прайм атрибута кандидата ключа и что отношение находится в 2НФ. Таким образом, мы можем ожидать, что существуют отношения, отличные от 3NF, без атрибутов non-prime, транзитивно зависящих от CK , но, которые имеют частичную зависимость атрибута non-prime на CK.

Например, в вашем не-3NF Например, вы должны сказать, есть транзитивная зависимость, а не «это», потому что нарушает зависимость является CK → A не Y → A. Кроме того, U → V является частичным когда существует X, где U → X И X → V И НЕ X → V. Не имеет значения, является ли X основным атрибутом. Поэтому ваш «потому что» ошибочен.

PS Не очень полезно спросить «почему», что-то не так. Мы описываем ситуацию с точки зрения некоторых данностей, и происходит множество вещей. Мы можем сказать, что если бы некоторые из данностей были не такими, то это было бы не так. Но если определенные другие givens были не такими, это могло бы быть и так.