Перейти к содержанию
Innovialabs

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

Основы4 мин

Коротко

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

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

База данных — это организованный набор информации, который хранится так, чтобы его было легко находить, изменять и защищать. Список клиентов, каталог товаров, история заказов — всё это данные, и почти любое приложение держит их в базе.

Важно различать два понятия:

  • База данных — сами данные и их структура.
  • СУБД (система управления базами данных) — программа, которая с этими данными работает: PostgreSQL, MySQL, MongoDB, Redis и другие.

Приложение не читает файлы на диске напрямую. Оно отправляет СУБД запрос — «найди все заказы клиента за май» — и получает готовый ответ.

Почему не обычная таблица Excel

Пока данных мало и с ними работает один человек, Excel справляется. Проблемы начинаются, когда:

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

СУБД решает именно эти задачи: одновременный доступ, скорость поиска, целостность и права доступа.

Таблицы, строки и столбцы

Самый распространённый тип баз — реляционные. Данные в них лежат в таблицах, похожих на листы Excel, но со строгими правилами.

Возьмём интернет-магазин:

idnameemailcity
1Алияaliya@example.comТашкент
2Бобурbobur@example.comСамарканд
  • Таблица (customers) описывает один тип объектов — клиентов.
  • Строка (запись) — один конкретный клиент.
  • Столбец (поле) — одно свойство: имя, email, город. У каждого столбца есть тип: число, текст, дата.
  • Первичный ключ (id) — уникальный номер строки, по которому её можно однозначно найти.

Заказы хранятся в отдельной таблице orders, и в каждом заказе есть поле customer_id — ссылка на клиента. Это связь между таблицами. Поэтому данные клиента записаны один раз, а не копируются в каждый заказ.

В CRM логика та же: таблицы contacts, deals, tasks, связанные между собой ключами.

Как работает запрос

Для реляционных баз запросы пишут на языке SQL:

SELECT name, email
FROM customers
WHERE city = 'Ташкент';

Что происходит внутри:

  1. СУБД разбирает запрос и проверяет, что таблица и столбцы существуют.
  2. Планировщик выбирает самый быстрый способ выполнения: прочитать всю таблицу или воспользоваться индексом.
  3. Данные читаются из памяти или с диска, фильтруются и возвращаются приложению.

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

Как данные хранятся и не теряются

  • Данные лежат в файлах на диске, а часто используемые части кэшируются в оперативной памяти.
  • Изменения сначала записываются в журнал (WAL), поэтому после сбоя питания база восстанавливается.
  • Транзакция объединяет несколько действий в одно: «списать деньги и создать заказ» выполнится целиком или не выполнится вовсе.
  • Резервные копии и репликация (копия базы на другом сервере) защищают от потери диска или сервера.

Основные семейства баз данных

СемействоКак хранит данныеПримерыКогда подходит
Реляционные (SQL)Таблицы со связямиPostgreSQL, MySQLЗаказы, платежи, CRM, большинство бизнес-систем
ДокументныеJSON-подобные документыMongoDBГибкая структура, каталоги, контент
Ключ-значениеПары «ключ → значение»RedisКэш, сессии, очереди
КолоночныеДанные по столбцамClickHouseАналитика по большим объёмам
ГрафовыеУзлы и связиNeo4jСоцсети, рекомендации
ПоисковыеИнвертированный индексElasticsearchПолнотекстовый поиск

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

Частые ошибки новичков

  • Хранить всё в одной огромной таблице с повторяющимися данными.
  • Не задавать типы и ограничения — потом в поле «дата» оказывается текст.
  • Не настраивать резервные копии до первой потери данных.
  • Выбирать модную базу вместо той, что подходит под задачу.

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

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

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.