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

«Что такое реляционные базы данных?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Реляционные базы данных (RDBMS) — это системы хранения данных, основанные на реляционной модели, предложенной Эдгаром Коддом. Данные организуются в таблицы (отношения), состоящие из строк (записей) и столбцов (атрибутов).

Ключевые принципы:

  • Структурированность: Чёткая схема данных (schema), определяющая таблицы, столбцы, типы данных и связи.
  • Связи (Relationships): Таблицы связываются через ключи: первичные (Primary Key) и внешние (Foreign Key). Это позволяет избежать дублирования данных (нормализация).
  • Целостность данных: Обеспечивается ограничениями (constraints) — UNIQUE, NOT NULL, FOREIGN KEY.
  • ACID-транзакции: Гарантируют надёжность операций.
    • Атомарность (Atomicity): Транзакция выполняется целиком или не выполняется вовсе.
    • Согласованность (Consistency): Транзакция переводит базу из одного валидного состояния в другое.
    • Изоляция (Isolation): Параллельные транзакции не мешают друг другу.
    • Долговечность (Durability): Результаты завершённой транзакции сохраняются после сбоя.
  • Язык SQL (Structured Query Language): Стандартизированный язык для создания, управления и запросов к данным.

Пример создания таблицы (PostgreSQL синтаксис):

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,                     -- Первичный ключ с автоинкрементом
    name VARCHAR(100) NOT NULL,                -- Обязательное текстовое поле
    department_id INTEGER,                      -- Ссылка на другую таблицу
    salary DECIMAL(10, 2) CHECK (salary > 0),  -- Проверка значения
    CONSTRAINT fk_department
        FOREIGN KEY (department_id)
        REFERENCES departments(id)              -- Внешний ключ
);

Популярные СУБД: PostgreSQL, MySQL/MariaDB, Oracle Database, Microsoft SQL Server. В DevOps-контексте часто используются облачные managed-сервисы: Amazon RDS, Google Cloud SQL, Azure SQL Database.