Оценка предикатов алгебры отношений - PullRequest
0 голосов
/ 17 февраля 2019

При использовании алгебры отношений (СУБД) , каков порядок оценки предиката?

Например,

σ<sub>A = B ^ D > 5</sub>(r)

  • Оценивается ли A = B первым (left to right) или D> 5 (right to left)?
  • Кроме того, существует ли таблица приоритетов в алгебре отношений?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019
  • Кроме того, есть ли таблица приоритетов в алгебре отношений?

Филипп правильно спрашивает, какую версию / какое определение RA вы используете.

В оригинальной RA Codd 1972 года вы не могли комбинировать условия с AND (вы использовали ^) таким образом.Вам нужно было бы написать это ограничение как

σ<sub>A = B</sub>(r) ∩ σ<sub>D > 5</sub>(r)

Если вы задаете эти вопросы, потому что считаете, что RA является своего рода механизмом выполнения для SQL: это не так;на самом деле семантика RA отличается от SQL в нескольких важных отношениях.

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

0 голосов
/ 18 февраля 2019

Не существует ни одного RA (реляционной алгебры) или связанного алгебра-ориентированного языка запросов.Какое у вас название учебника / инструмента и редакция / версия?Каковы его соответствующие определения?

Связывание говорит вам, как разобрать в аргументы.Когда нет никаких изменений состояния и нет неопределенных имен, не имеет смысла говорить «сначала оценивается» или «слева направо» между аргументами.Когда имена могут быть неопределенными, тогда могут существовать операторы, которые разрешают определенные результаты, несмотря на неопределенные аргументы.Например, оператор & C (также известный как CAND или условный AND), который похож на AND, но оценивает свой второй аргумент только в том случае, если первый равен false.

Алгебра - это набор значений и операторов.Многие представления реляционных алгебр путают и связывают их реляционную алгебру с их языком / нотацией для написания вложенных вызовов операторов реляционной алгебры.Иногда язык / нотация имеет присваивание, которое само по себе не имеет ничего общего с реляционной алгеброй.

В языках реляционных запросов формула ограничения / выбора оценивает отображение из кортежа в логическое значение.Это не оценивается как логическое значение.Мы можем разумно сказать, что сопоставление применяется к каждому кортежу в отношении, чтобы получить из него логическое значение.

Стандартное соглашение в логике для формул состоит в том, что привязка становится слабее из круглых скобок при вызовах функций И ​​и ИЛИIMPLIES.

Многие языки запросов, ориентированные на реляционную алгебру, уменьшают неоднозначность, заставляя скобки присутствовать вокруг отношений в вызовах некоторых операторов отношений.Например, обычно круглые скобки в обозначениях типа σ A = B AND D > 5 (r) являются обязательными.

...