Skip to content

Об'єкти бази даних пояснені

Усі ключові об'єкти схеми PostgreSQL — структура, таблиці, подання, індекси, типи, ідентичність, підпрограми, безпека та реплікація — в одному насиченому довіднику.

PostgreSQL зберігає дані в іменованих об'єктах схеми. Кожен об'єкт виконує одну задачу: таблиця тримає рядки, індекс прискорює пошук, підпрограма тримає логіку. Знайте, що таке кожен об'єкт, перед тим як вирішувати, який додавати, і вважайте обмеження та політики правилами, що зберігають дані чесними.

Довідкова таблиця · 45 записи
45 of 45 rows
Структура
Один ізольований каталог схем усередині кластера.Розділяти застосунки або середовища, які не повинні спільно використовувати дані.
Іменований простір імен усередині бази даних, що групує пов'язані об'єкти.Упорядковувати об'єкти за функцією або власником і уникати конфліктів імен.
Іменоване місце на диску, куди поміщають файли таблиць та індексів.Скеровувати гарячі таблиці на швидкі носії, а холодні дані тримати на дешевих дисках.
Параметр, що визначає, до яких схем розв'язується некваліфіковане ім'я об'єкта.Насководити сесію на правильну схему, щоб запити могли використовувати короткі імена.
Опис, збережений на будь-якому об'єкті бази даних через COMMENT ON.Документувати таблиці та колонки там, де наступний автор запиту їх знайде.
Таблиці та подання
Іменоване відношення, що зберігає рядки у типізованих колонках.Основний контейнер для постійних даних.
Таблиця, рядки якої зникають у кінці сесії або транзакції.Тримати тимчасові або проміжні дані, які не повинні пережити з'єднання.
Батьківська таблиця, поділена на дочірні партиції за оголошеним ключем.Тримати дуже великі таблиці керованими, розподіляючи рядки по партиціях за діапазонами або списками.
Таблиця, рядки якої живуть у зовнішній системі, доступна через foreign data wrapper.Запитувати віддалену базу даних або файл як локальну таблицю.
Збережений запит, поданий як віртуальна таблиця.Показувати ті самі рядки через різні фільтри або з'єднання.
Просте подання, що передає INSERT, UPDATE і DELETE своїй базовій таблиці.Відкривати відфільтрований чи з'єднаний зріз таблиці, який лишається доступним для запису.
Подання, чий набір результатів записується на диск і оновлюється за потреби.Кешувати дорогі агрегати чи з'єднання і швидко їх читати.
Функція, що повертає набір рядків, придатний всюди, де підійде таблиця.Розгортати обчислений набір на місці, як unnest перетворює масив на рядки.
Індекси
Індекс на збалансованому дереві для пошуку за рівністю та діапазонами.Прискорювати WHERE, JOIN і ORDER BY на колонках, що сортуються.
Індекс, що відхиляє дублікати значень у своєму ключі.Забезпечувати унікальність колонки або комбінації колонок.
Індекси інвертовані або на узагальнених деревах пошуку для нескалярних значень.Індексувати масиви, JSONB, повнотекстовий пошук або геометричні дані.
Індекс, побудований лише за рядками, що відповідають умові WHERE.Індексувати гарячу підмножину і пропустити решту, щоб заощадити місце.
Типи та розширення
Визначений користувачем тип, чиї значення беруться з фіксованого списку міток.Обмежувати колонку закритим набором, як-от коди статусів.
Базовий тип плюс check-обмеження, названий для повторного використання як тип колонки.Ділити одне перевірене визначення, як-от непорожній text, між багатьма колонками.
Набір правил, що визначає, як рядки порівнюються і сортуються.Отримати правильний порядок для регістру, акцентів або конкретної локалі.
Пакет, що встановлюється та додає до бази даних функції, типи або оператори.Приймати перевірені інструменти, як-от PostGIS або pg_trgm, за один крок.
Ідентичність та згенеровані значення
Самостійний об'єкт-лічильник, що видає послідовні цілі числа.Живити серійний ключ, коли кілька таблиць ділять один генератор.
Колонка таблиці, підтримувана внутрішньою sequence, за стандартом SQL.Сучасний автоінкрементний первинний ключ, кращий за SERIAL.
Колонка, чиє значення обчислюється з інших колонок того самого рядка.Зберігати або відкривати похідне значення без ручних записів.
Підпрограми
Іменований блок SQL, що повертає значення або рядки.Інкапсулювати логіку, що повторно використовується, і викликати її в запитах.
Іменований блок, що виконує дії та керує власною транзакцією.Багатокроковий ETL, де підпрограма виконує commit або rollback усередині себе.
Підпрограма, що згортає багато вхідних рядків в одне значення через функції стану та фіналізації.Визначати власні згортання, як-от зважене середнє.
Символ, прив'язаний до однієї або більше функцій для конкретних типів операндів.Давати власним типам природний синтаксис, як a + b або @>.
Оголошений шлях перетворення з одного типу в інший.Керувати тим, як значення змінюють тип, зокрема які перетворення відбуваються неявно.
Підпрограма, прив'язана до події таблиці, що спрацьовує автоматично.Аудит, перевірка або каскадні зміни при INSERT, UPDATE чи DELETE.
Тригер, що спрацьовує на події рівня бази даних, як-от команди DDL.Логувати, блокувати або перевіряти зміни схеми по всій базі даних.
Розібраний запит, збережений для повторного виконання з прив'язаними параметрами.Використовувати один розбір і план для багатьох запусків того самого запиту.
Дескриптор, що тримає набір результатів відкритим для пострядкового читання.Посторінково гортати великі результати або крокувати рядками всередині підпрограми.
Безпека та правила
Іменована ідентичність, що тримає права; користувач — це роль, яка може входити.Згрупувати дозволи один раз, а потім надавати їх людям, сервісам або іншим ролям.
Команди, що надають права на об'єкти ролям або забирають їх.Вирішувати, яка роль може читати, писати або виконувати кожен об'єкт.
Вбудовані права творця змінювати або видаляти об'єкт, окремо від grant.Назвати роль, відповідальну за життєвий цикл об'єкта.
Постійна інструкція, що автоматично надає права на об'єкти, які роль створить пізніше.Задати права наперед, щоб нові таблиці не потребували ручних grant для ролі застосунку.
Правило, що відхиляє записи, які порушують оголошену умову.Забезпечувати гарантії NOT NULL, CHECK, UNIQUE, PRIMARY KEY і FOREIGN KEY.
Правило на роль, що ховає рядки, які сесія не повинна бачити.Ізоляція орендарів або доступ на користувача без переписування запитів застосунку.
Псевдонім, що розв'язує одне ім'я до об'єкта в іншому місці; рідний для Oracle і SQL Server.Переносити структури схем; у PostgreSQL натомість використовуйте search_path.
Визначення того, які дії записуються для перевірки, через pgaudit або інструменти вендора.Доводити, хто що читав або змінював, для комплаєнсу та розслідувань.
Інструкція, що переписує вхідний запит в іншу команду.Успадковане перенаправлення запису; PostgreSQL тепер надає перевагу тригерам або оновлюваним поданням.
Реплікація
Визначення на боці відправника про те, які таблиці і типи змін транслюються реплікам.Оголошувати, що база даних пропонує передплатникам логічної реплікації.
Отримувач, що з'єднується з publication і застосовує її зміни до локальних таблиць.Тягнути зміни з іншої бази даних PostgreSQL у цю.
Маркер, що змушує primary тримати WAL, доки споживач його не прочитає.Гарантувати, що standby або передплатник зможе продовжити без втрати змін.