Базы данных: понятие, модели, СУБД
Список одногруппников в блокноте ещё можно найти. Тысячи заказов интернет-магазина с историей оплат, скидками и возвратами - уже нет. Данные нужно хранить так, чтобы быстро искать, не плодить противоречия и не потерять всё после сбоя. Для этого и придумали базы данных.
База данных (БД) - организованная совокупность данных, хранимая по определённым правилам и предназначенная для хранения, поиска и обработки информации.
Рядом всегда появляется второй термин.
СУБД (система управления базами данных) - программа или комплекс программ, которые создают БД, наполняют её, изменяют, защищают и выдают ответы на запросы.
Путают часто: «Access - это база». Access - СУБД (и среда), а база - файл/набор данных внутри неё. MySQL, PostgreSQL, SQLite, MS SQL Server - тоже СУБД. Без СУБД «голые» таблицы на диске ещё не дают удобного языка запросов, транзакций и прав доступа.
Зачем БД, если есть Excel
Таблица в редакторе отлично живёт, пока строк немного и пользователь один. Дальше всплывают грабли:
- один и тот же клиент записан трижды с разными телефонами;
- два человека правят файл одновременно и затирают правки друг друга;
- поиск «все заказы за март по городу X» превращается в ручной фильтр на час;
- нет нормального журнала «кто что изменил».
БД с СУБД как раз про согласованность, одновременный доступ, запросы и разграничение прав. Excel при этом никуда не исчезает: его часто используют как витрину отчёта, который выгрузили из базы.
Данные, информация, знания (в контексте БД)
В информатике данные - зафиксированные сведения (числа, строки, даты). Информация появляется, когда данные осмыслены в задаче: «этот клиент должен 3 000 ₽». В БД хранят данные; смысл запросам придаёт человек или прикладная программа.
На экзамене иногда ждут именно эту лестницу. Не углубляйтесь в философию: достаточно отличить сырую запись от ответа на вопрос бизнеса/учёбы.
Модели данных
Модель данных задаёт, в каком виде мы представляем сущности и связи.
- Иерархическая - дерево: предок и потомки. Удобно для оргструктур, жёстко для связей «многие ко многим».
- Сетевая - более свободные связи между записями, исторически важна, в массовой практике уступила реляционной.
- Реляционная - данные в таблицах (отношениях), строки - записи, столбцы - поля. Связи через ключи. Сегодня базовая школьно-вузовская модель.
- Документная / ключ-значение / графовая (часто под зонтиком NoSQL) - другие формы: JSON-документы, пары key-value, узлы и рёбра. Их упоминают, когда реляционная схема для задачи слишком тесная или наоборот избыточная.
Если в билете не уточнили модель, почти всегда имеют в виду реляционную.
Реляционная база: таблицы, ключи, связи
Таблица (отношение) - набор строк одного типа с фиксированными столбцами.
Первичный ключ - поле или набор полей, однозначно определяющие строку (например, код студента).
Внешний ключ - поле, которое ссылается на первичный ключ другой таблицы и тем самым задаёт связь.
Пример на пальцах. Таблица Студенты: id, ФИО, группа. Таблица Оценки: id, student_id, предмет, балл. Поле student_id - внешний ключ к Студенты.id. Так оценка «пришита» к конкретному человеку, а не болтается текстом «Вася из третьей».
Типы связей:
- 1:1 - один к одному (человек ↔ паспорт в упрощённой схеме);
- 1:N - один ко многим (группа ↔ студенты);
- M:N - многие ко многим (студенты ↔ курсы). Для M:N обычно делают промежуточную таблицу записей о связях.
Нормализация - приведение схемы к виду, где меньше дублирования и аномалий обновления. В школе достаточно идеи: не хранить телефон группы в каждой строке студента, если телефон общий; вынесите группу в отдельную таблицу.
Запросы и SQL
Большинство реляционных СУБД понимают язык SQL. Базовые операции:
SELECT- выбрать данные;INSERT- вставить;UPDATE- изменить;DELETE- удалить.
Пример смысла, не привязанный к конкретной диалекту:
SELECT FIO, ball FROM Ocenki JOIN Studenty ... WHERE predmet = 'Информатика';
На контрольной часто дают схему таблиц и просят сформулировать запрос словами или псевдокодом SQL. Важнее правильно выбрать таблицы и условие, чем вызубрить все ключевые слова наизусть.
Свойства надёжной работы: транзакции
Представьте перевод денег: списать со счёта A и зачислить на B. Если после списания свет моргнул, баланс «пропал». Транзакция объединяет шаги так, чтобы либо выполнились все, либо ни одного.
В учебниках всплывает аббревиатура ACID (атомарность, согласованность, изолированность, долговечность). Для ответа уровня колледжа/первого курса достаточно объяснить атомарность на примере перевода и сказать, что СУБД помогает не оставлять данные «на полпути».
Пользователи и роли
- Администратор БД - установка, права, резервные копии, производительность.
- Разработчик / проектировщик - схема таблиц, запросы, связь с приложением.
- Конечный пользователь - вводит и смотрит данные через форму, сайт, отчёт, часто не видя SQL.
Права режут доступ: кассир видит продажи, но не зарплатную ведомость. Это уже пересечение с безопасностью и политиками организации.
Примеры СУБД
- SQLite - лёгкая, часто внутри мобильных приложений и маленьких программ;
- MySQL / MariaDB, PostgreSQL - популярны на сайтах и серверах;
- Microsoft SQL Server, Oracle - крупные корпоративные системы;
- Microsoft Access - привычный пример в школьном/офисном курсе.
Выбор СУБД зависит от нагрузки, бюджета, экосистемы и требований к надёжности. Универсального «лучшего» имени для любого билета нет.
БД и информационные системы
Банк, склад, электронный журнал, сайт с личным кабинетом - это прикладные информационные системы. БД внутри них - слой хранения. Рядом работают интерфейс, бизнес-логика, иногда очередь задач и кэш. Ломать эти слои в голове вредно: «сайт тормозит» может быть виноват запрос к БД, а может - картинки на фронте.
С сетевой стороны клиент часто ходит к серверу приложений, а тот уже говорит с СУБД. Про каналы связи см. компьютерные сети и интернет.
Частые ошибки в ответах
- Путают БД и СУБД.
- Называют любую таблицу Excel «реляционной БД» без ключей, ограничений и СУБД.
- Забывают внешний ключ, описывая связь 1:N.
- Пишут, что SQL - это СУБД.
- Сводят всё к перечислению логотипов без функций и модели данных.
Ещё одна ловушка: «нормализация всегда до конца». На практике иногда оставляют управляемую избыточность ради скорости. В школьном ответе лучше сначала показать каноничную нормализованную схему, а оговорку про производительность добавлять только если спрашивают.
Краткая шпаргалка
- БД - данные по правилам; СУБД - программа для работы с ними.
- Базовая модель в курсе - реляционная (таблицы + ключи).
- 1:1, 1:N, M:N; для M:N нужна связующая таблица.
- SQL: SELECT / INSERT / UPDATE / DELETE.
- Транзакции спасают от «половины операции».
- Excel удобен для малых задач; БД - когда важны целостность, доступ многих пользователей и сложные запросы.
Для закрепления набросайте на бумаге две-три таблицы своей учебной группы (студенты, предметы, оценки) и проставьте ключи. Если получается рассказать связи вслух без каши, тема обычно уже «встала».