hostprofi.ru
Подобрать хостинг
Термин

База данных

краткое определение

База данных — система организованного хранения и управления данными. Реляционные СУБД (PostgreSQL, MySQL) обеспечивают ACID-транзакции, NoSQL-базы — горизонтальное масштабирование.

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

Типы баз данных

ТипМодельПримерыПрименение
Реляционные (SQL)Таблицы с отношениямиPostgreSQL, MySQL, MariaDB, MS SQLТранзакции, финансы, CRM
ДокументныеJSON/BSON документыMongoDB, CouchDBCMS, каталоги с гибкой схемой
Ключ-значениеХэш-таблицаRedis, MemcachedКэш, сессии, очереди
КолоночныеСтолбцы вместо строкCassandra, ClickHouseАналитика, Big Data
ПолнотекстовыеИнвертированный индексElasticsearchПоиск по сайту
ГрафовыеУзлы и рёбраNeo4jСоцсети, рекомендации

ACID и транзакции

ACID — четыре свойства надёжных транзакций в реляционных СУБД:

  • Atomicity (атомарность) — всё или ничего: транзакция либо выполняется полностью, либо отменяется.
  • Consistency (согласованность) — БД переходит из одного корректного состояния в другое.
  • Isolation (изоляция) — параллельные транзакции не видят незафиксированные изменения друг друга.
  • Durability (долговечность) — зафиксированные данные сохраняются даже при сбое питания.

NoSQL-базы часто жертвуют частью ACID ради производительности и горизонтального масштабирования (BASE: Basically Available, Soft state, Eventually consistent).

История

Первые системы управления данными появились в 1960-х: IBM IMS (1966) создавалась для лунной программы Apollo. Реляционная модель Эдгара Кодда (Edgar Codd) опубликована в 1970 году в статье «A Relational Model of Data for Large Shared Data Banks» в журнале ACM. SQL стандартизирован в 1986 году (SQL-86). В 2007–2010 годах появились NoSQL-базы данных для работы с Big Data: Cassandra (Facebook, 2008), MongoDB (2009), Redis (2009).

Выбор СУБД для хостинга

MariaDB/MySQL — стандарт для виртуального хостинга. PostgreSQL — для сложных запросов, JSON, полнотекстового поиска, геоданных. SQLite — для приложений без сетевого доступа: не требует отдельного сервера, хранится в одном файле.

Размещение СУБД: на том же сервере — минимальная задержка, но конкурируют за ресурсы. На отдельном VPS — изоляция, независимое масштабирование. Managed-СУБД (RDS, Cloud SQL) — делегирование backups, failover, обновлений провайдеру.

На что обращать внимание

Резервное копирование БД — обязательная часть production-настройки. Индексы ускоряют SELECT, замедляют INSERT/UPDATE — индексировать только те поля, по которым реально ищут. Репликация обеспечивает высокую доступность и читающую нагрузку на реплики. Connection pooling (PgBouncer для PostgreSQL, ProxySQL для MySQL) снижает накладные расходы на открытие новых соединений.

Другие термины