Я пытаюсь понять, когда использовать операторы выбора и проектирования. Мое настоящее понимание заключается в том, что выбор возвращает кортежи, которые соответствуют заданным критериям, а проекция создает новое отношение из отношения, на которое оно действует, но только с указанными атрибутами. Например:Реляционная алгебра, когда использовать проекцию и выбор в этих запросах?
σ(attribute="criteria"^(relation))
возвращает все кортежи с указанным значением атрибута, из отношения «отношение».
Π name (relation)
найдет список имен из отношения «отношение», не считаясь с любыми другими атрибутами.
Из этого примера базы данных, с Звездочка обозначенной первичных ключей:
employee(*personName*, street, city)
works(*personName*, companyName, salary)
company(*companyName*, city)
manages(*personName*, managerName)
Я должен:
A) Найти имена всех сотрудников, которые работают на M & T Bank.
Π personName(σcompanyName = “M&T Bank” ^(works))
B) Найдите имена всех компаний, которые могут быть записаны в базу данных.
Π companyName (company)
C) Найдите имена всех сотрудников, которые не являются менеджерами.
Π personName (works) - ΠpersonName(manages)
В основном, являются ли указанные выше попытки запроса правильными? И насколько я понимаю, что эти операторы верны и полны?
Карат должен был обозначить верхний индекс; извините, если это было непонятно. Это все имеет смысл; Большое вам спасибо за ваш ответ. –