Menu
Coddy logo textTech

Что такое база данных?

База данных это упорядоченный набор данных, хранящийся на компьютере так, чтобы программы могли быстро и надёжно находить, добавлять, изменять и удалять их. Ею управляет программа, которая называется системой управления базами данных (СУБД), например PostgreSQL, MySQL, SQLite или MongoDB.

Автор: Kevin Spektor, Сооснователь и CTO

Обновлено 24 сентября 2026 г.

Когда ты входишь на сайт, ему нужно найти твою учётную запись среди миллионов других, проверить пароль и загрузить твои настройки, и всё это за несколько миллисекунд. Сайт не открывает текстовый файл и не читает его строка за строкой. Он отправляет в базу данных запрос вроде SELECT * FROM users WHERE email = 'ana@example.com', и база данных сразу переходит к нужной строке с помощью индекса, почти как предметный указатель в конце книги.

Как работает база данных

Вместе работают две части. База данных это данные, упорядоченные в заданную структуру. Система управления базами данных (СУБД) это программа, которая хранит эти данные в файлах, поддерживает их согласованность и отвечает на запросы. PostgreSQL, MySQL и SQLite это СУБД; твой список клиентов это база данных.

В реляционной базе данных данные хранятся в таблицах. У каждой таблицы есть столбцы (имя, страна, баллы) и строки (по одной на пользователя). Запрос проходит такие шаги:

  1. Твоя программа отправляет запрос, обычно написанный на SQL (Structured Query Language, язык структурированных запросов).
  2. СУБД разбирает запрос и планирует, как на него ответить: какие таблицы читать и может ли индекс позволить пропустить большую часть строк.
  3. Она читает данные с диска страницами фиксированного размера (по умолчанию 4 096 байтов в SQLite, 8 КБ в PostgreSQL), а часто используемые страницы держит в памяти.
  4. Она фильтрует, сортирует и объединяет строки, а затем возвращает результат.

Python поставляется вместе с SQLite, поэтому настоящую базу данных можно запустить прямо здесь:

Kenji 340
Omar 340
Ana 120
users: 4 average points: 222.5

Программа нигде не говорит, как искать. Она описывает нужный результат, а СУБД решает, как его получить. В этом главное отличие запроса к базе данных от цикла по списку.

Виды баз данных

ВидКак хранит данныеПримерыТипичное применение
Реляционные (SQL)Таблицы из строк и столбцов, связанные ключамиPostgreSQL, MySQL, SQLite, Oracle, SQL ServerПользователи, заказы, платежи: большинство приложений
ДокументныеДокументы, похожие на JSONMongoDB, Firestore, CouchDBЗаписи, у которых набор полей меняется от записи к записи
Ключ-значениеЗначение, которое ищется по одному ключуRedis, DynamoDBКэши, сессии, счётчики
Колоночные (wide-column)Строки с гибким набором столбцов, распределённые по многим серверамCassandra, HBaseОчень большие объёмы записи
ГрафовыеУзлы и связи между нимиNeo4jСоциальные сети, рекомендации
Временных рядовИзмерения, проиндексированные по времениInfluxDB, TimescaleDBМетрики, показания датчиков
ВекторныеСписки чисел (эмбеддинги)pgvector, Pinecone, MilvusПоиск похожего для функций ИИ

Всё, что не относится к реляционным, часто объединяют под названием NoSQL. Реляционные базы данных остаются выбором по умолчанию для большинства приложений, потому что таблицы, ограничения и SQL хорошо покрывают широкий круг задач. Многие продукты ещё и совмещают виды: PostgreSQL хранит JSON-документы, а pgvector добавляет в него векторный поиск.

Транзакции: всё или ничего

Перевод денег от Аны к Бену требует двух изменений: прибавить Бену и вычесть у Аны. Если программа упадёт между ними, деньги возьмутся из ниоткуда. Транзакция объединяет изменения так, чтобы сохранились либо все, либо ни одного. Здесь второе изменение нарушает правило (баланс не может стать меньше нуля), поэтому база данных отменяет и первое:

transfer 30 done
{'ana': 20, 'ben': 30}
transfer 40 failed: CHECK constraint failed: balance >= 0
{'ana': 20, 'ben': 30}

40 были прибавлены Бену, а затем забраны обратно, поэтому итоги по-прежнему сходятся. Реляционные базы данных обещают для транзакций четыре свойства, известные как ACID: атомарность (всё или ничего), согласованность (правила вроде CHECK всегда соблюдаются), изолированность (два пользователя, одновременно выполняющие транзакции, не видят незавершённую работу друг друга) и долговечность (сохранённое изменение переживает сбой или отключение питания).

База данных, электронная таблица или файл

Текстовый или CSV-файлЭлектронная таблицаБаза данных
РазмерСколько может загрузить твоя программа1 048 576 строк на лист в ExcelМиллиарды строк
Много пишущих одновременноНетОграниченноДа, с блокировками и транзакциями
Поиск одной записиПрочитать весь файлФильтр или поискПоиск по индексу
Правила для данныхНетНеобязательная проверкаТипы, ограничения, внешние ключи
Как задавать вопросыПисать свой кодФормулыSQL или API запросов

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

Как базы данных защищают данные

СУБД записывает каждое изменение в журнал до того, как коснуться файлов данных (журнал упреждающей записи, write-ahead log), поэтому после сбоя она может повторить или отменить незавершённую работу. PostgreSQL умеет хранить контрольную сумму для каждой страницы размером 8 КБ и сообщать об ошибке контрольной суммы, когда выходящий из строя диск возвращает повреждённые данные. Пользователи и права доступа определяют, кто может читать или изменять какие таблицы, а репликация хранит копии на других серверах. Программы к тому же должны передавать ввод пользователя как параметры, как заполнители ? выше, и никогда не вставлять его прямо в текст SQL, потому что именно так происходят атаки SQL-инъекций.

Частые заблуждения

  • «SQL это база данных». SQL это язык. PostgreSQL, MySQL и SQLite это базы данных, которые его понимают.
  • «NoSQL значит совсем без SQL». Термин обычно читают как «not only SQL» (не только SQL), и у нескольких NoSQL-баз данных есть языки запросов, похожие на SQL, например CQL у Cassandra.
  • «База данных это всегда большой сервер». SQLite это один файл, который программа открывает напрямую, вообще без сервера. Она работает внутри каждого телефона на Android и iOS.
  • «Данные в базе данных в безопасности навсегда». База данных защищает от сбоев, но не от того, кто по ошибке выполнит DELETE. Резервные копии всё равно нужны.

Что читать дальше

Курс SQL учит запросам с самого первого SELECT. Документация по SQLite описывает следующие шаги: что такое SQLite, создание таблицы, индексы и защита от SQL-инъекций. Чтобы увидеть, как данные размещаются на диске, прочитай что такое байт, а страница про контрольную сумму объясняет, как обнаруживаются повреждённые страницы.

Часто задаваемые вопросы

Что такое база данных простыми словами?
База данных это место, где программа хранит информацию, чтобы быстро находить её снова. Представь картотеку с идеальным указателем: ты просишь «все заказы за прошлую неделю» и получаешь ответ за миллисекунды, даже если записей миллионы.
Какие есть примеры баз данных?
Контакты в твоём телефоне хранятся в базе данных: и Android, и iOS поставляются с SQLite. Банк хранит счета клиентов в базе данных вроде Oracle или PostgreSQL, а Википедия хранит свои статьи в MariaDB. Интернет-магазин держит товары, покупателей и заказы в связанных таблицах.
Какие четыре вида баз данных существуют?
Официального списка из четырёх нет. Чаще всего называют реляционные базы данных (таблицы и SQL), документные базы данных (записи, похожие на JSON), хранилища ключ-значение (значение ищется по ключу) и графовые базы данных (узлы и связи). В старых учебниках перечисляют ещё иерархические и сетевые базы данных.
Какие 5 баз данных самые популярные?
Oracle, MySQL, Microsoft SQL Server, PostgreSQL и MongoDB уже много лет занимают первые пять мест рейтинга популярности DB-Engines. Среди разработчиков PostgreSQL с 2023 года самая используемая база данных в опросе Stack Overflow Developer Survey, а SQLite самая распространённая, поскольку она встроена в телефоны и браузеры.
Чем база данных отличается от СУБД?
База данных это сами данные, упорядоченные в таблицы или документы. СУБД это программа, которая хранит эти данные на диске и отвечает на запросы к ним, например PostgreSQL или MySQL. Часто «базой данных» называют и то и другое.
Нужно ли учить SQL, чтобы работать с базой данных?
Для реляционных баз данных да: с помощью SQL создают таблицы и задают вопросы к данным, а основы SQL осваиваются за несколько дней. Многие программы используют библиотеку, которая пишет SQL за тебя, но знание SQL сильно помогает понять, что эта библиотека делает и почему запрос работает медленно.
Coddy programming languages illustration

Учитесь программировать с Coddy

НАЧАТЬ