RDB
RDB (сокр. от англ. Relational Database, реляционная база данных) — это совокупность структурированных данных, организованных в соответствии с реляционной моделью, в которой информация представлена в виде набора взаимосвязанных таблиц. Основой реляционного подхода является математическая теория отношений (relations), разработанная Эдгаром Коддом в 1970 году. RDB обеспечивает целостность, непротиворечивость и эффективный доступ к данным через операции реляционной алгебры, реализованные в системах управления реляционными базами данных (СУБД).
История возникновения
Теоретические основы
Концепция реляционной модели была впервые предложена британским учёным Эдгаром Ф. Коддом в статье «A Relational Model of Data for Large Shared Data Banks», опубликованной в 1970 году. Кодд, работавший в исследовательской лаборатории IBM, предложил отказаться от иерархических и сетевых моделей, доминировавших в то время, в пользу математически строгой модели, основанной на теории множеств и предикатов. Ключевыми требованиями стали: представление данных в виде отношений (таблиц), поддержка операций реляционной алгебры (выборка, проекция, соединение) и обеспечение независимости данных от физического хранения.
Первые реализации
Первая коммерческая реляционная СУБД — Oracle (изначально называлась «Oracle V2») — была выпущена в 1979 году компанией Relational Software, Inc. (позднее переименована в Oracle Corporation). В 1981 году IBM представила систему SQL/DS, а в 1983 году — DB2, которая стала одной из самых влиятельных реляционных СУБД. В 1986 году Американский национальный институт стандартов (ANSI) принял язык SQL (Structured Query Language) в качестве стандарта для работы с реляционными базами данных, что унифицировало взаимодействие с различными СУБД.
Эволюция и современное состояние
В 1990-х годах реляционные базы данных стали доминирующей технологией хранения данных в корпоративном секторе. Появились как проприетарные системы (Microsoft SQL Server, Sybase, Informix), так и открытые решения (MySQL, PostgreSQL). В 2000-х годах с ростом интернет-сервисов и больших данных возникли альтернативные модели — NoSQL (нереляционные базы данных), однако RDB остаются основой для большинства транзакционных систем, банковских приложений, ERP-систем и государственных информационных систем.
Ключевые характеристики RDB
Структура данных
Данные в реляционной базе организованы в таблицы (отношения), каждая из которых состоит из строк (кортежей) и столбцов (атрибутов). Каждая таблица имеет уникальное имя, а каждый столбец — уникальное имя в пределах таблицы. Строки представляют отдельные записи, а столбцы — свойства этих записей.
Первичные и внешние ключи
Для обеспечения целостности данных используются первичные ключи (Primary Key) — уникальные идентификаторы каждой строки в таблице. Внешние ключи (Foreign Key) связывают таблицы между собой, обеспечивая ссылочную целостность: значение внешнего ключа в одной таблице должно соответствовать значению первичного ключа в другой таблице.
Нормализация
Процесс организации данных в таблицы для минимизации избыточности и аномалий обновления называется нормализацией. Выделяют несколько нормальных форм (1НФ, 2НФ, 3НФ, НФБК и др.), каждая из которых накладывает определённые ограничения на структуру таблиц. Полностью нормализованная база данных обычно находится в третьей нормальной форме (3НФ).
Транзакции и ACID
Реляционные СУБД поддерживают транзакции — логически завершённые последовательности операций, которые выполняются атомарно. Транзакции должны удовлетворять свойствам ACID:
- Атомарность (Atomicity) — транзакция выполняется полностью или не выполняется вовсе.
- Согласованность (Consistency) — после завершения транзакции данные остаются в согласованном состоянии.
- Изолированность (Isolation) — параллельные транзакции не влияют друг на друга.
- Долговечность (Durability) — результаты завершённой транзакции сохраняются даже при сбоях.
Классификация реляционных СУБД
По модели распространения
- Проприетарные (коммерческие): Oracle Database, Microsoft SQL Server, IBM Db2, SAP HANA.
- Открытые (с открытым исходным кодом): MySQL, PostgreSQL, MariaDB, SQLite.
По архитектуре
- Клиент-серверные: СУБД работает на сервере, клиенты подключаются по сети (Oracle, PostgreSQL, MySQL).
- Встраиваемые: СУБД встраивается непосредственно в приложение (SQLite, Firebird Embedded).
По масштабу
- Локальные (настольные): Microsoft Access, FileMaker.
- Корпоративные: Oracle, IBM Db2, Microsoft SQL Server Enterprise.
Применение RDB
Банковская и финансовая сфера
Реляционные базы данных являются стандартом для хранения информации о счетах, транзакциях, клиентах и кредитах. Требования к ACID-транзакциям и аудиту данных делают RDB незаменимыми в банковских системах, например, в автоматизированных банковских системах (АБС), используемых в России (ЦФТ, «Диасофт»).
Государственные информационные системы
В России реляционные СУБД широко применяются в государственных информационных системах: Единый государственный реестр недвижимости (ЕГРН), Единая система идентификации и аутентификации (ЕСИА), портал «Госуслуги». Для обеспечения импортозамещения в государственном секторе активно внедряются отечественные реляционные СУБД, такие как Postgres Pro (на основе PostgreSQL), СУБД «Линтер», СУБД «Ред База Данных».
Интернет-сервисы и электронная коммерция
Крупные интернет-платформы (например, Яндекс, Ozon, Wildberries) используют реляционные базы данных для хранения каталогов товаров, заказов, пользовательских профилей и истории покупок. В высоконагруженных системах RDB часто комбинируются с NoSQL-решениями для кэширования и хранения неструктурированных данных.
Научные исследования и медицина
Реляционные базы данных применяются для хранения результатов экспериментов, генетических данных, историй болезни пациентов. Например, в российских медицинских информационных системах (МИС) используются СУБД PostgreSQL и Oracle.
Преимущества и недостатки
Преимущества
- Целостность данных — благодаря ключам, ограничениям и транзакциям.
- Стандартизация — язык SQL является международным стандартом, что облегчает переносимость между разными СУБД.
- Гибкость запросов — возможность выполнять сложные аналитические запросы с использованием JOIN, подзапросов и агрегатных функций.
- Зрелость технологии — реляционные СУБД существуют более 50 лет, имеют обширную документацию и сообщество.
Недостатки
- Сложность масштабирования — горизонтальное масштабирование (добавление новых серверов) в реляционных системах сложнее, чем в NoSQL.
- Производительность при больших объёмах — при работе с терабайтами данных и миллионами записей могут возникать проблемы с производительностью, требующие шардинга или оптимизации запросов.
- Жёсткая схема — изменение структуры таблиц (добавление столбцов, изменение типов) требует миграции схемы, что может быть трудоёмким в больших системах.
Критика и альтернативы
Ограничения реляционной модели
Критики RDB указывают на неэффективность реляционной модели для хранения иерархических данных (например, графов социальных сетей) и неструктурированных данных (документы, изображения). Для таких задач были разработаны NoSQL-системы: документоориентированные (MongoDB), графовые (Neo4j), ключ-значение (Redis) и колоночные (Apache Cassandra).
Движение NoSQL
Термин «NoSQL» (Not Only SQL) возник в 2009 году как реакция на ограничения реляционных баз данных в контексте веб-приложений с высокой нагрузкой. Однако в 2010-х годах многие NoSQL-системы начали внедрять реляционные элементы (например, поддержку транзакций в MongoDB), а реляционные СУБД, в свою очередь, стали поддерживать JSON-типы данных и расширения для работы с неструктурированными данными (например, PostgreSQL с расширением PostGIS для геоданных).
Современные тенденции
В 2020-х годах наблюдается сближение реляционных и нереляционных подходов — появление NewSQL (гибридные системы, сочетающие ACID-транзакции с горизонтальным масштабированием, например, Google Spanner, CockroachDB). В России активно развиваются отечественные реляционные СУБД, такие как «Архив» (на основе PostgreSQL) и «Юниверс», ориентированные на импортозамещение в государственном и корпоративном секторах.
Интересные факты
- Первая реляционная СУБД Oracle была написана на языке ассемблера для компьютеров PDP-11.
- Стандарт SQL постоянно обновляется: последняя версия SQL:2023 включает поддержку JSON, полиморфных табличных функций и улучшенную работу с массивами.
- В 2021 году компания Яндекс перевела часть своих внутренних систем с проприетарной СУБД на PostgreSQL, что стало одним из крупнейших в мире миграционных проектов на открытую реляционную СУБД.
Источники
- Кодд Э. Ф. «A Relational Model of Data for Large Shared Data Banks» (1970).
- Дейт К. Дж. «Введение в системы баз данных» (8-е издание, 2004).
- ГОСТ Р 34.321-96 «Информационная технология. Системы управления базами данных. Термины и определения».
- Официальная документация PostgreSQL (postgresql.org).
- Материалы конференций HighLoad++ и Saint HighLoad (2018–2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →