Учебник по PostgreSQL

PostgreSQL — это бесплатный объектно-реляционный сервер баз данных (ORDBMS), распространяемый под гибкой лицензией BSD.

Разработчики PostgreSQL произносят это какpost-gress-Q-L。

Слоган PostgreSQL — «самая продвинутая в мире реляционная база данных с открытым исходным кодом».

Справочные материалы:Руководство PostgreSQL 10.1


Что такое база данных?

База данных — это хранилище, которое организует, хранит и управляет данными в соответствии со структурами данных.

Каждая база данных имеет один или несколько различных API для создания, доступа, управления, поиска и копирования сохранённых данных.

Мы также можем хранить данные в файлах, но чтение и запись данных в файлах относительно медленны.

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

ORDBMS (объектно-реляционная система управления базами данных) — это результат объединения объектно-ориентированной технологии с традиционными реляционными базами данных. Обработка запросов — важная часть ORDBMS, и её производительность напрямую влияет на производительность DBMS.

ORDBMS добавляет некоторые новые возможности на основе исходной реляционной базы данных.

RDBMS — это реляционная система управления базами данных, которая устанавливает связи между сущностями и в конечном итоге получает реляционные таблицы.

OODBMS (объектно-ориентированная система управления базами данных) — это объектно-ориентированная система управления базами данных, которая рассматривает все сущности как объекты, инкапсулирует эти классы объектов, а взаимодействие между объектами осуществляется посредством сообщений. Объектно-реляционные базы данных OODBMS по сути по-прежнему остаются реляционными базами данных.


Терминология ORDBMS

Прежде чем начать изучение базы данных PostgreSQL, давайте сначала разберём некоторые термины ORDBMS:

  • База данных:База данных — это совокупность связанных таблиц.
  • Таблица данных:Таблица — это матрица данных. Таблица в базе данных выглядит как простая электронная таблица.
  • Column:Столбец (элемент данных) содержит данные одного и того же типа, например данные почтового индекса.
  • Row:Строка (= кортеж или запись) — это группа связанных данных, например фрагмент данных о подписке пользователя.
  • Избыточность: Двукратное хранение данных снижает производительность, но повышает безопасность данных.
  • Первичный ключ: Первичный ключ уникален. Таблица данных может содержать только один первичный ключ. С помощью первичного ключа можно запрашивать данные.
  • Внешний ключ:Внешний ключ используется для связи двух таблиц.
  • Составной ключ: составной ключ (комбинированный ключ) использует несколько столбцов в качестве ключа индекса и обычно применяется для составных индексов.
  • Index:Использование индексов позволяет быстро получать доступ к определённой информации в таблицах базы данных. Индекс — это структура, которая сортирует значения одного или нескольких столбцов в таблице базы данных, подобно оглавлению книги.
  • Ссылочная целостность:Ссылочная целостность требует, чтобы связи не допускали ссылок на несуществующие сущности. Вместе с целостностью сущностей она является ограничением целостности, которому должна удовлетворять реляционная модель для обеспечения согласованности данных.

Возможности PostgreSQL

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

  • Индекс: Пользователи могут настраивать методы индексов или использовать встроенные индексы B-tree, хеш-таблицы и GiST.

  • Триггеры: Триггер — это событие, вызываемое SQL-запросом. Например, инструкция INSERT может вызвать триггер, который проверяет целостность данных. Триггеры обычно срабатывают при выполнении инструкций INSERT или UPDATE.

  • Многоверсионное управление параллелизмом:PostgreSQL использует систему многоверсионного управления параллелизмом (MVCC, Multiversion concurrency control) для управления параллелизмом. Эта система предоставляет каждому пользователю «снимок» базы данных. Каждое изменение, внесённое пользователем в рамках транзакции, невидимо для других пользователей до успешной фиксации транзакции.

  • Правила: Правила (RULE) позволяют переписывать запрос и обычно используются для реализации операций над представлениями (VIEW), таких как вставка (INSERT), обновление (UPDATE) и удаление (DELETE).

  • Типы данных: Включая текст, числовые массивы произвольной точности, данные JSON, перечисляемые типы, данные XML

    и т. д.
  • Полнотекстовый поиск: Через Tsearch2 или OpenFTS; в версии 8.3 Tsearch2 встроен.

  • NoSQL: Встроенная поддержка JSON, JSONB, XML, HStore и внешних обёрток данных для баз данных NoSQL.

  • Хранилище данных: Можно плавно мигрировать на GreenPlum, DeepGreen, HAWK и т. д. в той же экосистеме PostgreSQL, используя FDW для ETL.


Связанные ресурсы

Руководство PostgreSQL 10.1 - Онлайн-руководство:http://www.example.com/manual/PostgreSQL/

Офлайн-руководство — версия PDF:https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, код извлечения:xs7r。

Офлайн-руководство — версия CHM:https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, код извлечения:tq4z。

Посмотреть последнюю версию:https://github.com/postgres-cn/pgdoc-cn/releases

Другие расширения