Учебник по 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
Другие расширения