Информатика · тема 7 из 13 · ОГЭ № 11 · ЕГЭ № 3

Базы данных: таблицы, ключи, связи и запросы

Как устроена таблица базы данных, чем ключ отличается от обычного поля и как по связанным таблицам подсчитать нужные записи — от ОГЭ до ЕГЭ-3.

15 мин чтенияОГЭЕГЭ17 заданий

Коротко

главное за 30 секунд
  1. Таблица = записи (строки) + поля (столбцы); у каждого поля свой тип данных
  2. Первичный ключ однозначно определяет запись: значения не повторяются и не пусты
  3. Связь «один ко многим»: в таблице «многих» хранят внешний ключ — ID записи из другой таблицы
  4. Запрос = условие отбора (И, ИЛИ, НЕ) + действие над отобранными: посчитать, сложить, усреднить
  5. ЕГЭ-3: сначала найдите ID нужных записей в одной таблице, потом отберите по ним записи в другой

Таблица, запись, поле, ключ

База данных — набор связанных таблиц. Каждая строка таблицы называется записью (один объект: один товар, один ученик), каждый столбец — полем (одно свойство: название, цена, класс).

Первичный ключ — поле (или набор полей), значения которого не повторяются и однозначно определяют запись. Обычно это ID (номер). Фамилия на роль ключа не годится: бывают однофамильцы.

Поле имеет тип: целое число, дробное число, текст, дата, логическое значение. От типа зависит, что можно делать со значением: складывать числа можно, а телефон «8-900-…» лучше хранить как текст.

Проверь себя. Как называется строка таблицы базы данных?

Ответ: запись

IDНазваниеКатегорияЦена1ТетрадьКанцелярия302РучкаКанцелярия253КистьТворчество804КраскиТворчество210поле — столбец с одним свойствомзапись(строка)первичный ключ: значения не повторяются
Рис. 1. Таблица базы данных: столбец — поле, строка — запись; ключ (ID) однозначно определяет запись

Связи между таблицами

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

Связь «один ко многим»: одной записи первой таблицы (отдел) соответствует много записей второй (сотрудники). Внешний ключ всегда стоит в таблице «многих».
Ловушка. В условии ЕГЭ-3 фамилию ищут в одной таблице, а нужные числа лежат в другой. Если подсчитать по фамилиям без перехода через ID, получится неверный ответ: у разных людей бывают одинаковые имена.
СотрудникиОтделыIDФамилияОкладОтдел_ID1Иванов6012Петров4523Сидоров5514Орлова703IDНазвание1Продажи2Склад3Бухгалт.внешний ключ Отдел_IDпервичный ключ IDодин отдел — много сотрудников
Рис. 2. Связь «один ко многим»: внешний ключ Отдел_ID в таблице сотрудников ссылается на ID таблицы отделов

Запросы: условие отбора и действие

Запрос к базе состоит из двух частей: что отобрать (условие) и что сделать (показать, посчитать, сложить). Условия соединяют логическими операциями: И — должны выполняться оба, ИЛИ — хотя бы одно, НЕ — отрицание.

SELECT COUNT(*) FROM Товары
WHERE Категория = 'Канцелярия' AND Цена > 20

Читаем: «посчитать записи из таблицы Товары, у которых категория — Канцелярия и цена больше 20».

Пример. В таблице 7 товаров: 4 из категории «Канцелярия» (цены 30, 25, 12, 55) и 3 из «Творчество». Условие «Категория = Канцелярия И Цена > 20» пропустит записи с ценами 30, 25, 55 — итого 3. Товар за 12 отсеян по второй части условия.

ТаблицаТовары7 записейФильтр 1Категория =4 записиФильтр 2Цена > 203 записиДействиеCOUNT(*)ответ 3«Канцелярия»условие «И»: запись должна пройти оба фильтра
Рис. 3. Запрос как воронка: каждое условие отсеивает записи, в конце выполняется действие (COUNT)

Как решать ЕГЭ-3 шаг за шагом

  1. Прочитайте, какие таблицы связаны и по каким полям.
  2. В первой таблице найдите ID нужных записей (например, все дети данного человека).
  3. Во второй таблице отберите записи с этими ID и выполните вычисление.
  4. Если связь цепочкой (внуки, правнуки) — повторите шаги 2–3 нужное число раз.
В реальном ЕГЭ таблицы даны файлом для электронных таблиц. Для отбора удобны фильтр и функции СЧЁТЕСЛИ, СУММЕСЛИ; сложные связи проще прогнать в Python.
Проверь себя. Какое поле однозначно определяет запись в таблице (номер, не повторяется)? Одно слово или два.

Ответ: ключ

Анна (1)Борис (2)Вера (3)Глеб (4)Дарья (5)Егор (6)Жанна (7)детивнуки: 3правнуки
Рис. 4. ЕГЭ-3 по цепочке: дети Анны (ID_родителя = 1) → их дети — три внука; Жанна — правнучка
Практика

Закрепите тему: 17 заданий для ОГЭ и ЕГЭ

От простых к сложным: базовый уровень — 7, повышенный — 8, высокий — 2. Мгновенная проверка, подсказки, подробные решения и тренажёр ошибок.

Решать задания по теме Флеш-карточки