ГлавнаяЕГЭ ИнформатикаТеорияРеляционные базы данных: структура и запросы — теория для ЕГЭ

Реляционные базы данных: структура и запросы — теория для ЕГЭ

Коротко о главном

Реляционная база данных (БД) — это набор связанных таблиц, где каждая строка (запись) описывает один объект, а столбец (поле) — один из его атрибутов. В задании 3 ЕГЭ обычно даны 2–3 таблицы, связанные общим полем (ключом), и нужно найти количество строк, значений или результат запроса на выборку/соединение данных.

Определения и формулы/правила

Термин Определение
Таблица (отношение) Набор записей с одинаковой структурой полей
Запись (строка) Информация об одном объекте
Поле (атрибут, столбец) Характеристика объекта, имеет тип данных
Первичный ключ Поле (или набор полей), уникально определяющее запись
Внешний ключ Поле, ссылающееся на первичный ключ другой таблицы
Домен Множество допустимых значений поля
Кортеж Синоним записи (строки таблицы)

Основные операции над таблицами:

  • Выборка (SELECT/WHERE) — отбор строк по условию.
  • Проекция — отбор нужных столбцов.
  • Соединение (JOIN) — объединение таблиц по совпадающим значениям связующего поля (обычно внешний ключ = первичный ключ).

Множество результатов соединения двух таблиц по условию равенства ключей: R={(a,b)∣a∈A, b∈B, a.key=b.key} R = \{(a, b) \mid a \in A,\ b \in B,\ a.\text{key} = b.\text{key}\}

Количество строк в результате соединения «один ко многим» равно количеству записей в таблице «многие», удовлетворяющих условию.

Виды связей между таблицами:

Тип связи Пример
Один к одному Паспорт — Человек
Один ко многим Учитель — Ученики (один учитель ведёт много уроков)
Многие ко многим Ученики — Кружки (через промежуточную таблицу)

Как применять (примеры)

Пример 1. Подсчёт строк по условию Таблица «Ученики»: Имя, Класс, Оценка. Нужно найти количество учеников с оценкой 5 в 9 классе. Шаг 1: отобрать строки, где Класс = 9. Шаг 2: среди них отобрать строки, где Оценка = 5. Шаг 3: посчитать количество оставшихся строк — это ответ.

Пример 2. Соединение двух таблиц Таблица «Заказы» (Код_товара, Количество) и «Товары» (Код_товара, Название, Цена). Запрос: вывести название и сумму (Количество × Цена) для заказов, где сумма больше 1000. Шаг 1: для каждой строки «Заказы» найти соответствующую строку в «Товары» по Код_товара. Шаг 2: вычислить произведение. Шаг 3: отфильтровать по условию > 1000, посчитать нужное количество строк.

Пример 3. Работа с промежуточной таблицей (многие ко многим) Таблицы «Ученики», «Кружки», «Запись_на_кружки» (Код_ученика, Код_кружка). Запрос: сколько кружков посещает Иванов? Шаг 1: найти Код_ученика Иванова в таблице «Ученики». Шаг 2: в таблице «Запись_на_кружки» отобрать строки с этим кодом. Шаг 3: посчитать количество отобранных строк — ответ.

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

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

Где встречается на экзамене

Тема входит в задание №3 ЕГЭ по информатике: дано 2–3 таблицы с данными, нужно выполнить анализ, соединение по ключу и подсчёт записей, удовлетворяющих условию. Обычно проверяется базовое понимание структуры реляционной модели и умение мысленно «сматчить» строки таблиц по общему полю без реального выполнения SQL-запроса.

Частые вопросы

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

Первичный ключ уникально определяет запись в своей таблице (не повторяется), внешний ключ ссылается на первичный ключ другой таблицы и может повторяться много раз.

Как понять, что связь между таблицами «один ко многим»?

Если одной записи первой таблицы может соответствовать несколько записей второй таблицы (например, один учитель — много уроков), а обратное неверно — это связь «один ко многим».

Нужно ли знать SQL для решения задания 3?

Нет, задание проверяет логическое понимание структуры данных и связей между таблицами, а не синтаксис SQL-запросов.

Как считать количество строк после соединения таблиц?

Нужно последовательно применить все условия отбора и связи по ключам, а затем посчитать оставшиеся строки, удовлетворяющие всем условиям одновременно.

Что делать, если в задаче три связанные таблицы?

Сначала соединить две таблицы через общий ключ, получить промежуточный результат, затем соединить его с третьей таблицей по другому ключу.

Может ли внешний ключ быть пустым (NULL)?

Да, если связь необязательная — например, у сотрудника может не быть назначенного отдела, тогда внешний ключ отдела будет пустым.

Потренироваться: задание 3