Извините за туманную тему вопроса!Реляционная алгебра "группировка"
У меня есть определенная проблема реляционной алгебры, которая заставила меня и пару друзей задохнуться.
Теперь вот вопрос:
For each department, find the maximum salary of instructors in that
department. You may assume that every department has at least one
instructor.
выложу схему, а также, в качестве визуального помощника.
Я работал над этим вопросом;
Мне нужно отношение, которое включает в себя всех инструкторов в любом отделе, у нас это есть. Это отношение instructor
.
Из этого соотношения мне нужно «разбить» его на единицу. и как только у меня есть это отношение, я просто возьму max(salary)
и верну это.
Проблема, единственный способ, которым я могу думать, чтобы сделать что-то вроде этого:
π(max(salary)(σ(dept_name = x(instructor)))
где х = все, что dept_name я ищу, но если я сделал это так, то я «Мне нужно сделать новое отношение для каждого отдела!
Как вы это сделаете?
(Примечание: Я просто скопировать и paste'd символы из википедии, если вы хотите использовать их в своем ответе)
Это очень хорошо! Он отвечает на мой вопрос и устраняет путаницу, которую я испытывал между перекрестным продуктом и естественным объединением. Основные реквизиты для этого! – YourbrainonCompSci
@YourbrainonCompSci & nemo Естественное соединение возвращает только один столбец для каждого имени входного столбца. Чтобы получить естественное соединение, переименовав оба столбца dept перед перекрестным объединением, вы должны проецировать один и переименовать другую обратно после ограничения. (И это переименование отсутствует в версии в верхней части ответа.) Или, чтобы получить естественное соединение, просто переименуйте один столбец и проецируйте его после ограничения. – philipxy
@YourbrainonCompSci & nemo За исключением того, что в традиционной реляционной алгебре нет MAX или GROUP. Это, по существу, SQL, а не какая-либо типичная реляционная алгебра. Хотя некоторые запросы, выражаемые с ними, могут быть выражены без них. Как и в вопросе. Назначение намного сложнее, если вам запрещено использовать их. Интересно, какая алгебра должна была использоваться. (Их много). – philipxy