Реляционная алгебра - как правильно представлять предложение «иметь»? - PullRequest
6 голосов
/ 15 января 2010

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

Допустим, у вас есть SQL-запрос, подобный следующему:

- В запросе будут перечислены цены на автомобили, которые встречаются более одного раза.

select car_price from cars
group by car_price
having count (car_price) > 1;

Общий вид этого в реляционной алгебре: Y (gl, al) R Где Y - греческий символ, GL - список атрибутов для группировки, AL - список агрегатов

Таким образом, реляционная алгебра будет выглядеть так:

 Y (count(car_price)) cars

Итак, как же в этом утверждении написано «имеющее» предложение? Есть ли сокращение? Если нет, мне просто нужно выбрать из этого отношения? Может быть, что-то подобное?

SELECT (count(car_price) > 1) [Y (count(car_price)) cars]

Я искал в интернете несколько часов и не нашел примеров преобразования HAVING в реляционную алгебру. Спасибо за помощь!

Ответы [ 2 ]

3 голосов
/ 16 января 2010

выберите количество (*) из (выберите * из автомобилей, где цена> 1) в качестве автомобилей;

также известен как реляционное замыкание.

0 голосов
/ 15 марта 2010

Для более или менее точного ответа на заданный вопрос: «Реляционная алгебра - как правильно представлять предложение« иметь »?», Сначала необходимо указать, что сам вопрос, кажется, предлагает, или Предположим, что существует такая вещь, как реляционная алгебра «THE», но это предположение просто неверно!

Алгебра - это набор операторов, и любой может определить любой набор операторов, который ему нравится, то есть любой может определить любую алгебру, которая ему нравится! В своей последней публикации Хью Дарвен упоминает, что RESTRICT не является фундаментальным оператором алгебры, хотя многие другие считают его таковым.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...