Открыть сервис

Система управления базами данных

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

История

Развитие СУБД прошло несколько этапов, тесно связанных с эволюцией вычислительной техники и потребностей бизнеса.

Ранние системы (1960-е — 1970-е)

Первые системы управления данными появились в 1960-х годах для мэйнфреймов. Данные хранились в виде иерархических (IMS от IBM) или сетевых (IDMS) структур. Эти системы были жёстко привязаны к конкретным приложениям, требовали глубоких знаний физического размещения данных и не поддерживали независимость логического и физического уровней. В 1970 году Эдгар Кодд из IBM предложил реляционную модель данных, что стало революцией: данные стали представляться в виде таблиц, а операции над ними — через математическую реляционную алгебру.

Эра реляционных СУБД (1980-е — 1990-е)

В 1980-х годах коммерческие реляционные СУБД (РСУБД) — Oracle, DB2, Ingres, Sybase, Microsoft SQL Server — стали доминировать на рынке. Ключевым достижением стал язык SQL (Structured Query Language), стандартизированный ANSI и ISO. SQL позволил описывать запросы декларативно, не указывая способ выполнения. В этот же период сформировались требования ACID (атомарность, согласованность, изолированность, долговечность), ставшие основой для транзакционных систем. В 1995 году появилась MySQL (открытая СУБД), а в 1996 — PostgreSQL, заложившие основы для массового распространения открытых решений.

Постреляционные и NoSQL-системы (2000-е — настоящее время)

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

Позже появились NewSQL-системы (CockroachDB, Google Spanner), пытающиеся сочетать ACID-гарантии реляционных СУБД с масштабируемостью NoSQL.

Классификация

СУБД классифицируют по нескольким признакам.

По модели данных

По способу организации хранения

По степени доступности

По типу использования

Устройство и архитектура

Типичная реляционная СУБД состоит из следующих компонентов:

Ядро СУБД

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

Менеджер запросов

Обрабатывает SQL-запросы: парсинг, оптимизация (выбор наиболее эффективного плана выполнения), компиляция или интерпретация. Оптимизатор запросов — критически важный компонент, определяющий скорость выполнения.

Менеджер транзакций

Обеспечивает свойства ACID:

Менеджер целостности

Контролирует соблюдение ограничений (первичные ключи, внешние ключи, уникальность, проверочные условия).

Словарь данных (метаданные)

Хранит информацию о структуре БД: таблицы, столбцы, индексы, права доступа.

Применение

СУБД используются практически во всех областях, где требуется долговременное хранение и обработка структурированных данных:

Примеры популярных СУБД

Реляционные

NoSQL

Облачные

Критика и ограничения

Несмотря на широкое распространение, СУБД имеют ряд недостатков:

Интересные факты

Источники

  1. Кодд Э. Ф. «Реляционная модель данных для больших совместно используемых банков данных» (1970).
  2. Дейт К. Дж. «Введение в системы баз данных» (8-е издание, 2003).
  3. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. «Системы баз данных: полный курс» (2002).
  4. Документация PostgreSQL, MySQL, MongoDB, Redis (официальные сайты).
  5. Стандарт ISO/IEC 9075:2016 (SQL).
  6. Чен П. «Модель „сущность-связь“ — шаг к единому представлению данных» (1976).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →