Проблемы с пониманием значения обозначения функциональной зависимости (A → BC)

Мне трудно визуализировать, что именно означает A->BC, в основном, что именно делает BC.
Например, на таблице «Если A -> B и B -> C, то A -> C» будет выглядеть так, и утверждение будет верным:

A  |  B  |  C 
1  |  2  |  3 
1  |  2  |  3 

Как будет выглядеть A -> BC?

Как бы вы показали, что что-то вроде «Если AB -> C, то A -> BC» неверно?

Спасибо!

РЕДАКТИРОВАТЬ:
Я предполагаю, что AB -> C означает, что C зависит как от A, так и от B, поэтому таблица будет выглядеть так:

A  |  B  |  C 
1  |  2  |  3 
1  |  2  |  3 

Или это (что было бы контрпримером для моего вопроса выше):

A  |  B  |  C 
1  |  2  |  4 
1  |  3  |  4 

И то и другое было бы правдой. Но это было бы неверно:

A  |  B  |  C 
1  |  2  |  4 
1  |  3  |  5

Это правильная идея?


person Steve    schedule 16.11.2013    source источник
comment
Для обоих последних двух примеров AB -> C верно, а A -> BC ложно. Изменение второго значения в столбце C не имеет значения. эти потенциальные функциональные зависимости.   -  person Matt Fenwick    schedule 19.11.2013


Ответы (1)


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

Союз: Если X → Y и X → Z, то X → YZ

Разложение: если X → YZ, то X → Y и X → Z

Я считаю полезным читать A -> B как «A определяет B», а A -> BC читать как «A определяет B и C». Другими словами, при наличии A вы можете однозначно определить значение B и C, но не обязательно верно, что при наличии B и C вы можете однозначно определить значение A.

Вот простой пример: таблица как минимум с 3 столбцами, где A — первичный ключ, а B и C — любые другие столбцы:

 id | x | y
------------
 1  | 7 | 4
 2  | 9 | 4
 3  | 7 | 6

Чтобы показать, что If AB -> C, then A -> BC ложно, вам просто нужно привести один-единственный контрпример. Вот один из них: таблица, в которой AB является первичным ключом (поэтому по определению он удовлетворяет AB -> C):

 A | B | C
------------
 1 | 1 | 4
 1 | 2 | 5
 2 | 1 | 6
 2 | 2 | 4

Однако он не удовлетворяет A -> B (поскольку для A=1, B=1,2) и, следовательно, по Union не удовлетворяет A -> BC. (Дополнительные баллы: удовлетворяет ли это A -> C? Имеет ли значение?)

person Matt Fenwick    schedule 19.11.2013