2016-09-22 2 views
0

Я изо всех сил пытаюсь обернуть голову тем, как они должны работать.Понимание функциональных зависимостей с парами

Так у меня есть таблица значений:

╔════╦════╦════╦════╗ 
║ A ║ B ║ C ║ D ║ 
╠════╬════╬════╬════╣ 
║ A1 ║ B1 ║ C1 ║ D3 ║ 
║ A1 ║ B2 ║ C3 ║ D2 ║ 
║ A2 ║ B2 ║ C3 ║ D4 ║ 
║ A3 ║ B3 ║ C5 ║ D4 ║ 
╚════╩════╩════╩════╝ 

Теперь, я думаю, что у меня есть отдельные значения отсортированные.

B не функционально зависит от A (A->B), поскольку A1 соответствует B1 и B2 и так далее.

Но теперь меня спрашивают, если {A, B} -> C, и я не уверен, что это понимаю.

Сейчас я думаю, что с {A1, B2} и {A2, B2} оба дают C3, C не может функционировать в зависимости от {A, B}.

Я даже не знаю, как его прочитать. Это похоже на booleans? Если A -> C и B -> C это означает {A, B} -> C?

Если значение справа (например, C3) соответствует двум уникальным парам (A1, B1 и A2, B2), означает ли это, что оно функционально зависит или нет?

ответ

0

функциональная зависимость {A, B} → C означает: если в таблице есть два кортежа с той же комбинацией значений A и B затем значение С должно быть тем же самым (и не обязательно ViceVersa).

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

Здесь у вас есть один экземпляр и вопрос, на который вы должны ответить, если находится в , это экземпляр зависимостей {A, B} → C. Но единственным разумным ответом является «на это нельзя ответить, учитывая данные, так как нет двух кортежей с одинаковой комбинацией значений A и B, так что мы не можем видеть, является ли значение C равным или различным в этом случае» , Конечно, ваш ответ будет всегда ограничен этим конкретным экземпляром и не будет иметь общей действительности, как это должно быть для функциональной зависимости.

С другой стороны, вы также спрашиваете, может ли функциональная зависимость быть получена от других: это возможно в соответствии с определенными правилами (которые не применимы в данном конкретном случае). Чтобы увидеть пример этих правил, вы можете посмотреть экземпляр на странице по адресу Armstrong’s axiom on Wikipedia.

+0

Итак, поскольку {A1, B2} и {A2, B2} оба дают C3, C НЕ функционально зависит от AB? Но если бы были два списка {A1, B2}, которые оба дали C3, это было бы? – BrickWall

+0

@BrickWall, необязательно (для первого вопроса). Вы можете сказать, что это * не * зависит, только если у вас есть два кортежа с одинаковым значением A и B и другое значение для C. Если вместо этого у вас есть два кортежа с A1, B2 с C3 и никакие другие кортежи с A1 , B2 и значение для C, отличное от C3, то вы можете сказать, что в этой таблице C зависит от A, B. – Renzo

Смежные вопросы