2016-02-12 3 views
1

Можем ли мы использовать основные операции «+», «-», «*», «/» в реляционной алгебре? Например, если я хочу знать разницу Джона и зарплат Смита от работника отношений, я мог бы написатьЯвляются ли основные арифметические операции недоступными в реляционной алгебре?

select e1.salary - e2.salary 
from employee as e1, employee as e2 
where e1.name = 'John' and e2.name = 'Smith'; 

Как представить это утверждение в реляционной алгебре?

ответ

1

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

мне было интересно, если бы он работал на реляционное исчисление, но я даже не уверен, что ваш запрос должен иметь перевод ...:

{t.salary|Employee(t)^(∃ e1 Employee(e1)) 
        ^(∃ e2 Employee(e2)) 
        ^(e1=John) 
        ^(e2=Smith) 
        ^???} 

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

Смежные вопросы