Система управления базами данных PostgreSQL

Краткая история и содержание PostgreSQL как объектно-реляционной системы управления базами данных. Возможности данного программного пакета: функции, триггеры, индексы, многоверсионность, типы данных, пользовательские объекты, наследование и надежность.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 18.01.2015
Размер файла 25,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Реферат

Система управления базами данных PostgreSQL

Введение

программный триггер пользовательский

PostgreSQL - это свободно распространяемая объектно-реляционная система управления базами данных (ORDBMS), наиболее развитая из открытых СУБД в мире и являющаяся реальной альтернативой коммерческим базам данных.

Краткая история PostgreSQL

Объектно-реляционная СУБД, в настоящее время известная как PostgreSQL ведёт свое происхождение от пакета POSTGRES, который был написан в департаменте Беркли, Калифорнийского Университета. Более чем двадцатилетняя разработка PostgreSQL сделала этот продукт одной из наиболее продвинутых СУБД с открытым исходным кодом.

Проект POSTGRES

Проект POSTGRES, под руководством профессора Майкла Стоунбрейкера (Michael Stonebraker), был спонсирован Агентством Расширенных Оборонных Исследовательских Проектов (Defense Advanced Research Projects Agency (DARPA)), Офисом Армейских Исследований (Army Research Office (ARO)), Национальным Научным Фондом (National Science Foundation (NSF)), а также ESL, Inc. Реализация реляционной СУБД POSTGRES началась в 1986. Затем вышло несколько версий Postgres. Первая система заработала в 1987 и была продемонстрирована в 1988 на Конференции ACM-SIGMOD. Версия 1 была выпущена в июне 1989 года и могла работать с несколькими внешними пользователями.

СУБД POSTGRES была использована для реализации многих различных исследований и написания приложений. Сюда вошли: система анализа финансовых данных, пакет мониторинга производительности реактивных двигателей, база данных перемещений астероидов, база данных медицинской информации и несколько географических информационных систем. СУБД POSTGRES также использовлась как средство обучения в нескольких университетах. POSTGRES стал приоритетным менеджером данных для проекта научных вычислений Sequoia 2000 после 1992 года.

Размер сообщества пользователей этого продукта удвоился в 1993 году. Стало весьма очевидно, что обслуживание прототипа кода и его поддержка занимают гораздо больше времени, чем сами исследования в области баз данных. Пытаясь снизить нагрузку, связанную с поддержкой, проект Беркли POSTGRES официально прекратил своё существование с выходом версии 4.2.

Postgres95

В 1994, Эндрю Ю (Andrew Yu) и Джолли Чен (Jolly Chen) добавили в POSTGRES интерпретатор языка SQL. Затем Postgres95 был выложен в Интернет, чтобы найти свой собственный путь в мире продуктов с открытым исходным кодом, как потомок, основанный на оригинальном коде Беркли POSTGRES.

Postgres95 был полностью приведён к стандарту ANSI C и сократил свой размер на 25%. Были внесены многие внутренние изменения, которые увеличили производительность и обслуживаемость кода. Postgres95 версий 1.0.x был быстрее на 30-50% согласно Wisconsin Benchmark по сравнению с POSTGRES, Version 4.2. За исключением исправления ошибок, были сделаны следующие серьёзные расширения:

? Язык запросов PostQUEL был заменен на SQL (реализованный в этом сервере). Подзапросы не поддерживались вплоть до выхода PostgreSQL (см. ниже), но в Postgres95 их можно было иммитировать с помощью функций SQL, определяемых пользователем. Агрегаты были переписаны. Также в запросы была добавлена поддержка GROUP BY.

? Для интерактивных SQL запросов была предоставлена новая программа (psql), которая использовала библиотеку GNU Readline. Она вытеснила старую программу monitor.

? Была создана новая front-end библиотека, libpgtcl, поддерживающая клиентов, основанных на Tcl. Простая оболочка pgtclsh, предоставила новые команды Tcl для обеспечения взаимодействия Tcl программ и Postgres95.

? Была тщательно пересмотрена работа с большими объектами. Инверсионные большие объекты представляли собой только механизм для хранения больших объектов. (Инверсионная файловая система была удалена).

? Была удалена instance-level система правил. Правила стали доступны как переписываемые правила.

? Вместе с исходным кодом стал поставляться краткий учебник по особенностям работы с SQL в Postgres95.

? Для построения проекта стал использоваться GNU make (вместо BSD make). Также, Postgres95 был скомпилирован со стандартной версией GCC (выравнивание данных типа double было исправлено).

PostgreSQL

В 1996 году было решено, что имя «Postgres95» не соответствует настоящему времени. Разработчики выбрали новое имя PostgreSQL чтобы подчеркнуть отличие от оригинального POSTGRES и выход множества версий с поддержкой SQL.

При разработке Postgres95 акцент ставился на обнаружение и понимание существующих проблем в коде сервера. В PostgreSQL акцент сместился на расширение возможностей и совместимости при продолжении работы во всех других областях.

1. Основные возможности

Функции

Функции являются блоками кода, исполняемыми на сервере, а не на клиенте БД. Хотя они могут писаться на чистом 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 допускает использование функций, возвращающих набор записей, который далее можно использовать так же, как и результат выполнения обычного запроса.

Функции могут выполняться как с правами их создателя, так и с правами текущего пользователя.

Иногда функции отождествляются с хранимыми процедурами, однако между этими понятиями есть различие. С девятой версии возможно написание автономных блоков, которые позволяют выполнять код на процедурных языках без написания функций, непосредственно в клиенте.

Триггеры

Триггеры определяются как функции, инициируемые DML-операциями. Например, операция INSERT может запускать триггер, проверяющий добавленную запись на соответствия определённым условиям. При написании функций для триггеров могут использоваться различные языки программирования (см. выше).

Триггеры ассоциируются с таблицами. Множественные триггеры выполняются в алфавитном порядке.

Правила и представления

Механизм правил (англ. rules) представляет собой механизм создания пользовательских обработчиков не только DML-операций, но и операции выборки. Основное отличие от механизма триггеров заключается в том, что правила срабатывают на этапе разбора запроса, до выбора оптимального плана выполнения и самого процесса выполнения. Правила позволяют переопределять поведение системы при выполнении SQL-операции к таблице. Хорошим примером является реализация механизма представлений (англ. views): при создании представления создается правило, которое определяет, что вместо выполнения операции выборки к представлению система должна выполнять операцию выборки к базовой таблице / таблицам с учетом условий выборки, лежащих в основе определения представления. Для создания представлений, поддерживающих операции обновления, правила для операций вставки, изменения и удаления строк должны быть определены пользователем.

Индексы

В PostgreSQL имеется поддержка индексов следующих типов: B-дерево, хэш, R-дерево, GiST, GIN. При необходимости можно создавать новые типы индексов, хотя это далеко не тривиальный процесс. Индексы в PostgreSQL обладают следующими свойствами:

? возможен просмотр индекса не только в прямом, но и в обратном порядке - создание отдельного индекса для работы конструкции ORDER BY… DESC не нужно;

? возможно создание индекса над несколькими столбцами таблицы, в том числе над столбцами различных типов данных;

? индексы могут быть функциональными, то есть строиться не на базе набора значений некоего столбца / столбцов, а на базе набора значений функции от набора значений;

? индексы могут быть частичными, то есть строиться только по части таблицы (по некоторой её проекции); в некоторых случаях это помогает создавать намного более компактные индексы или достигать улучшения производительности за счёт использования разных типов индексов для разных (например, с точки зрения частоты обновления) частей таблицы;

? планировщик запросов может использовать несколько индексов одновременно для выполнения сложных запросов.

Многоверсионность (MVCC)

PostgreSQL поддерживает одновременную модификацию БД несколькими пользователями с помощью механизма Multiversion Concurrency Control (MVCC). Благодаря этому соблюдаются требования ACID, и практически отпадает нужда в блокировках чтения.

Типы данных

PostgreSQL поддерживает большой набор встроенных типов данных:

? Численные типы

o Целые

o С фиксированной точкой

o С плавающей точкой

o Денежный тип (отличается специальным форматом вывода, а в остальном аналогичен числам с фиксированной точкой с двумя знаками после запятой)

? Символьные типы произвольной длины

? Двоичные типы (включая BLOB)

? Типы «дата / время» (полностью поддерживающие различные форматы, точность, форматы вывода, включая последние изменения в часовых поясах)

? Булев тип

? Перечисление

? Геометрические примитивы

? Сетевые типы

o IP и IPv6-адреса

o CIDR-формат

o MAC-адрес

? UUID-идентификатор

? XML-данные

? Массивы

? JSON

? Идентификаторы объектов БД

? Псевдотипы

Более того, пользователь может самостоятельно создавать новые требуемые ему типы и программировать для них механизмы индексирования с помощью GiST.

2. Пользовательские объекты

PostgreSQL может быть расширен пользователем для собственных нужд практически в любом аспекте. Есть возможность добавлять собственные:

? Преобразования типов

? Типы данных

? Домены (пользовательские типы с изначально наложенными ограничениями)

? Функции (включая агрегатные)

? Индексы

? Операторы (включая переопределение уже существующих)

? Процедурные языки

Наследование

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

Прочие возможности

? Соблюдение принципов ACID

? Соответствие стандартам ANSI SQL-92 и SQL-99

? Поддержка запросов с OUTER JOIN, UNION, UNION ALL, EXCEPT, INTERSECT и подзапросов

? Последовательности

? Контроль целостности

? Репликация

? Общие табличные выражения и рекурсивные запросы

? Аналитические функции

? Поддержка Юникода (UTF-8)

? Поддержка регулярных выражений в стиле Perl

? Встроенная поддержка SSL, SELinux и Kerberos

? Протокол разделяемых блокировок

? Подгружаемые расширения, поддерживающие SHA1, MD5, XML

? Расширения для написания сложных выборок, отчётов и т.д. (API открыт)

? Средства для генерации совместимого с другими системами SQL-кода и импорта из других систем

? Автономные блоки на доступных языках, а не только SQL

3. Надёжность

Согласно результатам автоматизированного исследования различного ПО на предмет ошибок, в исходном коде PostgreSQL было найдено 20 проблемных мест на 775 000 строк исходного кода (в среднем, одна ошибка на 39 000 строк кода). Для сравнения: MySQL - 97 проблем, одна ошибка на 4 000 строк кода; FreeBSD (целиком) - 306 проблем, одна ошибка на 4 000 строк кода; Linux (только ядро) - 950 проблем, одна ошибка на 10 000 строк кода.

Заключение

PostgreSQL является полнофункциональной объектно-реляционной СУБД, готовой для практического использования. Ее функциональность и надежность обусловлены богатой историей развития, профессионализмом разработчиков и технологией тестирования, а ее перспективы заложены в ее расширяемости и свободной лицензии.

Размещено на Allbest.ru


Подобные документы

  • Система управления базами данных как составная часть автоматизированного банка данных. Структура и функции системы управления базами данных. Классификация СУБД по способу доступа к базе данных. Язык SQL в системах управления базами данных, СУБД Microsoft.

    реферат [46,4 K], добавлен 01.11.2009

  • Алгоритмы обработки массивов данных. Система управления базами данных. Реляционная модель данных. Представление информации в виде таблицы. Система управления базами данных реляционного типа. Графический многооконный интерфейс.

    контрольная работа [2,8 M], добавлен 07.01.2007

  • История создания, понятие, типы и функции системы управления базами данных. Изучение технологии копирования данных средствами устройства их хранения. Процесс разработки алгоритма и программы для нахождения максимального элемента массива А в массиве В.

    отчет по практике [360,4 K], добавлен 08.02.2014

  • Понятие и назначение, принципы построения и внутренняя структура системы управления базами данных, их функциональные особенности и возможности, критерии оценки эффективности. Языковые и программные средства. Использование SQL, типы и модели данных.

    презентация [677,3 K], добавлен 18.03.2015

  • Классификация баз данных. Использование пакета прикладных программ. Основные функции всех систем управления базами данных. Настольная система управления базами данных реляционного типа Microsoft Access. Хранение и извлечение электронных данных.

    курсовая работа [962,4 K], добавлен 23.04.2013

  • Особенности управления информацией в экономике. Понятие и функции системы управления базами данных, использование стандартного реляционного языка запросов. Средства организации баз данных и работа с ними. Системы управления базами данных в экономике.

    контрольная работа [19,9 K], добавлен 16.11.2010

  • Объекты системы управления базами данных Access. Запросы, формы, отчеты. Типы данных: текстовый, поле мемо, числовой. Поле объекта OLE, гиперссылка, мастер подстановок. Ручные, автоматизированные и автоматические средства создания объектов базы данных.

    презентация [872,0 K], добавлен 31.10.2016

  • Краткая характеристика и функциональные возможности MS Access. Базы данных и системы управления базами данных. Проектирование в теории и создание на практике базы данных в продукте корпорации Microsoft для управления базами данных "Microsoft Access".

    курсовая работа [1,6 M], добавлен 07.03.2015

  • Коротка історія розвитку об'єктно-реляційної СУБД - PostgreSQL. Проект POSTGRES департаменту Берклі. Основні концепції роботи з PostgreSQL: створення таблиць, внесення даних у таблицю та їх редагування. Основні елементи мови PLpgSQL, її структура.

    курсовая работа [1,0 M], добавлен 06.08.2013

  • Особливості побудови та роботи з об’єктно-реляційною моделлю даних в інструментальній системі управління базами даних PostgreSQL. Розробка бази даних факультету, що має у підпорядкуванні кілька кафедр. Тестування роботи спроектованої бази даних.

    курсовая работа [1,8 M], добавлен 09.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.