Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Хранимые процедуры и триггеры ⇐ ПредыдущаяСтр 5 из 5
Хранимые процедуры в PostgreSQL могут быть написаны на любом из поддерживаемых встроенных языков. Хранимые процедуры могут быть использованы в триггерах и могут возвращать любой из поддерживаемых типов данных, а также массивы и списки. Триггеры определяются как функции, которые инициируются операциями манипулирования. Триггеры могут быть назначены до или после операций INSERT, UPDATE или DELETE. Если произошло событие, на которое был назначен триггер, то вызывается закрепленная за этим триггером процедура. Например, операция INSERT может запускать триггер, проверяющий прибавленную запись на соответствии определенным условиям. При написании функций для триггеров могут использоваться разные языки программирования. Триггеры ассоциируются с таблицами и выполняются в алфавитном порядке. В версии 9.0 введены триггеры на столбцы и, кроме того, при объявлении триггера можно использовать ключевое слово WHEN, которое добавляет дополнительное условие для срабатывания триггера. Функции Функции являются блоками кода, выполняемыми на сервере, а не на стороне клиента БД. Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть разница. Хотя они могут создаваться на чистом SQL, реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки собственно SQL и требует использования некоторых языковых расширений. Функции могут писаться на одном из языков: - встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, что используется в СУБД Oracle; - скриптовые языки - PL/Lua, PL/LOLCODE, PL/Perl, PL/PHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl и PL/Scheme; - классические языки - C, C + +, Java (через модуль PL/Java); - статистический язык R (через модуль PL/R). PostgreSQL допускает использование функций, которые возвращают набор записей, который дальше можно использовать так же, как и результат выполнения обычного запроса (курсор). Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя. Начиная с 9.0, можно создавать функции без объявления имени (анонимные блоки) для выполнения блока операторов на любом встроенном языке, который поддерживает PostgreSQL, прямо в командной строке. Типы данных PostgreSQL поддерживает большой набор встроенных типов данных:
- численные типы; - целые; - с фиксированной точкой; - с плавающей точкой; - денежный (отличается специальным форматом вывода, а в остальном аналогичен числам с фиксированной точкой и двумя знаками после запятой); - символьные типы произвольной длины; - двоичные типы (включая большой двоичный объект BLOB - Binary Large Object); - типы «дата/время» (полностью поддерживают разные форматы, точность, форматы вывода, включая последние изменения в часовых поясах); - логический тип; - перечислимый тип; - геометрические примитивы; - сетевые типы; - IP і IPv6 –адреса; - CIDR –формат. CIDR (Classless Inter-Domain Routing) - бесклассовая адресация - метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёстких рамок IP-адресации на основе классов сетей; - МАС –адреса. Уникальный идентификатор, присваиваемый каждой единице сетевого оборудования; - UUID тип. UUID (Universally Unique Identifier) – это стандарт идентификации, используемый при создании программного обеспечения. Наиболее распространённым использованием данного стандарта является Globally Unique Identifier (GUID) фирмы Microsoft; - XML тип. XML (Xtensible Markup Language) - текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки; - массивы; - OID –типы. OID (Object identifiers) представляют идентификаторы различных объектов и используются обычно в PostgreSQL как первичные ключи для различных системных таблиц. Эти типы представляются как 4-байтовое целые числа без знака, т.е. имеют достаточно ограниченный диапазон значений, поэтому не могут использоваться в больших базах данных; - композитные типы (composite type) представляет структуру ряда или записи, т.е. по существу список имен полей и их типов данных; - псевдотипы (pseudo-types) не могут использоваться в качестве типа данных столбца таблицы или представления, но могут использоваться для объявления аргументов функции или типа результата. С любым объектом данных, представленным в PostgreSQL, связывается определенный тип, даже если на первый взгляд это и не очевидно. Тип данных одновременно определяет и ограничивает разновидности операций, которые могут выполняться с этими данными.
Хотя большинство типов данных PostgreSQL взято непосредственно из стандартов SQL, существуют и другие, нестандартные типы данных (например, геометрические и сетевые типы). В таблице 1 перечислены основные базовые типы данных PostgreSQL, а также их синонимы (альтернативные имена). Таблица 1 – Типы данных PostgreSQL
Помимо встроенных типов данных, пользователь может самостоятельно создавать новые необходимы ему типы и программировать для них механизмы индексирования c помощью методов GiST. Пользовательские объекты PostgreSQL может быть расширен пользователем для собственных потребностей практически в любом аспекте. Есть возможность добавлять: - типы данных и их преобразования; - домены; - функции (включая агрегатные); - индексы; - операторы (включая переопределение уже существующих); - процедурные языки. Как и в SQL Server, данные в базе данных PostgreSQL организованы в нескольких разных объектах: - домены (domains); - конфигурация полнотекстового поиска (FTS configuration); - словари полнотекстового поиска (FTS dictionaries); - синтаксические анализаторы полнотекстового поиска (FTS parsers); - шаблоны полнотекстового поиска (FTS templates); - функции (functions); - последовательности (sequences); - таблицы (tables); - триггеры (trigger functions); - представления (views).
Выводы В процессе выполнения лабораторной работы я изучил теоретические сведения о СУБД PostgreSQL, узнал важные свойства, возможности и преимущества этой СУБД. Мне удалось установить последнюю на данный момент версию 9.5.1
Контрольные вопросы 1. Для чего предназначена и в чем суть технологии MVCC? технология МVСС. MVCC (Multiversion Concurrency Control) используется в PostgreSQL для управления конкурентным доступом к данным на многовариантной основе. Эта технология позволяет предотвращать лишние блокировки (locking) операций чтения операциями, производящими обновление записей. PostgreSQL отслеживает все транзакции, выполняемые пользователями базы данных, что позволяет работать с записями без ожидания их освобождения. На практике это означает, что при запросе к БД каждая транзакция видит как бы снимок данных (версию) на момент этого снимка, а не текущее состояние данных. Таким образом, транзакции защищаются от просмотра незафиксированных данных, которые в данный момент могут только формироваться конкурентными транзакциями в тех же самых строках таблицы. Основное преимущество MMVC состоит в том, что чтение данных никогда не блокирует запись, а запись никогда не блокирует чтение. MMVC позволяет избегать явного блокирования на уровне таблиц и отдельных записей, которое используется в традиционных СУБД, и, таким образом, минимизирует блокирование данных и увеличивает производительность в многопользовательских системах БД. Также реализовано отслеживание взаимных блокировок (deadlocks);
2. Что такое WAL? сохраняющая регистрация WAL. WAL ( Write-Ahead Logging) является стандартным методом для обеспечения целостности данных. Сохраняющая регистрация - метод регистрации (журналирования) транзакций, при котором запись в журнале делается до записи данных. Используется также в MS SQL Server. Суть WAL заключается в том, что изменения в файлах данных (таблицы и индексы) должны быть внесены только после записи в журнал (log), в котором фиксируются эти изменения. Эта процедура позволяет не переписывать страницы данных на диске при каждой транзакции, так как в случае аварии мы сможем восстановить базу данных с помощью журнала. Механизм WAL обеспечивает следующие преимущества: - повышение производительности работы СУБД за счет того, что записываются только внесенные изменения без переписывания всех данных в таблицах; - повышение надежности храпения данных за счет предыдущего сохранения буферизованных данных в WAL; возможность отката состояния БД на любой момент времени, путем применения WAL к существующей резервной копии;
1. Что представляет собой технология TOAST? В чем особенности ее реализации.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 218; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.8.42 (0.013 с.) |