К какому типу баз данных относится PostgreSQL?

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

Ответ

PostgreSQL — это объектно-реляционная система управления базами данных (ОРСУБД) с открытым исходным кодом.

Ключевые характеристики:

  • Реляционная модель: Данные организованы в таблицы со строгой схемой, связями и поддержкой ACID-транзакций.
  • Расширяемость и объектные черты: Поддерживает пользовательские типы данных, наследование таблиц, функции и операторы. Это выходит за рамки классических реляционных СУБД.
  • Богатая функциональность: Включает поддержку JSON/JSONB (для работы с полуструктурированными данными), полнотекстовый поиск, геопространственные типы (PostGIS), асинхронную репликацию.

Пример создания таблицы с пользовательским типом и JSONB полем:

-- Создаем составной тип
CREATE TYPE address AS (
    city TEXT,
    street TEXT,
    building INTEGER
);

-- Создаем таблицу с использованием типа и JSONB
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    home_address address, -- пользовательский тип
    profile_data JSONB,   -- гибкое JSON-поле
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

-- Вставка данных
INSERT INTO users (name, home_address, profile_data)
VALUES (
    'Иван Петров',
    ROW('Москва', 'Ленина', 10),
    '{"hobbies": ["чтение", "бег"], "premium": true}'
);

Таким образом, PostgreSQL сочетает надежность реляционных баз с гибкостью, характерной для NoSQL-решений.