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

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

Ответ

Реляционные базы данных (РСУБД) организуют данные в виде таблиц (отношений) со строго определенной схемой и используют SQL для манипуляций.

Ключевые особенности:

  1. Структурированность и схема: Данные хранятся в таблицах с заранее заданными столбцами (полями) определенных типов (INTEGER, VARCHAR, DATE). Схема обеспечивает целостность данных.
  2. Связи между таблицами: Отношения «один-ко-многим», «многие-ко-многим» и «один-к-одному» реализуются через первичные (PRIMARY KEY) и внешние ключи (FOREIGN KEY).
    -- Пример связи в PostgreSQL
    CREATE TABLE departments (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100) NOT NULL
    );
    CREATE TABLE employees (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        department_id INTEGER REFERENCES departments(id) ON DELETE SET NULL
    );
  3. ACID-транзакции: Гарантируют надежность операций.
    • Атомарность (Atomicity): Транзакция выполняется полностью или не выполняется вовсе.
    • Согласованность (Consistency): Транзакция переводит базу из одного валидного состояния в другое.
    • Изолированность (Isolation): Параллельные транзакции не мешают друг другу.
    • Долговечность (Durability): Результаты завершенной транзакции сохраняются даже после сбоя.
  4. Нормализация: Процесс устранения избыточности данных и аномалий вставки/обновления/удаления путем разделения данных на логические таблицы.
  5. Мощный язык запросов (SQL): Стандартизированный язык для сложных выборок, агрегаций, соединений и манипуляций данными.

Типичные представители: PostgreSQL, MySQL, Oracle, Microsoft SQL Server.

Сравнение с NoSQL: РСУБД сильны в сложных запросах и целостности данных, но горизонтальное масштабирование (шардинг) для них сложнее, чем для многих NoSQL-решений.