Изменения

Перейти к: навигация, поиск

Исчисление кортежей

2006 байт добавлено, 01:55, 27 декабря 2021
Примеры
== Примеры ==
ПеременныеСамый простой пример {{---}} можно задавать переменные, как уже было ранее показано:
S <font color = grey>::</font> Students<font color = grey>;</font> G <font color = grey>::</font> Groups<font color = grey>;</font> C <font color = grey>::</font> Courses<font color = grey>;</font> P <font color = grey>::</font> Point<font color = grey>;</font>
G4 <font color = grey>::</font> Groups <font color = blue>where</font> Name <font color = grey>=</font> <font color = green>'M34351'</font> <font color = blue>∨</font>
Name <font color = grey>=</font> <font color = green>'M34371'</font> <font color = blue>∨</font> Name <font color = grey>=</font> <font color = green>'M34391'</font>
Рассмотрим более сложный пример, в котором используются составные условия и условия с кванторами. Полностью аттестованные группыаттестованная группа {{---}} группа такая, что у каждого студента по каждому курсу есть оценка хотя бы 60 баллов. На языке исчисления кортежей полностью это выглядит ровно так же, как и звучит:
<font color = blue>select</font> G<font color = grey>.</font>GId <font color = blue>from</font> G <font color = blue>where</font> <font color = blue>$\forall$</font>S <font color = grey>(</font><font color = blue>$\forall$</font>C <font color = grey>(</font><font color = blue>$\exists$</font>P
<font color = grey>(</font>S<font color = grey>.</font>SId <font color = grey>=</font> P<font color = grey>.</font>SId <font color = blue>$\land$</font> C<font color = grey>.</font>CId <font color = grey>=</font> P<font color = grey>.</font>CId <font color = blue>$\land$</font> P<font color = grey>.</font>Points <font color = blue>≥</font> 60<font color = grey>)))</font>
Видим, что запрос получился довольно лаконичным, в то время как в [[Реляционная алгебра|реляционной алгебре]] для такого же запроса потребовалось бы целых 2 больших деления.
Несколько Второй особенностью [[Реляционное исчисление|реляционного исчисления]] является то, что можно выбирать сразу из нескольких отношений:, просто перечислив их в секции from через запятую. Мотивация состоит в том, что в секции select можно указывать только атрибуты тех отношений, из которых выбираем. В следующем примере хотим указать и имя студента, и название его группы, поэтому нужно выбрать и студентов, и группы, так как в противном случае будет неоткуда достать соответсвующий кусочек информации. В таком случае еще необходимо добавить условие, что номер рассматриваемой группы и номер группы студента совпадают.
<font color = blue>select</font> S<font color = grey>.</font>FirstName<font color = grey>,</font> S<font color = grey>.</font>LastName<font color = grey>,</font> G<font color = grey>.</font>Name
<font color = blue>from</font> S<font color = grey>,</font> G
<font color = blue>where</font> S<font color = grey>.</font>GId <font color = grey>=</font> G<font color = grey>.</font>GId
Анонимный участник

Навигация