Информатика · 11 классурок · 2026-09-27~8 мин чтения

Информационные модели и базы данных

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

Открыть тренажёрСразу к проверке

Открой электронный журнал: слева фамилии, сверху предметы, внутри оценки. Это не просто красивая таблица — за ней стоит база данных, и она умеет то, чего не умеет таблица в тетради: мгновенно отвечает на вопросы «все пятёрки Соколовой за четверть», «кто пропустил больше пяти уроков», «средний балл 11А по физике». База данных — хранилище, где данные разложены по строгим правилам, поэтому их можно искать и отбирать автоматически. А сам журнал — пример информационной модели: он хранит не учеников, а именно данные о них.

От списка к таблице: записи и поля

Базы, где данные живут в таблицах, называют реляционными — от слова «отношение»: каждая таблица описывает один тип объектов. Запись — одна строка: данные ровно одного объекта, одного ученика. Поле — один столбец: одна характеристика, фамилия или дата рождения. У каждого поля есть тип: число, текст, дата — и база не даст записать «пять» в поле цены. Ключевое правило: все записи таблицы устроены одинаково, набор полей у них один и тот же.

№ФамилияКлассДата рождения
1Соколова11А14.03.2009
2Гришин11Б02.11.2008
3Лазарева11А27.06.2009

Сколько данных в таблице

Прикинем журнал целой школы. В базе 850 учеников, в таблице «Ученики» 14 полей: фамилия, имя, класс, дата рождения, номер личного дела и ещё девять характеристик. Одна эта таблица хранит 850 умножить на 14 — 11 900 значений. Таблица «Оценки» заметно больше: за год у каждого ученика 24 итоговые оценки по предметам и четвертям, значит записей 850 умножить на 24 — 20 400, а в каждой по 4 поля. Итого больше 80 000 ячеек, и это оценки лишь одного учебного года. Региональные журналы считают миллионы записей, поэтому их и держат в СУБД, а не в файлах, которые открываются по очереди.

У каждого поля есть тип данных, и база следит за ним сама. Поле «Оценка» — целое число: записать туда «пять» словами база не позволит. Поле «Дата рождения» — дата, и сравнение дат работает правильно: 14.03.2009 позже 02.11.2008, хотя на глаз это неочевидно. Поле «Сдаёт ГИА» — логическое: да или нет, без вариантов посередине. Текстовые поля хранят фамилии и названия, числовые — количества, а попытка вписать букву в число закончится ошибкой ещё на вводе. Типы экономят память и отсекают половину ошибок заполнения — именно поэтому их задают на этапе проектирования базы.

Заметь, как удобно растёт такая база. Завели новый факультатив — появились новые записи в таблице «Записи», а не новые столбцы во всей базе. Добавился одиннадцатый «В» — просто новые строки в «Учениках». Набор полей одинаков для всех строк, поэтому база знает, где что лежит: не перечитывает весь файл, а идёт прямо к нужным полям, как читатель по оглавлению книги. Именно эта предсказуемость структуры позволяет СУБД отвечать на запросы за доли секунды даже на миллионах записей.

Ключи: первичный и внешний

Как база отличает двух Соколовых в параллели? По первичному ключу — полю (или набору полей), значение которого уникально для каждой записи и не меняется. Обычно это искусственный номер: личное дело, ID, штрихкод библиотечной книги. Внешний ключ — это ссылка на запись другой таблицы: в таблице оценок хранится не фамилия, а номер ученика. Поменялась фамилия — оценки остались привязаны к тому же человеку, потому что номер не трогали. Так таблицы собираются в единую модель без дублирования.

Запись#
одна строка таблицы: данные одного объекта
Поле#
один столбец: одна характеристика объекта
Первичный ключ#
поле, однозначно определяющее запись
Внешний ключ#
поле-ссылка на запись другой таблицы
Запрос#
правило отбора записей по условию

Запросы: достаём только нужное

Запрос — это условие, по которому база отбирает записи: «Класс = 11А» или «Оценка больше 3 И Предмет = физика». Результат запроса — таблица из подошедших строк, и её можно тут же отсортировать по любому полю. Составные условия собираются из простых связками И и ИЛИ — это та же алгебра логики: И сужает отбор, ИЛИ расширяет. Языки запросов вроде SQL — просто формальная запись таких условий: SELECT берёт поля, WHERE ставит фильтр.

Собери запрос по шагам
  1. Определи таблицу: оценки ищем в «Оценки», а не в «Ученики».
  2. Запиши условие через поля: Класс = 11А И Оценка = 5.
  3. Проверь связки: И сужает отбор, ИЛИ делает его шире.
  4. Добавь сортировку результата, если порядок важен: по фамилии.

Разбери ещё один запрос устно: «Класс = 11Б ИЛИ Класс = 11А, Оценка = 5». Связка ИЛИ соберёт пятёрки из двух классов сразу — строк в ответе станет больше, а не меньше. Начинающие часто ставят ИЛИ там, где просят одновременное выполнение двух условий, и получают раздутый список. Проверка простая: спроси себя, должны ли условия выполняться одновременно. Должны — пиши И.

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

Типовая задача экзамена звучит так: дана таблица «Ведомость» с полями Класс, Ученик, Предмет, Оценка; нужно вывести номера учеников 11А, у которых оценка по информатике равна пяти, и расставить их по алфавиту. Запишем запрос на SQL — языке запросов, который понимает любая учебная СУБД. Слова SELECT, FROM, WHERE и ORDER BY называются ключевыми: каждое отвечает за свою часть запроса, и порядок их строго закреплён.

Прогон запроса по шагам
  1. Называем источник данных: FROM Ведомость — все нужные поля лежат в одной таблице.
  2. Отмечаем, что вывести: SELECT Ученик, Оценка.
  3. Ставим первый фильтр: WHERE Класс = «11А» — остаются записи только одиннадцатого «А».
  4. Добавляем через И: AND Предмет = «информатика», AND Оценка = 5 — каждое условие сужает отбор.
  5. Сортировка: ORDER BY Ученик — номера выстроятся по возрастанию, то есть по алфавиту фамилий.
  6. Проверка: убери любой фильтр — запрос вернёт лишние строки. Так на экзамене ловят потерянное условие.

Связи один ко многим: база без дублирования

Между таблицами «Ученики» и «Оценки» связь один ко многим: у одного ученика много оценок, но каждая оценка принадлежит ровно одному ученику. На стороне «один» стоит первичный ключ, на стороне «многих» — внешний. В настоящем журнале связей больше: «Учитель» — «Уроки», «Предмет» — «Оценки», «Класс» — «Ученики». Все они устроены по одной схеме: в подчинённой таблице хранится номер записи главной, а не её текстовое название.

Теперь понятна выгода. Если Соколова сменит фамилию, исправляют одну запись в «Учениках» — а сотня её оценок останется на месте, ведь в них хранится номер, а не фамилия. Если в школе появился новый предмет, таблица «Ученики» не раздувается новыми столбцами: предмет — это просто запись в своей таблице. Такой порядок называется нормализацией, и от тебя на экзамене ждут именно этого взгляда: каждое данное лежит в одном месте, а таблицы ссылаются друг на друга ключами.

Словарь урока

СУБД#
система управления базами данных: программа, которая хранит таблицы и выполняет запросы
SQL#
язык запросов к реляционной базе: SELECT, FROM, WHERE, ORDER BY
Тип поля#
вид данных в столбце: число, текст, дата, логическое значение
Фильтр#
условие, которое пропускает только подходящие записи
Сортировка#
расстановка отобранных записей по значениям поля
Нормализация#
правило проектирования: каждое данное хранится в одном месте

Как это спрашивают на ЕГЭ

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

  • Посчитать число ячеек: поля умножить на записи, например 12 полей и 250 записей — это 3000 значений.
  • Выбрать первичный ключ: ищи уникальное и постоянное поле — номер личного дела, штрихкод, номер билета.
  • Составить условие запроса: переведи фразу «пятёрки по физике в 11Б» в связку Класс = «11Б» И Предмет = «физика» И Оценка = 5.
  • Найти запись по внешнему ключу: номер 214 в таблице оценок — это ученик с номером 214 в таблице «Ученики».
  • Отличить И от ИЛИ: И сужает отбор до пересечения, ИЛИ объединяет два списка в один.
Попыток: 0 · Найдено: 0 из 5
Термины
Определения
Собери пары: термин и его смысл
Найди, что означает каждое понятие баз данных
Утверждение 1 из 6
Запись — это одна строка таблицы базы данных.
Верно или нет?
Шесть утверждений про базы данных — реши, правда ли это
Выучено: 0 из 5 · В колоде: 5
Карточки: язык баз данных
Переверни карточку и проверь себя

Проверь себя

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

В таблице 12 полей и 250 записей. Сколько всего значений (ячеек) хранит таблица?

Что обязана обеспечивать пара значений первичного ключа в одной таблице?

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

Запрос отбирает записи с условием «Оценка = 5». В журнале 24 записи, из них 9 пятёрок. Сколько записей вернёт запрос?

Какое поле лучше выбрать первичным ключом в таблице «Ученики»?

Внешний ключ указывает на запись в другой таблице.

В таблице «Оценки» четыре поля: №, Фамилия, Предмет, Оценка. Записей 35. Сколько ячеек данных хранит таблица?

Соедини ключевое слово SQL с его ролью в запросе.

Нажми на элемент слева, затем на его пару справа. Повторное нажатие отменяет связь.

Было понятно? Скажи — так мы видим, какие темы переписать.

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

Чем база данных отличается от обычной таблицы?

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

Почему фамилия — плохой первичный ключ?

Фамилии повторяются и меняются. Ключ обязан однозначно определять запись и не меняться со временем, поэтому берут искусственный номер: личное дело, ID, штрихкод.

Что вернёт запрос без условия?

Все записи таблицы. Условие — это фильтр: без него запрос пропускает всё подряд, как поиск без параметров.

Зачем нужен внешний ключ?

Он связывает две таблицы: в таблице оценок хранится не фамилия, а номер ученика из таблицы «Ученики». Поменялась фамилия — оценки остались привязаны к тому же человеку.