yandex
Поиск
Связаться с нами

Реляционные базы данных: что это и как они работают

Реляционные базы данных — это тип БД, в которых данные хранятся в виде связанных таблиц. Связь таблиц называют «отношениями» или relation по-английски, отсюда и такое название. Реляционные БД хороши тем, что данные в них структурированы и упорядочены. Примеры таких баз: MySQL, PostgreSQL, Oracle Database.

Типичная ситуация: в небольшом магазине старший менеджер записывает в Excel имена и контакты клиентов, даты и суммы платежей, статусы заказов. Все идет хорошо до тех пор, пока один магазин не становится сетью и число клиентов и заказов не увеличивается кратно. Тогда начинаются проблемы:

  • файлы становятся громоздкими, медленно открываются и зависают,

  • кто-то случайно удаляет контакты клиента, не замечает этого и закрывает файл,

  • данные дублируются в нескольких таблицах,

  • коллеги жалуются, что не могут одновременно работать с одной и той же таблицей.

В статье погрузимся в тему реляционных баз данных и посмотрим, как они помогают выйти из ситуации, когда Excel перестает справляться.

Обзоры
Иллюстрация для статьи на тему «Реляционные базы данных: что это и как они работают»
Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®

Что такое реляционная база данных

По сути реляционные БД, это таблицы, в которых данные о конкретных объектах размещаются в строках, а характеристики этих объектов — в столбцах. Таблицы связаны между собой через первичные и внешние ключи, чтобы объединять данные из нескольких таблиц.

Первичный ключ — это идентификатор для каждой записи, например, ID покупателя в таблице «Клиенты». Он гарантирует, что строки не повторяются. Внешний ключ — столбец или набор столбцов, который ссылается на первичный ключ в другой таблице. Внешние ключи устанавливают связи между таблицами и гарантируют целостность данных.

Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

Реляционные БД наглядно и эффективно объединяют данные для их использования. Например, в базе таск-менеджера хранятся таблицы с пользователями, задачами, проектами и комментариями. Каждый пользователь связан с задачей, а задача — с проектом. С такой базой легко отслеживать статус каждой задачи, контролировать активность исполнителей и выгружать отчеты о работе команды.

Как работает реляционная база данных: если пользователь попытается добавить заказ с ID клиента, которого нет в таблице «Клиенты», база не даст это сделать. Если пользователь попробует удалить клиента, с которым связаны заказы, база запретит это действие, чтобы не нарушить целостность данных — это называется ограничением ссылочной целостности. Если же в таблице «Клиенты» изменить ID клиента, то его идентификационный номер автоматически обновится в таблице с заказами, если в базе установлено каскадное обновление.

Если собирать данные в реляционной БД, это решит проблемы, которые возникают при работе с таблицами в Excel:

управление связями: в реляционной базе данных легко определить связь и избежать дублирования записей;

целостность данных: первичные и внешние ключи поддерживают целостность и предотвращают случайное удаление или изменение данных; 

масштабируемость: реляционные БД обрабатывают большие объемы данных и сложные запросы, не теряя в производительности;

многопользовательский доступ: с реляционной базой данных одновременно могут работать сотни пользователей и не создавать конфликтов. 

Пример реляционной базы данныхПример реляционной БД, которая содержит таблицы «Клиенты» и «Заказы». Первичный ключ здесь — ID клиента в первой таблице. Во второй с заказами он используется уже как внешний ключ, который связывает конкретный заказ из одной таблицы с конкретным клиентом в другой

Основные характеристики реляционных баз данных

Реляционные БД устроены по правилам, которые обеспечивают целостность данных и позволяют быстро находить нужную информацию через запросы. 

Свойства ACID (Atomicity, Consistency, Isolation, Durability)

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

Каждая буква аббревиатуры ACID обозначает свойство транзакций: 

  • Атомарность (Atomicity). Все изменения данных выполняются как одно целое: либо все шаги проходят успешно, либо, если хоть один из них не сработает, операция отменяется.

  • Согласованность (Consistency) гарантирует, что только правильные результаты обработки данных сохраняются после завершения транзакции. Если все правила соблюдены, изменения фиксируются окончательно.

  • Изолированность (Isolation). Транзакции, происходящие одновременно, не влияют друг на друга.

  • Надежность (Durability). Как только транзакция завершена, пользователь получает об этом уведомление и может быть уверен, что данные надежно сохранены.

Целостность данных

Целостность данных в реляционных БД — это гарантия того, что данные останутся логичными, непротиворечивыми и будут соответствовать правилам, которые установили разработчики БД. Другими словами, целостность — это меры, которые защищают данные от случайных ошибок, нарушения структуры или некорректных значений. 

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

Выделяют три типа целостности данных: 

  • Структурная целостность. Таблицы упорядочены: записи не повторяются, а каждую строку можно однозначно отличить по первичному ключу.    

  • Языковая целостность. Действия с данными выполняются через запросы SQL, что делает операции понятными и стандартизированными.

  • Ссылочная целостность. Работает так, что связи между таблицами не нарушаются при изменениях, добавлениях или удалениях записей.

SQL-запросы 

SQL (Structured Query Language) — это простой и понятный язык структурированных запросов для работы с реляционными базами данных. Выглядит как команда на английском языке:

Именно SQL делает базы данных такими мощными и гибкими, а также отличают реляционные БД от нереляционных (NoSQL), которые используют собственные более сложные и менее универсальные языки запросов. 

SQL-запросы делятся на основные группы:

  1. DDL (Data Definition Language). Команды для создания, изменения и удаления таблиц.

  2. DML (Data Manipulation Language). Используется для управления содержимым таблиц, включая добавление, изменение и удаление записей.

  3. DCL (Data Control Language). Команды, регулирующие доступ к данным, позволяют назначать и отзывать права доступа у пользователей.

  4. TCL (Transaction Control Language). Управляет транзакциями, гарантируя их полное выполнение или отмену в случае ошибки.

Evolution Managed PostgreSQL®

Разворачивайте и управляйте кластерами PostgreSQL® в инфраструктуре облачной платформы Cloud.ru Evolution

Структура реляционных БД

Таблицы 

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

В зависимости от задач и требований таблицы бывают:

  • Обычными — стандартными таблицами для хранения данных.

  • Секционированными — разделенными на более мелкие и более управляемые части (секции) для работы с большими объемами данных.

  • Временными — используемыми для временного хранения данных в течение сессии.

  • Системными — содержащими служебную информацию базы данных.

  • Широкими — включающими большое количество столбцов для сложных наборов данных.

Столбцы 

Столбцы или поля — это основные элементы таблицы, у которых есть имена и порядок. Некоторые свойства столбцов:

  • Каждый столбец отвечает за свой тип информации, что критически важно для правильной обработки и хранения данных. Например, есть текстовые столбцы для имен, числовые для возраста и даты и времени для дат рождения.

  • Название столбца служит заголовком и не повторяется в пределах таблицы.

  • В каждом столбце каждая ячейка содержит только одно значение.

  • Столбцы расположены слева направо в порядке, установленном при создании таблицы.

Строки 

Строки в реляционных БД — это записи, содержащие информацию о конкретных объектах. В каждой таблице строки выстроены по одному принципу. Например, в таблице «Пользователи» каждая строка будет содержать данные о пользователях, а в таблице «Задачи» каждая строка будет описывать отдельную задачу, включая название, срок и исполнителя.

Тип данных

Каждый столбец в таблице предназначен для хранения данных определенного типа. Он задает, какие значения допустимо записывать в этот столбец, и определяет, как с ними работать. Например, в числовой столбец нельзя записать текст, но числа из него можно брать для расчетов. А в текстовом столбце, наоборот, можно хранить только слова, но не выполнять с ними математические операции.

Вот примеры разных типов данных:

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

  • INTEGER: подходит для хранения целых чисел, которые не содержат дробные составляющие.

  • DATETIME: применяется для записи дат и времени.

Как работают реляционные базы данных

Управление транзакциями

В реляционных БД транзакции управляются через команды, определяющие их начало и завершение. Управление происходит с помощью Transact-SQL или API-функций. Основные команды для контроля транзакций:

  • COMMIT — подтверждает изменения, сделанные в течение транзакции, и делает их постоянными в базе данных.

  • ROLLBACK — отменяет изменения, возвращая данные к исходному состоянию перед началом транзакции.

  • SAVEPOINT — создает контрольные точки в транзакции, к которым придется вернуться, чтобы отменить часть изменений, не откатывая всю транзакцию.

Изменения во время транзакции сначала записываются в промежуточное хранилище, например в оперативную память или специальный раздел базы данных. А когда транзакция завершается, эти изменения сохраняются навсегда или отменяются полностью, очищая временное хранилище. 

Блокировки и параллельный доступ

В реляционных базах данных механизмы блокировки и параллельного доступа помогают сохранить данные в порядке. Блокировка запрещает доступ пользователям или приложениям во время обновления. В некоторых базах такая блокировка касается всей таблицы и замедляет работу. Однако в БД типа Oracle блокировка применяется только к одной записи, оставляя доступ к остальным. Параллельный доступ разрешает пользователям или процессам одновременно работать с данными, придерживаясь установленных правил доступа.

Важность индексов для ускорения запросов

Индексы в SQL-запросах — это инструмент, который ускоряет поиск и извлечение данных. Индексы создаются для одного или нескольких столбцов таблицы, чтобы быстро находить нужную информацию. Это важно для больших таблиц, где поиск без индексов займет много времени.

В РБД применяют такие типы индексов: 

  • Стандартный (B-Tree) индекс помогает ускорить поиск и быстрее находить клиентов по имени.

  • Уникальный индекс гарантирует, что значения в столбцах будут разными, и не позволит зарегистрировать двух пользователей с одинаковым email.

  • Составной (комбинированный) индекс индекс включает два и более столбцов и ускоряет запросы, которые используют оба столбца: customer_id и order_date.

Правильная настройка индексов критична: слишком много индексов замедлит добавление и удаление данных из-за необходимости постоянного обновления. Лучше индексировать те столбцы, которые часто запрашиваются. Для обработки сложных запросов эффективнее использовать составные индексы. 

Преимущества и недостатки реляционных баз данных

Несмотря на популярность реляционных БД, у них есть как плюс, так и минусы.

Плюсы:

  • Гарантия защищенности. Реляционные БД сохраняют целостность данных даже при сбоях, гарантируют надежный доступ к данным и защищают от возникновения конфликтов.

  • Надежная синхронизация. Механизмы предотвращают потерю данных и конфликты при одновременной работе нескольких пользователей.

  • Экономия ресурсов. SQL-запросы, сохраненные на сервере, можно повторно использовать, чтобы снизить нагрузку на него и упростить выполнение задач.

  • Простота управления. Связи между таблицами упрощают управление данными, а изменения структуры базы данных не нарушают работу приложений.

  • Организованное хранение. Четкая структура таблиц делает хранение данных удобным и предсказуемым.

Минусы:

  • Проблемы с производительностью. Базы медлят при обработке больших объемов данных. Увеличение мощности сервера помогает не всегда, а распределение данных между серверами замедляет процесс еще сильнее.

  • Ограниченная универсальность. Реляционные БД отлично работают с таблицами, например, для финансовых данных, но с текстами или изображениями справляются хуже.

  • Слабая гибкость. Строгая структура поддерживает порядок, но снижает гибкость и усложняет изменения.

Примеры популярных реляционных баз

Точное число реляционных баз данных определить сложно. Рассмотрим пять популярных вариантов.  

MySQL — СУБД, полностью соответствующая стандартам SQL. Поддерживает транзакционную целостность, защиту данных, репликацию и хранимые процедуры — заранее сохраненные на сервере наборы SQL-команд для автоматизации операций. Преимущества MySQL в высокой производительности и масштабируемости.

PostgreSQL — мощная БД, которая работает с текстом, числами, форматами JSON, XML и уникальными данными, например, геометрическими фигурами. Позволяет создавать собственные типы данных, что делает ее еще более гибкой.  

SQLite встраивается в приложения, поэтому считается легкой и удобной для разных платформ, включая браузеры Google Chrome и Mozilla Firefox. Но возможности этой БД ограничены: сложно менять структуру таблиц, а также есть лимиты на количество столбцов (32 000) и объем базы (140 терабайт).

Oracle Database эффективно обрабатывает большие объемы данных, поэтому ее часто выбирают для сложных корпоративных задач. Разработчики ценят Oracle Database за удобство, инструменты, четкую документацию, поддержку функций (JSON, длинные имена, списки) и интеграцию с облачными сервисами.  

Microsoft SQL Server — популярная коммерческая СУБД с бесплатной версией Express для начинающих. Поддерживает SQL, непроцедурные языки, нечувствительные к регистру команды и стандартные языки для работы с БД.

Реляционные базы данных в облаке

Раньше БД приходилось разворачивать вручную и нанимать администраторов. Сегодня, благодаря развитию облачных технологий, доступны готовые базы данных по модели DBaaS (Database-as-a-Service). 

Облачные реляционные БД предлагают стандартные функции: выполнение сложных SQL-запросов, поддержку транзакций и работу с реляционной моделью данных. Но в облаке базы становятся еще более удобными. Например, резервные копии создаются автоматически, а обновления баз проходят без остановки работы.  

Преимущества модели DBaaS:

  • Хранить данные в облаках надежнее и дешевле, чем на собственных серверах. Для резервного копирования своими силами нужна дорогая инфраструктура, а в облаке бэкапы входят в сервис.

  • DBaaS разворачивается и масштабируется за минуты без покупки серверов и найма дополнительных людей. Пользователь платит только за использованные ресурсы, а администрирование берет на себя облачный провайдер. Например, в облаке Сloud.ru можно быстро развернуть базы данных с сервисом Evolution Managed PostgreSQL® или Evolution Managed Redis® и сразу начать с ними работать.

  • Облачные базы позволяют быстро запускать проекты, стартапы и тестировать идеи без больших вложений. Неудачные бизнес-гипотезы можно просто свернуть, а успешные — масштабировать. Это помогает максимально использовать арендуемые ресурсы. С собственным оборудованием пришлось бы покупать сервера для гипотез, а потом искать применение неиспользуемым серверам.

AI-помощник Клаудия в публичном облаке Cloud.ru Evolution

Клаудия на основе GenAI знает особенности, архитектуру и технические возможности облачной платформы Cloud.ru Evolution. Она подберет сервисы под ваши задачи и создаст базовую инфраструктуру в облаке. Работать с Клаудией можно даже без глубокого опыта в IT Ops и облачных технологиях

Рекомендации по выбору реляционной СУБД для проекта

При выборе реляционной базы данных важно тщательно рассмотреть параметры, чтобы найти решение, которое соответствует как текущим, так и будущим требованиям проекта.

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

  • Тип проекта. Для небольших приложений подойдут базы вроде SQLite. Для высокой производительности в крупных коммерческих проектах лучше выбрать Oracle Database. Если нужны гибкие настройки — подойдет PostgreSQL.

  • Тип данных. MySQL и PostgreSQL отлично работают с текстом. Для медиафайлов и JSON-данных лучше выбрать PostgreSQL.

  • Объем хранилища. SQLite поддерживает базы до 140 ТБ, у Oracle нет  жестких ограничений. PostgreSQL также подойдет для Big Data.

  • Тип базы данных. Для серверных решений рекомендуется MySQL, PostgreSQL или Microsoft SQL Server. SQLite лучше для локальных приложений без дополнительного ПО.

  • Нагрузка и масштабирование. PostgreSQL легко масштабируется, а Oracle рассчитан на работу при больших нагрузках. MySQL показывает стабильную производительность и подходит для масштабируемых веб-приложений.

  • Безопасность Oracle и Microsoft SQL Server предлагают продвинутые функции безопасности, включая шифрование и восстановление данных.

  • Стоимость. Для малых проектов подойдут бесплатные SQLite или MySQL. Для крупных корпоративных решений стоит рассмотреть платные базы Oracle или Microsoft SQL Server, предлагающие мощные функции и поддержку.

Коротко о реляционных базах данных

  • Реляционные БД занимают лидирующие позиции благодаря удобству, надежности и поддержке строгих правил работы с данными.

  • Характеристики реляционных баз основаны на принципах ACID: атомарность, согласованность, изолированность и надежность. Эти правила обеспечивают точность и защиту данных даже при сбоях.

  • Целостность данных поддерживается с помощью ограничений, таких как первичные и внешние ключи, уникальные значения и запрет на пустые поля.

  • SQL — ключевое средство работы с РБД, чтобы создавать таблицы, управлять содержимым, регулировать доступ и управлять транзакциями.

  • Индексы облегчают работу с большими объемами информации, ускоряя поиск и обработку данных. 

  • Реляционные БД строятся на таблицах, где строки отражают записи, а столбцы — их свойства. Эти таблицы соединены ключами: первичные ключи гарантируют неповторяемость записей, внешние — связь между таблицами.

  • Выбор базы данных зависит от размера проекта, требований к безопасности, типа данных, нагрузки и финансовых потребностей.

Продукты из этой статьи:
Иконка-Advanced Relational Database Service for PostgreSQL
Advanced Relational Database Service for PostgreSQL
Иконка-Evolution Managed PostgreSQL®
Evolution Managed PostgreSQL®
31 июля 2025

Вам может понравиться