Языки манипулирования данными. Карепова Е.Д. - 6 стр.

UptoLike

Составители: 

11
Решение. УСПЕВАЕМОСТЬ [Оценка].
Результат.
Оценка
3
4
5
Заметим, что каждое значение в проекцию входит только один раз. Это
вновь делается для того, чтобы сохранить результат как отношение.
На примере проекции продемонстрируем вложение операций в РА, то
есть последовательное выполнение операций без явного присвоения имени
промежуточной таблице. Для примера вернемся к последнему запросу на
операцию выборка.
Запрос. Кто получил больше тройки по курсу К2 в первом семестре?
Решение. НОМ_УСПЕХИ_К2 := SELECT (УСПЕВАЕМОСТЬ:
ID_Subj=’К2’ AND Семестр = 1 AND Оценка>3) [ID_Stud].
Результат.
НОМ_УСПЕХИ_К2
ID_Stud
001
004
Отметим, что всегда сначала выполняется операция выбора, а затем ре-
зультат проецируется. Вложение операций можно производить в произволь-
ном порядке, разрешено применять скобки для указания приоритета.
Соединение
Соединениеодна из наиболее важных операций РА. Именно благода-
ря возможности реализации соединения отношений, БД проектируется в
нормализованном виде (лишенном избыточности хранения и основных ано-
малий, связанных с изменением данных). Тем не менее, операция соединения
не является самостоятельной, она определяется через другие операции РА.
Обычно выделяют несколько вариантов соединения: естественное, те-
та-соединение, внешнее.
Естественное Соединение операция Соединения, связывающая
отношения, когда общие атрибуты имеют равные значения.
Как правило, естественное соединение производится по внутренним
связям схемы БД.
Результатом естественного соединения JOIN (A,B) двух отношений А
и В, имеющих общие атрибуты С1,...,Сn, является отношение, полученное
следующим образом:
1. А * В (результат содержит по два столбца на каждый С1,...,Сn).
12
2. SELECT(A*B: A.C1=B.C1 And A.C2=B.C2 … And A.Cn=B.Cn) (из
произведения исключаются все строки, кроме тех, в которых значения
С1,...,Сn из А совпадают с соответствующими столбцами С1,...,Сn из В).
3. Проектированием исключается одна копия столбцов С1,...,Сn.
Запрос. Кто сдавал курс К1?
Решение. СТУДЕНТ_К1 := JOIN (УСПЕВАЕМОСТЬ_К1, СТУДЕНТ).
Результат.
ID_St
ud
СФам САдрес Консультант ID_Su
bj
Семестр Оценка
001 Иванов И.И. А1 004 К16 4
002 Иванов И.И. А2 004 К16 5
004 Андреева А.А. А4NullК16 5
Другой взгляд на естественное соединениеэто рассмотрение процес-
са с позиции табличного поиска. Для каждой строки отношения
УСПЕВАЕМОСТЬ_К1 мы ищем строки в отношении СТУДЕНТ, имеющие
тот же ID_Stud. Таким образом, поскольку ID_Studключевое поле в
СТУДЕНТ и УСПЕВАЕМОСТЬ_К1 содержит три строки, то и результи-
рующее отношение будет иметь три строки. Мы просто расширили каждую
строку УСПЕВАЕМОСТЬ_К1, добавив информацию о студенте.
Путь от отношения к отношению может лежать через несколько соеди-
нений, а также выполнение других операций РА.
Запрос. Кто сдавал Высшую математику за 1 семестр?
Решение.
A := SELECT (КУРС: Наименование = ‘Высшая Матем.’);
B := JOIN (УСПЕВАЕМОСТЬ, A);
C := SELECT (B: Семестр=1);
D := JOIN (СТУДЕНТ, C) [СФам].
Результат.
D
СФам
Иванов И.И.
Андреева А.А.
Тета-соединение операция РА, связывающая отношения, при ко-
торой значения связующих атрибутов удовлетворяют некоторому условию
JOIN (A,B: Условие_соединения). Условие_соединения имеет вид
А.x ОС В.y, где x и y - связующие атрибуты отношений A и B соответствен-
но, ОСодин из операторов сравнения: =, <>, >, >=, <, <=. Таким образом,
естественное соединение можно считать подтипом тета-соединения, прово-
димым по атрибутам связи. Отметим, что тета-соединение не предполагает
удалениелишнихатрибутов на последнем шаге. Если оператор сравнения
“=”, а атрибуты связи принадлежат одному отношению, то соединение назы-
вают эквисоединением.
Запрос. Идентифицировать студентов, чей консультант Андреева А.А.