Вариант 1. Отношения «Клиенты» и «Счета»
Предметная область: Автоматизированная банковская система. Отношение Клиенты хранит персональные данные физических лиц. Отношение Счета содержит открытые расчетные и депозитные счета.
Отношение R: Клиенты
| ID_клиента | ФИО | Город |
| 1 | Смирнов А. | Москва |
| 2 | Кузнецов Б. | Тюмень |
| 3 | Попов В. | Сургут |
| 4 | Соколов Г. | Ханты-Мансийск |
Отношение S: Счета
| Номер_счета | ID_клиента | Остаток_руб |
| 40817-01 | 1 | 150 000 |
| 40817-02 | 1 | 320 000 |
| 40817-03 | 3 | 50 000 |
| 40817-04 | 5 | 800 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 | Дисциплина | Оценка |
| Э-1 | 201 | Базы данных | 5 |
| Э-2 | 201 | Операционные системы | 4 |
| Э-3 | 203 | Базы данных | 3 |
| Э-4 | 205 | Базы данных | 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 | АРТ-10 | 20 | 15.01 |
| Н-502 | АРТ-10 | 15 | 02.02 |
| Н-503 | АРТ-40 | 500 | 10.02 |
| Н-504 | АРТ-99 | 50 | 14.02 |
Часть 1. Естественное соединение каталога и журнала поставок (R ⋈ S) — 2 балла
Постройте таблицу результата. Определите точное число кортежей. Почему для маршрутизатора Cisco получилось две строки в результирующем отношении?
Часть 2. Антисоединение для поиска неликвидных товаров (R ▷ S) — 1 балл
Постройте результат антисоединения R ▷ S. Какие товары являются неликвидными (по которым не было поставок)? Какова схема отношения результата?
Часть 3. Самопроверка: физический план Hash Join — 1 балл
Как алгоритм Hash Join в ядре СУБД обработает соединение этих двух таблиц? Какая таблица будет выбрана для построения хэш-таблицы (Build-фаза) и почему?