Что проверяет задание
Нужно получить ответ из нескольких связанных таблиц: реляционной базы или листа электронной таблицы. Данные разнесены по таблицам, а вопрос требует соединения строк по ключам и отбора по условию.
Определения
Таблица (отношение), набор строк одной структуры. У каждой таблицы есть имя и набор столбцов (полей).
Запись (кортеж), одна строка таблицы.
Поле (атрибут), столбец: имя и допустимый тип значений.
Ключ, поле или набор полей, однозначно определяющий запись. По ключу строку можно найти без двусмысленности.
Первичный ключ, основной уникальный идентификатор записи в своей таблице. Значения не повторяются и не бывают пустыми.
Внешний ключ, поле, которое ссылается на первичный ключ другой таблицы. Оно связывает, например, заказ с клиентом.
Связь «один ко многим», одной записи первой таблицы соответствует несколько записей второй. Классический случай: один город, много школ, один товар, много продаж.
Соединение таблиц, построение новых строк из пар записей, у которых совпали связанные ключи.
Отбор (фильтр), оставить только строки, удовлетворяющие условию: диапазон дат, конкретный город, значение больше порога.
Группировка, объединение строк с одинаковым значением поля и расчёт агрегата: количество, сумма, среднее, минимум, максимум.
Суррогатный код, искусственный номер (id), который сам по себе ничего не означает, но однозначно указывает на объект.
Как читать схему данных
Сначала найти, в какой таблице лежит поле из вопроса, а в какой, поле из условия. Затем выписать цепочку ключей, по которой эти таблицы соединяются. Если промежуточной таблицы нет в вопросе, она всё равно нужна как мост.
Повторяющиеся названия в разных таблицах не всегда одно и то же поле: сверять именно ключи, а не похожие подписи.
Общий алгоритм решения
- Выписать, что именно спрашивают: одно значение, количество, сумму, среднее, список.
- Отметить таблицы и поля, которые участвуют в условии и в ответе.
- Построить цепочку соединений по ключам от условия до ответа.
- Отфильтровать строки по всем ограничениям условия.
- Если нужно, сгруппировать и посчитать агрегат.
- Проверить единицы и формат ответа: число, идентификатор, название, количество записей.
