Выводы о функциональной зависимости с избыточным отношением - PullRequest
0 голосов
/ 04 июля 2018

Учитывая 1) CA -> B и 2) B -> C вы можете сделать вывод A -> B, используя аксиомы Армстронга ?

Я пытался использовать правила вывода, чтобы доказать это, но застрял.

BA -> CA Augmentation of A
BA -> CA and CA -> B Transitive property
AB -> B

Кажется, имеет смысл уронить B, так как он избыточен? Это аксиома, которую можно доказать, используя основные правила вывода?

Возможна ли эта проблема?

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

A -> B не может быть выведено, как показывает следующий контрпример:

Предположим, что C - непустой набор атрибутов. И B = C (следовательно, B также является непустым набором атрибутов, и каждый член B также является членом C и наоборот).

По аксиоме рефлексивности очевидно, что C -> C выполнено. А так как B равно C, также имеет место B -> C.

Предположим, что A является пустым набором атрибутов. Тогда ясно, что из A. невозможно определить непустой набор атрибутов (невозможно определить адрес клиента из ничего).

CA обозначает объединение C и A. Поскольку A пусто, CA равно C. Следовательно, CA -> C - это то же самое, что и C -> C, что верно по аксиоме рефлексивности. И так как B равно C, также имеет место CA -> B.


Для тех, кто не считает пустые множества допустимыми, более явный пример:

C = { street, telephone_number }, B = C, A = { street }.

CA по-прежнему равен C, следовательно, CA -> B сохраняется, так же как B -> C. Но очевидно, что будет сложно определить номер телефона, если вы знаете только улицу, поэтому A -> B не имеет места.


Поскольку есть люди, которые убеждены, что номер телефона человека функционально зависит от улицы, на которой он живет (что, если это правда, действительно нарушит мой контрпример), я немного поясню это.

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

Отношение, которое описывает людей в моей деревне, имеет атрибуты street, building_number, apartment_number, telephone_number среди прочих (имя человека, дата рождения, ...).

Поскольку во многих случаях одно значение карты улиц для многих людей (случаи, когда существует только одно здание с одной квартирой, где живет только один человек, является редким), это означает, что для каждой улицы имеется длинный список телефонных номеров (где «длинный» означает «более одного»).

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

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

С учетом вышеизложенного не существует функциональной зависимости между { street } и { telephone_number }, что означает, что между { street } и { street, telephone_number } также нет функциональной зависимости. Следовательно, A -> B не имеет места.

0 голосов
/ 04 июля 2018

Вы, кажется, неправильно поняли основы. Вы доказываете, что FD держатся, когда другие делают, вы не доказываете аксиомы. «Аксиомы» Армстронга (так называемые) являются «фундаментальными правилами вывода» для ФО. Прочитайте ваш учебник. Это говорит о том, что аксиомы «завершены», и говорит, что это означает, что если вы продолжите применять тот, который вы не применили, так как вы добавили FD, пока вы не добавите FD, то вы получите все FD, которые удерживают.

Так что просто сделайте это и посмотрите, добавлен ли ваш / подразумевается. Вдохновение и / или удача могут сократить время.

А - один контрпример опровергает претензию. Так что сгенерируйте несколько небольших примеров отношений с атрибутами A, B & C, где CA -> B & B -> C, и попробуйте сгенерировать такое, где это не так, как A -> B. Опять же, вдохновение и / или удача могут сократить вещи .

...