Имеет ли объединение в σ то же самое, что наличие двух запросов? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть вопрос:

Как зовут сотрудников в Бостоне или Чикаго?

С этими отношениями:

employees(id, name) и workIn(id, city)

Где id в обоих отношениях относится к одной и той же вещи (идентификатор сотрудника)

Запрос, который я написал, был:

Π name (σ city="Boston" U city="Chicago"(employees ⋈ workIn))

Решение вопроса было дано:

Π name (σ city="Boston"(employees ⋈ workIn)) U
Π name (σ city="Chicago"(employees ⋈ workIn))

Могут ли два запроса вернуть один и тот же результат? Или мой запрос просто неверен?

Если мой запрос неправильный, какая разница в возвращаемых значениях?

1 Ответ

2 голосов
/ 24 апреля 2019

Ваш запрос неверен, поскольку вы используете оператор объединения (U) между двумя логическими условиями city="Boston" U city="Chicago" (что не имеет смысла, поскольку объединение является оператором множества, а не логическим оператором).

Логическим оператором для использования в условии является «или» (записано ), что делает составное условие истинным, когда любой из двух компонентов истинен (или оба истинны, но здесь это невозможно) .

Итак, правильное выражение:

Π name (σ city="Boston" ∨ city="Chicago"(employees ⋈ workIn))

и это эквивалентно выражению с Союзом:

Π name (σ city="Boston"(employees ⋈ workIn)) U
Π name (σ city="Chicago"(employees ⋈ workIn))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...