47. Сформировать список студентов, которые в 6 семестре пересдавали экзамены:
Написание запроса на реляционной
алгебре.
Пересдавали_6(#Nз, Фио, Nгр, ИдКурса)=
(
Студент[
Студент.[#Nз] = Успеваемость.[#Nз]
]Успеваемость
Студент[
Студент.[ Nгр] =ОтчетГруппы. [#Nгр]
]ОтчетГруппы
Успеваемость [
Успеваемость [#ВидОтчета = ‘Экзамен’]
Успеваемость [#Семестр = ‘6’]
Успеваемость[#УчНед] ! = ОтчетГруппы[#УчНед]
Успеваемость[#ИдКурса] = ОтчетГруппы[#ИдКурса]
] ОтчетГруппы
) [#Nз, Фио, Nгр, ИдКурса]
Запишем исчисление на кортежах.
z
(#Nз(z), Фио(z),
Nгр(z), ИдКурса(z))~
х / Студент
y / ОтчетГруппы
t / Успеваемость
#Nз(x)
= #Nз(t) &
Nгp(x)
= #Nгр(y) &
[#ВидОтчета(t) = ‘Экзамен’]
&
[#Семестр(t) = ‘6’] &
#УчНед(t) ! = #УчНед(y)
&
#ИдКурса(t) = #ИдКурса(y)
Запишем запрос на SQL
SELECT Студент.[#Nз],
Студент.Фио, Студент.Nгр,
ОтчетГруппы.[#ИдКурса]
FROM ОтчетГруппы, Студент,
Успеваемость
WHERE Успеваемость.[#ВидОтчета]="экзамен"
AND Успеваемость.[#Семестр]="6"
AND ОтчетГруппы.[#Nгр]
= Студент.Nгр
AND ОтчетГруппы.[#ИдКурса]
= Успеваемость.[#ИдКурса]
AND Студент.[#Nз]
= Успеваемость.[#Nз]
AND Успеваемость.[#УчНед]
<> ОтчетГруппы.[#УчНед]
Таблица Студент.
Таблица Отчет Группы.
Таблица Успеваемость
Итоговая
таблица.