ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 17.10.2024
Просмотров: 94
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1. Интерпретация данных даты и времени.
2. Ключевые слова для обозначения даты и времени.
3. Файлы конфигурации даты/времени.
4. История единиц измерения времени.
Дополнительно поставляемые модули.
Дополнительно поставляемые программы.
Недокументированные возможности.
Нетривиальное использование таблиц.
Добавление ограничений в существующую таблицу.
Использование производных таблиц.
Модификация производных таблиц.
Создание полей со значениями-массивами.
Вставка значений в поля-массивы.
Определение количества элементов.
Обновление данных в полях-массивах
Автоматизация стандартных процедур.
Операции с последовательностями.
Сокращения.
Ниже перечислены сокращения, часто используемые в документации PostgreSQL, и в обсуждениях, связанных с PostgreSQL.
ANSI
American National Standards Institute, Американский национальный институт стандартов
API
Application Programming Interface, Интерфейс программирования приложений
ASCII
American Standard Code for Information Interchange, Американский стандартный код для обмена информацией
BKI
Backend Interface, Внутренний интерфейс
CA
Certificate Authority, Центр сертификации
CIDR
Classless Inter-Domain Routing, Бесклассовая междоменная маршрутизация
CPAN
Comprehensive Perl Archive Network, Всеобъемлющая сеть архивов Perl
CRL
Certificate Revocation List, Список отозванных сертификатов
CSV
Comma Separated Values, Значения, разделённые запятыми
CTE
Common Table Expression, Общее табличное выражение
CVE
Common Vulnerabilities and Exposures, Общие уязвимости и риски
DBA
Database Administrator, Администратор баз данных
DBI
Database Interface (Perl), Интерфейс баз данных (Perl)
DBMS
Database Management System, Система управления базами данных
DDL
Data Definition Language, Язык описания данных, включающий такие команды SQL, как CREATE TABLE, ALTER USER
DML
Data Manipulation Language, Язык обработки данных, включающий такие SQL-команды, как INSERT, UPDATE, DELETE
DST
Daylight Saving Time, Летнее время
ECPG
Embedded C for PostgreSQL, Встроенный C для PostgreSQL
ESQL
Embedded SQL, Встраиваемый SQL
FAQ
Frequently Asked Questions, Часто задаваемые вопросы
FSM
Free Space Map, Карта свободного пространства
GEQO
Genetic Query Optimizer, Генетический оптимизатор запросов
GIN
Generalized Inverted Index, Обобщённый инвертированный индекс
GiST
Generalized Search Tree, Обобщённое дерево поиска
Git
Git
GMT
Greenwich Mean Time, Среднее время по Гринвичу
GSSAPI
Generic Security Services Application Programming Interface, Универсальный интерфейс программирования приложений служб безопасности
GUC
Grand Unified Configuration, Главная унифицированная конфигурация, подсистема PostgreSQL, управляющая конфигурацией сервера
HBA
Host-Based Authentication, Аутентификация по сетевым узлам
HOT
Heap-Only Tuples, «Кортежи только в куче»
IEC
International Electrotechnical Commission, Международная электротехническая комиссия
IEEE
Institute of Electrical and Electronics Engineers, Институт инженеров по электротехнике и электронике
IPC
Inter-Process Communication, Межпроцессное взаимодействие
ISO
International Organization for Standardization, Международная организация по стандартизации
ISSN
International Standard Serial Number, Международный стандартный серийный номер
JDBC
Java Database Connectivity, Соединение с базами данных на Java
LDAP
Lightweight Directory Access Protocol, Облегчённый протокол доступа к каталогам
LSN
Log Sequence Number, Последовательный номер в журнале; см. pg_lsn и Внутреннее устройство WAL.
MSVC
Microsoft Visual C
MVCC
Multi-Version Concurrency Control, Многоверсионное управление конкурентным доступом
NLS
National Language Support, Поддержка национальных языков
ODBC
Open Database Connectivity, Открытое соединение с базами данных
OID
Object Identifier, Идентификатор объекта
OLAP
Online Analytical Processing, Непосредственная аналитическая обработка
OLTP
Online Transaction Processing, Непосредственная транзакционная обработка
ORDBMS
Object-Relational Database Management System, Объектно-реляционная система управления базами данных
PAM
Pluggable Authentication Modules, Подключаемые модули аутентификации
PGSQL
PostgreSQL
PGXS
PostgreSQL Extension System, Система расширений PostgreSQL
PID
Process Identifier, Идентификатор процесса
PITR
Point-In-Time Recovery, Восстановление на момент времени (Непрерывное архивирование)
PL
Procedural Languages, Процедурные языки (на стороне сервера)
POSIX
Portable Operating System Interface, Переносимый интерфейс операционных систем
RDBMS
Relational Database Management System, Реляционная система управления базами данных
RFC
Request For Comments, Рабочее предложение
SGML
Standard Generalized Markup Language, Стандартный обобщённый язык разметки
SPI
Server Programming Interface, Интерфейс программирования сервера
SP-GiST
Space-Partitioned Generalized Search Tree, Обобщённое дерево поиска с разбиением пространства
SQL
Structured Query Language, Язык структурированных запросов
SRF
Set-Returning Function, Функция, возвращающая множество
SSH
Secure Shell, Защищённая оболочка
SSL
Secure Sockets Layer, Уровень защищённых сокетов
SSPI
Security Support Provider Interface, Интерфейс поставщика поддержки безопасности
SYSV
Unix System V
TCP/IP
Transmission Control Protocol (TCP) / Internet Protocol (IP), Протокол управления передачей/Межсетевой протокол
TID
Tuple Identifier, Идентификатор кортежа
TOAST
The Oversized-Attribute Storage Technique, Методика хранения сверхбольших атрибутов
TPC
Transaction Processing Performance Council, Совет по оценке производительности обработки транзакций
URL
Uniform Resource Locator, Универсальный указатель ресурса
UTC
Coordinated Universal Time, Универсальное координированное время
UTF
Unicode Transformation Format, Формат преобразования Unicode
UTF8
Eight-Bit Unicode Transformation Format, Восьмибитный формат преобразования Unicode
UUID
Universally Unique Identifier, Универсальный уникальный идентификатор
WAL
Write-Ahead Log, Журнал предзаписи
XID
Transaction Identifier, Идентификатор транзакции
XML
Extensible Markup Language, Расширяемый язык разметки
Недокументированные возможности.
Индексы.
В данной главе рассматриваются нетривиальные возможности PostgreSQL, в том числе оптимизация доступа к таблицам с использованием индексов, наследование и установка ограничений для таблиц, практическое применение массивов в значениях полей, работа с транзакциями и курсорами.
Индексом называется объект базы данных, позволяющий значительно повысить скорость обращения к базе за счет ускоренной обработки команд, содержащих сравнительные критерии. Хранимая в индексах информация о размещении данных по одному или нескольким полям таблицы повышает эффективность поиска записей при условной выборке (например, с использованием секции WHERE).
Существует несколько разновидностей внутреннего устройства индексов. В этом разделе описаны разные типы индексов, а также объясняется, в каких ситуациях следует использовать тот или иной тип.
Индексы создаются командой SQL CREATE INDEX. Команда может содержать список из нескольких индексируемых полей, разделенных запятыми; в этом случае индекс строится для всех перечисленных полей. Составные индексы используются в PostgreSQL только при выполнении команд SQL, осуществляющих поиск по всем индексированным полям с объединением условий ключевым словом AND. Для удаления индексов из таблицы используется команда DROP INDEX.
Внимание
В PostgreSQL операторные классы хранятся в поле pg_opclass. Используйте этот параметр лишь в том случае, если вы досконально разбираетесь во всех тонкостях операторных классов PostgreSQL.
Уникальные индексы
Создание индекса с ключевым словом UNIQUE говорит о том, что индекс является уникальным, то есть индексируемое поле (или поля) не может содержать повторяющихся значений. Фактически создание уникального индекса эквивалентно созданию таблицы с ограничением уникальности (см. ниже подраздел "Ограничения в таблицах").
Внимание
Ключевое слово UNIQUE в сочетании с секцией USING может использоваться только для индексов, реализованных в виде В-дерева.
Типы индексов.
Необязательная секция USING задает реализуемый тип индекса. В PostgreSQL 7.1.x поддерживаются три типа индексов:
В-дерево;
R-дерево;
кэш.
В первом варианте с высокой степенью параллельности используются алгоритмы В-деревьев Лемана-Яо (Lehman-Yao). Это самый распространенный способ индексации, обладающий наибольшими возможностями. По этой причине он используется по умолчанию.
Реализация R-дерева, основанная на квадратичном разбиении по алгоритму Гуттмана (Guttman), применяется главным образом при операциях с геометрическими типами данных. Реализация хэша основана на алгоритмах линейного хэширования Литвина (Litwin), которые традиционно используются для индексов с частой проверкой равенства (то есть ориентированы на оператор ).
На момент написания книги в PostgreSQL версии 7.1.x реализация индексов на основе В-дерева значительно превосходила остальные типы но универсальности и широте возможностей. В-дерево рекомендуется использовать вместо хэша даже при прямых сравнениях оператором . Хэш поддерживается в первую очередь по соображениям совместимости, хотя ничто не мешает вам выбрать эту реализацию, если вы твердо уверены в выигрыше от перехода на нее от В-дерева.
Как сказано выше, реализацию на основе R-дерева рекомендуется использовать для индексации геометрических типов данных, но при этом необходимо помнить о специфике этого типа. Например, для R-дерева нельзя построить уникальный индекс или провести индексацию по нескольким полям. В таких случаях лучше положиться на реализацию В-дерева, обладающую более широкими возможностями.
Тип индекса задается в секции USING при помощи ключевых слов BTREE, RTREE и HASH. По умолчанию используется тип BTREE.
Внимание
Если у вас нет твердой, обоснованной уверенности в том, что для конкретной ситуации лучше подойдет другой тип индекса, мы рекомендуем использовать стандартный тип BTREE.
Функциональные индексы.
В слегка измененном виде команда CREATE INDEX позволяет индексировать данные не по значениям поля, а по некоторой функции этих значений. Такая форма индекса называется функциональной.