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

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, 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 →