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

Реляционная СУБД

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

История

Теоретические основы

Концепция реляционной модели данных была предложена английским математиком Эдгаром Франком Коддом в 1970 году в статье «A Relational Model of Data for Large Shared Data Banks», опубликованной в журнале Communications of the ACM. Кодд сформулировал 12 правил (позже расширенных до 13), которым должна соответствовать «истинно реляционная» СУБД. Его идея заключалась в том, чтобы отделить логическую структуру данных от физического способа их хранения, используя математические понятия множеств и предикатов.

Ранние реализации

Первые коммерческие реляционные СУБД появились в конце 1970-х — начале 1980-х годов. Ключевыми проектами стали:

Эра коммерциализации и стандартизации

В 1986 году язык SQL был принят Американским национальным институтом стандартов (ANSI) в качестве стандарта, что унифицировало разработку приложений. В 1990-х годах на рынке доминировали несколько крупных игроков: Oracle Database, IBM DB2, Microsoft SQL Server (выпущен в 1989 году для OS/2) и Sybase Adaptive Server Enterprise (позже приобретённый SAP). Параллельно развивались открытые системы, самой значимой из которых стала PostgreSQL (начало разработки — 1986 год, под названием Postgres). В 1995 году была выпущена MySQL (изначально под лицензией GPL), которая стала стандартом для веб-приложений.

Современный этап

С начала 2000-х годов наблюдается конкуренция между реляционными СУБД и новыми классами систем (NoSQL, NewSQL), ориентированными на горизонтальное масштабирование и работу с неструктурированными данными. В ответ на это реляционные СУБД активно развивают встроенную поддержку JSON-документов, геопространственных данных, колоночного хранения и облачных сервисов (например, Amazon Aurora, Google Cloud SQL, Yandex Managed Service for PostgreSQL). Крупные российские разработки: Postgres Professional (Postgres Pro Enterprise), Логос (СУБД для госсектора) и RED Database (на базе PostgreSQL).

Основные характеристики

Модель данных

Язык SQL

SQL — это декларативный язык, используемый для управления данными в реляционных СУБД. Основные подмножества:

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

Реляционные СУБД гарантируют надёжность через свойства ACID:

Индексы и оптимизация запросов

Для ускорения поиска используются различные типы индексов: B-деревья, хеш-индексы, GiST (Generalized Search Tree), GIN (Generalized Inverted Index) и пространственные индексы (R-деревья). Оптимизатор запросов (cost-based или rule-based) выбирает наиболее эффективный план выполнения SQL-запроса, учитывая статистику по данным, наличие индексов и размеры таблиц.

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

По архитектуре различают:

  1. Традиционные (настольные) — для одного пользователя или малой группы (Microsoft Access, Paradox, LibreOffice Base). Ограничены по масштабируемости и параллельности.
  2. Клиент-серверные — ядро СУБД работает на центральном сервере, а пользователи подключаются через клиентские приложения (Oracle, MS SQL Server, PostgreSQL, MySQL). Этот тип является доминирующим в корпоративных системах.
  3. Встраиваемые — библиотека, встраиваемая непосредственно в приложение, не требующая отдельного серверного процесса (SQLite, Firebird Embedded). Применяются в мобильных приложениях, веб-браузерах и встроенных системах.
  4. Объектно-реляционные — расширяют модель данных поддержкой объектно-ориентированных концепций: пользовательские типы, методы, наследование таблиц (PostgreSQL, Oracle с опциями объекта).
  5. Распределённые — данные физически хранятся на нескольких узлах, но логически представляют единую базу (CockroachDB, Google Spanner, Greenplum).

По типу лицензирования:

Применение

Бизнес и корпоративные системы

Реляционные СУБД широко используются в ERP, CRM, бухгалтерском учёте, управлении складом и персоналом. Примеры: SAP ECC (на DB2), 1С:Предприятие (на MS SQL Server или PostgreSQL), Oracle E-Business Suite.

Веб-приложения и электронная коммерция

Большинство популярных веб-сайтов (включая социальные сети, блоги, интернет-магазины) хранят данные в реляционных СУБД. Например, MySQL является стандартом для многих CMS (WordPress, Joomla, Drupal), а PostgreSQL выбирают для высоконагруженных проектов (Reddit, Instagram, Skype).

Государственные и финансовые системы

В государственных и банковских системах реляционные СУБД (особенно Oracle и MS SQL Server) используются из-за требований к надёжности, стандартизации и аудиту. В России в рамках импортозамещения с 2015 года активно внедряются решения на базе PostgreSQL (например, в Федеральном казначействе, Пенсионном фонде РФ, Федеральной налоговой службе).

Научные и геоинформационные системы

PostgreSQL с расширением PostGIS является одной из самых мощных открытых СУБД для хранения и анализа пространственных данных. Используется в научных проектах (ГИС, астрономия, биология) и в коммерческих картографических сервисах (Яндекс.Карты, 2ГИС).

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

НазваниеРазработчикЛицензияКлючевые особенности
Oracle DatabaseOracle CorporationПроприетарнаяМаксимальная отказоустойчивость, Real Application Clusters (RAC), многопоточность, шифрование
Microsoft SQL ServerMicrosoftПроприетарнаяИнтеграция с Azure, Power BI, Analysis Services, компонент Database Engine
PostgreSQLPostgreSQL Global Development GroupОткрытая (PostgreSQL License)Объектно-реляционная архитектура, расширяемость (JSON, геоданные, полный текст), поддержка SQL/MED (управление внешними данными)
MySQLOracle CorporationОткрытая (GPL) / КоммерческаяСкорость чтения, репликация «master-slave», встроенная поддержка в PHP и многих CMS
SQLiteD. Richard HippОбщественное достояниеВстраиваемая, без серверного процесса, единый файл БД, минимальные системные требования
FirebirdFirebird FoundationОткрытая (IPL и IDPL)Полная поддержка SQL 2008, многопоколенная архитектура (MVCC), низкое потребление памяти
Postgres Professional (Postgres Pro)Postgres Professional (Россия)Проприетарная / ОткрытаяРасширения для оптимизации (асинхронный WAL, продвинутое сжатие), соответствие стандартам ФСТЭК, совместимость с PostgreSQL
RED DatabaseRED Soft (Россия)ПроприетарнаяТиражирование, поддержка кластеров, интеграция с 1С, ориентация на промышленное импортозамещение

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

Основные недостатки реляционных СУБД:

Источники

  1. Кодд, Э. Ф. (1970). «A Relational Model of Data for Large Shared Data Banks». Communications of the ACM, 13(6), 377–387.
  2. Date, C. J. (2013). An Introduction to Database Systems (8-е изд.). Addison-Wesley.
  3. PostgreSQL Global Development Group. PostgreSQL 16 Documentation. URL: postgresql.org/docs/current/.
  4. Oracle Corporation. Oracle Database Concepts. Oracle Help Center.
  5. Microsoft. SQL Server technical documentation. Microsoft Docs.
  6. Ramakrishnan, R., Gehrke, J. (2002). Database Management Systems (3-е изд.). McGraw-Hill.
  7. Материалы по СУБД Postgres Pro и RED Database из официальных сайтов разработчиков (Postgres Professional, RED Soft).

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

На главную BFOmetr →