Может ли кортеж переменных, связанных квантификаторами, находиться слева от '|'в корреляционном исчислении кортежей? - PullRequest
0 голосов
/ 06 ноября 2019

Цитирование общего выражения Tuple Relational Calculus (Основы систем баз данных - Elmasri, Navathe; 6-е издание)

Общее выражение реляционного исчисления кортежей имеет вид{t1.Aj, t2.Ak, ..., tn.Am |COND (t1, t2, ..., tn, tn + 1, tn + 2, ..., tn + m)}где t1, t2, ..., tn, tn + 1, ..., tn + m - переменные кортежа, каждый Ai - это атрибут отношения, в котором находится интервал ti, а COND - условие или формула реляционного кортежаисчисление. Формула состоит из атомов исчисления предикатов, которые могут быть следующими:1. Атом вида R (ti), где R - имя отношения, а ti - переменная кортежа. Этот атом идентифицирует диапазон переменной кортежа ti как отношение, имя которого равно R. Он оценивается как ИСТИНА, если ti является кортежем в отношении R, и в противном случае оценивается как ЛОЖЬ. 2. Атом вида ti.A op tj.B, где op - один из операторов сравнения в множестве {=, <, ≤,>, ≥, ≠}, ti и tj - переменные кортежа, A -Атрибут отношения, на которое распространяется ti, а B является атрибутом отношения, на котором находится t. Атом вида ti.A op c или c op tj.B, где op - один из операторов сравнения в множестве {=, <, ≤,>, ≥, ≠}, ti и tj - переменные кортежа, Aявляется атрибутом отношения, в котором находится диапазон ti, B является атрибутом отношения, в котором находится диапазон tj, а c является постоянным значением.

* Редактировать (Благодаряphilipxy): значение запроса в TRC по отношению к вышеуказанному общему выражению будет

For {t | p} - «Результатом такого запроса является набор всех кортежей t, которые оценивают COND (t) в TRUE». Для {t.a1, t.a2, ... | p} - «сначала мы указываем запрошенные атрибуты […] для каждого выбранного кортежа t. Затем мы задаем условие для выбора кортежа после строки».

Также есть упоминание о

Единственными свободными переменными кортежа в выражении реляционного исчисления кортежа должны быть те, которые отображаются слева от столбца (|).


Рассмотрим, например,, отношение Студенты (идентификатор, класс), и мы хотели бы найти «идентификаторы всех студентов, которые получили высшую оценку». Запрос, указанный в Tuple Relational Calculus, может бытьQ1 = {s1. id |студенты (s1) ^ ¬ (∃ s2, студенты (s2) ^ (s2. класс> s1.grade))}

Здесь s1 - свободная переменная. Q1 можно интерпретировать как все значения id переменной кортежа s1, где s1 находится в пределах отношения ученика (т. Е. S1 принадлежит ученику) И не существует переменной s2, такой, что s2 принадлежит ученику, а s2.grade> s1.grade. Рассмотрим вопросы,Q2 = {s1. id |∃ s1, студенты (s1) ^ ¬ (∃ s2, студенты (s2) ^ (s2. Класс> s1.grade))}

и

Q3 = {s1. id |∀ s1, студенты (s1) ^ ¬ (∃ s2, студенты (s2) ^ (s2. Класс> s1.grade))}

Как мы видим, s1 (переменная слева от столбца) в Q2 и Q3 также ограничена ∃ и ∀ соответственно.

Чем отличается интерпретация Q2 и Q3 отQ1, предполагая, что Q2 и Q3 вообще возможны?


Примечание:

  • Запросы Q2 и Q3 были составлены из Q1 с целью попытаться понять, что означают запросы, если переменныена левой стороне '|'были связаны экзистенциальными или универсальными квантификаторами.
  • (Правка, подумавэто больше) Моя интерпретация Q2 и Q3 заключается в том, что результат Q2 и Q1 будет одинаковым не будет таким же, как Q2 выдаст все значения id s1, если таковые существуютпо крайней мере один s1, который принадлежит ученику и для которого не существует s2, так что s2 принадлежит ученику и s2.grade> s1.grade (это означает, что результатом Q2 является «набор всех идентификаторов учеников, если существует хотя бы один ученик»кто получил высшую оценку "). Q3 произведет все значения идентификатора s1, если для каждого s1, который принадлежит студенту и для которого не существует s2, такой, что s2 принадлежит студенту и s2.grade> s1.grade (то есть результат Q3 является «наборомвсе идентификаторы учеников, если каждый ученик получил наивысшую оценку "). Но я не уверен, возможны ли вообще запросы Q2 и Q3 или вообще может ли возникнуть такой сценарий, когда переменные слева от столбца также ограничены квантификаторами.
...