ЕГЭ · Информатика · задание 31 балл · ≈5 мин

Задание 3 ЕГЭ: База данных: считаем по двум связанным таблицам

В реляционной базе данных связаны две-три таблицы: например, «Рейсы» и «Билеты» или «Товары», «Магазины» и «Поставки». В вопросе есть условия на разные таблицы (направление рейса и количество билетов, название товара и район магазина), поэтому сначала фильтруют родительскую таблицу и выписывают её ключи, затем по внешнему ключу отбирают строки дочерней таблицы и считают их количество или сумму числового поля. Типовые потери: соединяют таблицы по названию вместо кода, учитывают строки, подходящие лишь по одному из двух условий, и суммируют поле там, где спрашивают количество строк (или наоборот).

Все задания Информатика

Что проверяет задание

Реляционные базы данных. Это задание с коротким ответом, который проверяется автоматически. Одна арифметическая ошибка — ноль баллов, поэтому скорость и аккуратность здесь важнее гениальности.

Формулы к заданию

Соединение строк: внешний ключ дочерней таблицы равен первичному ключу родительской
Количество строк дочерней таблицы, прошедших все фильтры вопроса
Если спрашивают вес или объём — суммируем числовое поле отобранных строк

Разбор типовых задач

Пример 1

В базе данных две таблицы. «Рейсы»: номер рейса, откуда, куда. «Билеты»: рейс, пассажир. Рейсы из Москвы в Сочи имеют номера 101, 102 и 105; на рейс 101 продано 14 билетов, на 102 — 9, на 105 — 12. Сколько пассажиров летит из Москвы в Сочи, если каждый билет — один пассажир?

Решение по шагам
  1. Фильтруем «Рейсы» по условию: откуда = Москва И куда = Сочи. Подходят номера 101, 102 и 105.
  2. Соединяем таблицы по ключу «номер рейса = поле рейс»: в «Билетах» ищем строки с рейсом 101, 102 или 105.
  3. Складываем билеты по отобранным рейсам: 14 + 9 + 12 = 35.
  4. Каждая строка «Билетов» — ровно один пассажир, поэтому количество пассажиров равно сумме билетов.
  5. Контроль: рейс 103 (Москва — Казань) не проходит фильтр направления, и его билеты в сумму не входят.

Ответ: 35

Пример 2

Таблицы: «Товары» (код, название, цена), «Магазины» (код, название), «Поставки» (товар, магазин, вес). Товар «Крупа» имеет код 7, магазин «Северный» — код 3. В «Поставках» есть строки: (7, 3, 40), (7, 5, 25) и (2, 3, 60). Сколько килограммов крупы привезли в магазин «Северный»?

Решение по шагам
  1. По названиям находим ключи: товар «Крупа» — код 7, магазин «Северный» — код 3.
  2. Ставим фильтр сразу по двум внешним ключам: товар = 7 И магазин = 3.
  3. Строка (7, 5, 25) не проходит по магазину, строка (2, 3, 60) — по товару; подходит только (7, 3, 40).
  4. Берём вес из подходящей строки: 40 кг.
  5. Проверка формулировки: если бы спрашивали крупу во все магазины, ответ был бы 40 + 25 = 65 — читай вопрос дважды.

Ответ: 40

Тренажёр задания (числа меняются)

Клавиши 1–9 выбирают вариант, Enter — «Проверить»

Из города A в город B летают три рейса: на первый продано 9 билетов, на второй — 7, на третий — 14. Каждый билет — один пассажир. Сколько пассажиров летит по этому направлению?

В таблице «Поставки» товар с кодом 7 привезён в магазин 3 двумя строками: 42 кг и 14 кг, а в другой магазин — строкой 33 кг. Сколько килограммов этого товара привезли в магазин 3?

После соединения таблиц «Рейсы» и «Билеты» в выборке 48 строк, из них 28 строк относятся к рейсам, не подходящим под условие вопроса. Сколько строк останется после фильтра?

Рейс из A в B выполнялся 4 дней подряд, и каждый день на него продавалось по 44 билетов. Сколько пассажиров перевезено за все дни?

Из города A в город B летают три рейса: на первый продано 13 билетов, на второй — 11, на третий — 6. Каждый билет — один пассажир. Сколько пассажиров летит по этому направлению?

В таблице «Поставки» товар с кодом 7 привезён в магазин 3 двумя строками: 30 кг и 30 кг, а в другой магазин — строкой 21 кг. Сколько килограммов этого товара привезли в магазин 3?

После соединения таблиц «Рейсы» и «Билеты» в выборке 71 строк, из них 14 строк относятся к рейсам, не подходящим под условие вопроса. Сколько строк останется после фильтра?

Рейс из A в B выполнялся 7 дней подряд, и каждый день на него продавалось по 60 билетов. Сколько пассажиров перевезено за все дни?

Типичные ошибки

  • Ищут строки по названию («Сочи», «Крупа») прямо в дочерней таблице: там лежат только коды; сначала найди ключ в родительской таблице и фильтруй дочернюю по нему.
  • Суммируют числовое поле, когда спрашивают количество строк, и наоборот: «сколько пассажиров» — сумма билетов, «сколько рейсов» — число строк; перечитай вопрос.
  • Применяют только одно из двух условий: если спрашивают «товар И магазин», строка отбрасывается при провее хотя бы одного поля.

Повторить теорию по информатике

Разбор задания опирается на формулы и приёмы — если тема вспоминается с трудом, сначала пробегите уроки:

Формат задания 3 на экзамене

Балл за задание: 1. Ориентир по времени: ≈5 минут вместе с оформлением решения. Проверяемая тема: реляционные базы данных. На тренировке лимитов нет — сначала точность, скорость придёт после 10–15 решённых задач. Планируйте экзамен так, чтобы не застревать: если решение не идёт — зафиксируйте промежуточный результат, переходите дальше и возвращайтесь в конце, потому что остальные задания дадут больше суммарных баллов.

Частые вопросы про задание 3

Как решать задание 3 ЕГЭ по информатике со связанными таблицами?

Сначала фильтруй родительскую таблицу и выпиши её ключи, затем отбирай строки дочерней по внешнему ключу и считай количество или сумму. Последний шаг — перечитать вопрос: спрашивают количество строк или значение поля.

Чем внешний ключ отличается от первичного простыми словами?

Первичный ключ однозначно определяет запись своей таблицы, а внешний хранит чужой первичный ключ и ссылается на связанную запись. По совпадению «внешний = первичный» строки двух таблиц склеиваются в одну.

Почему в задании 3 ответ не сходится, хотя условия на вид выполнены?

Чаще всего применено только одно из двух условий или соединение сделано по названию вместо кода. Проверь, что каждая строка ответа проходит все фильтры вопроса и что считаешь именно то, о чём спрашивают: строки или сумму.

Похожие задания