Рабочий лист: Реляционная алгебра — Соединение

Дисциплина: ОП.08 Основы проектирования баз данных
Тема: Тема 2. Взаимосвязи в моделях и реляционный подход к построению моделей (§2.2 с.7 программы)
Выберите назначенный вариант:

Вариант 1. Отношения «Клиенты» и «Счета»

Предметная область: Автоматизированная банковская система. Отношение Клиенты хранит персональные данные физических лиц. Отношение Счета содержит открытые расчетные и депозитные счета.

Отношение R: Клиенты

ID_клиентаФИОГород
1Смирнов А.Москва
2Кузнецов Б.Тюмень
3Попов В.Сургут
4Соколов Г.Ханты-Мансийск

Отношение S: Счета

Номер_счетаID_клиентаОстаток_руб
40817-011150 000
40817-021320 000
40817-03350 000
40817-045800 000

Часть 1. Естественное соединение (Natural Join, R ⋈ S) — 2 балла

Постройте результирующее отношение. Зафиксируйте схему (названия колонок без дублирования ключа), перечислите все строки и укажите мощность (кол-во строк).

Часть 2. Левое внешнее соединение (Left Outer Join, R ⟕ S) — 1 балл

Постройте результат левого соединения. Какие клиенты не имеют открытых счетов и какие значения принимают атрибуты счета для этих клиентов?

Часть 3. Самопроверка и антисоединение — 1 балл

Как с помощью операции антисоединения (R ▷ S) получить список «спящих» клиентов без счетов? Какие кортежи войдут в результат?

Вариант 2. Отношения «Преподаватели» и «Кафедры»

Предметная область: Университетская кадровая подсистема. Отношение Преподаватели хранит данные о научно-педагогических работниках и номерах их кафедр. Отношение Кафедры хранит перечень структурных подразделений вуза.

Отношение R: Преподаватели

Таб_номерФИОДолжностьКафедра_код
101Волков Д.Профессор10
102Морозов Е.Доцент10
103Новиков Ж.Ассистент20
104Федоров З.Доцент99

Отношение S: Кафедры

ID_кафедрыНазваниеЗаведующий
10Информационные системыВолков Д.
20Высшая математикаКовалев Н.
30Иностранные языкиПавлова О.

Часть 1. Эквисоединение по номеру кафедры (R ⋈_{Кафедра_код = ID_кафедры} S) — 2 балла

Постройте таблицу результата. Обратите внимание: имена ключевых атрибутов различаются. Будут ли оба столбца присутствовать в схеме эквисоединения?

Часть 2. Правое внешнее соединение (Right Outer Join, R ⟖ S) — 1 балл

Постройте таблицу правого внешнего соединения. Какая кафедра не имеет закрепленных преподавателей в отношении R? Какие поля будут заполнены NULL?

Часть 3. Самопроверка и анализ ссылочной целостности — 1 балл

У преподавателя Федорова (104) указан код кафедры 99, которого нет в таблице Кафедры. Что произойдет с этой строкой в INNER JOIN и в LEFT JOIN? Какое ограничение СУБД защищает от этой ситуации?

Вариант 3. Отношения «Студенты» и «Сданные_экзамены»

Предметная область: Деканатная сессионная ведомость. Отношение Студенты содержит список учащихся. Отношение Сданные_экзамены фиксирует факты прохождения промежуточной аттестации.

Отношение R: Студенты

Студент_IDФИОГруппа
201Семенов И.СА-201
202Егоров К.СА-201
203Романов Л.СА-202
204Белов М.СА-202

Отношение S: Сданные_экзамены

Экзамен_IDСтудент_IDДисциплинаОценка
Э-1201Базы данных5
Э-2201Операционные системы4
Э-3203Базы данных3
Э-4205Базы данных4

Часть 1. Полное внешнее соединение (Full Outer Join, R ⟗ S) — 2 балла

Постройте полное результирующее отношение. Сформулируйте полную схему и все кортежи, явно указав маркеры NULL с левой и с правой стороны.

Часть 2. Обработка маркера NULL и выявление аномалий — 1 балл

Назовите студентов, которые не сдавали ни одного экзамена, и экзамены, привязанные к несуществующему студенту. Как трехзначная логика 3VL обрабатывает строку 205?

Часть 3. Самопроверка: формула и полусоединение — 1 балл

Запишите формулу получения списка студентов, сдавших ХОТЯ БЫ ОДИН экзамен, через операцию полусоединения (Semi-Join). Сколько строк будет в результате и почему Семенов (201) встретится ровно один раз?

Вариант 4. Отношения «Склад» и «Поставки»

Предметная область: Логистический комплекс торговой сети. Отношение Склад содержит каталог товарных номенклатур на основном складе. Отношение Поставки содержит журнал приходных партий за текущий квартал.

Отношение R: Склад

АртикулНаименование_товараКатегорияМин_остаток
АРТ-10Маршрутизатор CiscoСетевое5
АРТ-20Коммутатор HPСетевое10
АРТ-30Серверный шкаф 42UОборудование2
АРТ-40Патч-корд UTP 3мКабели100

Отношение S: Поставки

Номер_накладнойАртикулКоличествоДата
Н-501АРТ-102015.01
Н-502АРТ-101502.02
Н-503АРТ-4050010.02
Н-504АРТ-995014.02

Часть 1. Естественное соединение каталога и журнала поставок (R ⋈ S) — 2 балла

Постройте таблицу результата. Определите точное число кортежей. Почему для маршрутизатора Cisco получилось две строки в результирующем отношении?

Часть 2. Антисоединение для поиска неликвидных товаров (R ▷ S) — 1 балл

Постройте результат антисоединения R ▷ S. Какие товары являются неликвидными (по которым не было поставок)? Какова схема отношения результата?

Часть 3. Самопроверка: физический план Hash Join — 1 балл

Как алгоритм Hash Join в ядре СУБД обработает соединение этих двух таблиц? Какая таблица будет выбрана для построения хэш-таблицы (Build-фаза) и почему?

Данные успешно сохранены в локальном хранилище браузера!