преобразование многозначной зависимости в SQL

Предположим, что в отношении R (X, Y, Z) имеется следующее МВД:

X ->> YZ

Поскольку я могу написать FD X -> Y в SQL как таковой:

SELECT X
FROM R
GROUP BY A
HAVING COUNT (DISTINCT Y) > 1

Я пытаюсь применить ту же логическую мысль к упомянутому выше МВД:

SELECT X
FROM R AS R1
INNER JOIN 
R as R2
ON R1.X = R2.X
GROUP BY R1.X, R2.X 
HAVING COUNT(DISTINCT R1.B > 1) and COUNT(DISTINCT R1.C > 1)

но что-то мне кажется неправильным, особенно в заявлениях JOIN И HAVING. Может кто-нибудь подскажет, что здесь не так?


person cybertextron    schedule 13.07.2014    source источник
comment
Какую базу данных вы используете? Вы должны пометить только одну базу данных. Если это общий вопрос SQL, удалите определенные теги базы данных.   -  person Gordon Linoff    schedule 14.07.2014
comment
@GordonLinoff Я использую SQLite3   -  person cybertextron    schedule 14.07.2014
comment
Я пометил эти функциональные зависимости, а не создал новый тег многозначных зависимостей. Я знаю разницу. Я просто не уверен, имеет ли смысл иметь еще один тег для mvds.   -  person Mike Sherrill 'Cat Recall'    schedule 14.07.2014
comment
Что такое A, B и C? Что значит писать ФД? А из какой таблицы? Что вы хотите сделать аналогично для какого стола для МВД? Объясните ясно и полно. Запись FD ничего не значит, и для MVDS все, что мы можем сделать, это догадаться по SQL, что не делает то, что вы хотите.   -  person philipxy    schedule 15.07.2014
comment
Может быть, вам нужен запрос «да / нет», указывающий, удерживается ли данный FD / MVD в данной таблице? Например,   -  person philipxy    schedule 15.07.2014