Я пытаюсь преобразовать следующие 2 реляционную алгебру в стандартный английский, но у меня возникли проблемы понять, что именно пересекающей делаетSQL Query пересекающей - реляционная алгебра
Я знаю, что ПЕРЕСЕЧЕНИЕ находит значения, которые происходят в обоих выбранных утверждений
мне удалось найти свой SQL запрос, но я просто не могу понять, что он просит в простом английском
ли кто-нибудь сможет помочь?
Реляционная алгебра:
Πstudent_name(σcourse id=“CS1850“(student Natural Join enrolled)) ∩
Πstudent_name(σcourse id=“CS1840“(student Natural Join enrolled))
SQL:
SELECT student_name FROM student NATURAL JOIN enrolled WHERE
course_id='CS1850' INTERSECT SELECT student_name FROM student
NATURAL JOIN enrolled where student_name='CS1840'
Второе выражение:
Πstudent_name(σe1.student
id=e2.student_id∧e1.course_id<>e2.course_id(student natural join
(ρe1(enrolled) × ρe2(enrolled))))
SELECT student_name FROM student NATURAL JOIN enrolled e1 NATURAL JOIN
e2 WHERE e1.student_id = e2.student_id
На человеческом языке: «Найдите всех учеников, обучающихся в« CS1850 », и найдите всех учеников, обучающихся в« CS1840 », и верните пересечение этих двух наборов результатов», или «Найдите всех учащихся, включенных в * оба *» CS1850 'и' CS1840 '. " – JimmyB
@JimmyB - Я понимаю - любые идеи о втором? – RandomMath
Второй SQL не соответствует алгебраическому выражению. Ему не хватает «e1.course id <> e2.course». – JimmyB