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

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

Ответ

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

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

  • Таблица (Relation): Состоит из строк (записей, кортежей) и столбцов (атрибутов, полей).
  • Первичный ключ (Primary Key): Уникальный идентификатор каждой строки в таблице.
  • Внешний ключ (Foreign Key): Столбец, который ссылается на первичный ключ другой таблицы, устанавливая связь.
  • SQL (Structured Query Language): Язык для управления и запросов к данным.
  • Транзакции и ACID: Гарантии атомарности, согласованности, изолированности и долговечности операций.

Пример структуры для простого блога:

-- Таблица пользователей
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    username VARCHAR(50) UNIQUE NOT NULL,
    email VARCHAR(100) NOT NULL
);

-- Таблица постов со ссылкой на пользователя
CREATE TABLE posts (
    id SERIAL PRIMARY KEY,
    title VARCHAR(200) NOT NULL,
    content TEXT,
    author_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
    created_at TIMESTAMP DEFAULT NOW()
);

Роль в DevOps:

  • Управление схемой: Миграции базы данных (с помощью инструментов вроде Liquibase, Flyway) являются критической частью pipeline. Они версионируют изменения структуры БД.
  • Резервное копирование и восстановление: Автоматизация бэкапов (pg_dump, mysqldump) и их тестирование.
  • Мониторинг и тюнинг: Отслеживание медленных запросов, использование connection pool'ов (например, PgBouncer для PostgreSQL), настройка репликации для отказоустойчивости и чтения.
  • Контейнеризация: Запуск СУБД в контейнерах (чаще для разработки/тестирования) с учетом stateful-природы данных и необходимости persistent volumes.

Популярные СУБД в стеке DevOps: PostgreSQL, MySQL/MariaDB, Amazon RDS, Google Cloud SQL.

Видео-ответы