В реляционной модели нет SELECTов, зато в SQL есть SELECT DISTINCT, который гораздо ближе к реляционной модели.
Ну да, а результат обычного SELECTа по-Вашему в реляционную модель данных уже не вписывается. На фиг нужна такая модель? Впрочем, Ваше определение - Ваши проблемы.
Я же сказал, что таблицы в определённом смысле можно сопоставить предикатам. И если Вы определите этот смысл таким образом, что "предикат истинный тогда и только тогда, когда строка есть в таблице, иначе он ложный", то меня это вполне устроит (и пофиг, дублируются там строки или нет). Но имейте в виду, что этот смысл не всегда соответствует "реальному миру", потому что в реальную таблицу с данными может что-то не попасть по чисто техническим причинам. Например, предикат "является натуральным числом" определён на заведомо бесконечном множестве объектов, поэтому реальная таблица с натуральными числами заведомо не будет включать их все.
Технический вопрос.... если А восхищается Б, то Б обязательно восхищается А? Восхищение среди пар взаимное?
Еще один . Если Х восхищается только собой - он сам себе сообщество?
Раз в условии не сказано, что восхищение обязано быть взаимным, значит может не быть.
Сообщество из одного члена - тоже сообщество. Кстати, пустое сообщество - тоже сообщество.
Здесь изначально есть предметная область, где субъектами являются только "критики", находящиеся в отношениях, а ответа Вы от меня требуете в других субъектах - "сообществах".
Потому что в этом и заключается логика второго порядка. Объекты второго порядка - это предикаты и функции. Сообщество критиков - это унарный предикат, т.е. объект второго порядка.
Мне вообще не нравится, как из исходной фразы "Некоторые критики восхищаются друг другом", выросла Ваша задача найти сообщество. По мне, исходная фраза значит всего лишь, что есть такая пара критиков X и Y, что если Х восхищается Y, то и Y восхищается X. И этот X может так же взаимно восхищаться Z. А еще есть V и W, которые никем не восхищаются. Вот и все, что эта исходная фраза на естественном языке значит.
Вы при формулировке фразы пропустили слово "только". Эта фраза сформулирована на естественном языке, который может пониматься неоднозначно, но формализуется она
вот так. А то, что Вы сказали, ещё неизвестно насколько соответствует фразе, поскольку не уточнено, есть ли ещё какие-то критики, которыми восхищаются члены этой пары.
(Кстати, вопрос по ситуации. Есть три критика Х, Y, Z.... В это группе есть два взаимных восхищения, и, вроде бы, это сообщество. Но, при всём этом, Y и Z, взаимно не восхищаются друг другом - значит они не в одном сообществе? Не понимаю условия.)
В условии чётко сказано, что все члены сообщества должны восхищаться друг другом и только друг другом. Если Y и Z, взаимно не восхищаются друг другом, значит, это сообщество не подходит.
Я же могу говорить, что существует некий предикат, который вернет истину, если я подставлю набор значений, соответствующих какому-то объекту? Вот это предикат, до нормализации (на примере моих отгрузок) - он какого порядка? (Я, кстати, вовсе не настаиваю, что он второго)
Я не понимаю Ваши слова про нормализацию предикатов. Повторю ещё раз, что порядок предиката определяется максимальным порядком
переменных, которые могут быть в его аргументе. В моём примере про сообщества критиков необходимость в
переменной второго порядка (значением которой являются
сообщества критиков) возникает только потому, что мы заранее не можем сказать, какие конкретно из сообществ подойдут под условие - нам для этого надо просмотреть базу. Только поэтому нам приходится трактовать предикат "является сообществом критиков, восхищающихся только друг другом", как предикат второго порядка.
Если база критиков задана, например, так:
1) Таблица "Критики": (Вася), (Петя), (Коля);
2) Таблица "Восхищается": (Вася, Вася), (Петя, Петя),
то мы можем найти все удовлетворяющие условию сообщества, ими будут:
1) пустое сообщество (поскольку мы забыли уточнить, что сообщество должно быть не пусто, хотя в указанной по ссылке статье википедии такое уточнение есть);
2) ((Вася)) - сообщество из одного критика;
3) ((Петя)) - сообщество из одного критика.
В данном примере нам никакие предикаты не нужны. Определять предикат второго порядка нам приходится только потому, что в постановке задачи из предыдущего сообщения конкретное содержание базы критиков
не определено.