Объектно-реляционная СУБД PostgreSQL. Учебное пособие
.pdfнаиболее нагруженную часть базы данных (основную таблицу) размещают на высокопроизводительном сервере для обеспечения эффективного выполнения запросов пользователей. Остальные части БД можно размещать на менее производительных (и, значит, менее дорогих) серверах без ущерба для функционирования БД.
Такое размещение данных называется вертикальным шардингом.
Основная таблица может стать такой большой, что её не получится разместить даже на выделенном под неё одну сервере. В этом случае необходимо делать горизонтальный шардинг, т.е. разнести данные из этой таблицы на разные серверы. Однако тогда необходимо определить критерий шардинга, который позволит определять, на каком именно сервере лежат те или иные данные. Естественно, в этом случае время выполнения запросов, если они требуют просмотра всей таблицы, увеличивается. Однако горизонтальный шардинг имеет одно явное преимущество – теоретически он бесконечно масштабируем.
121
Заключение
Вданном пособии автор попытался продемонстрировать как базовые, так и специальные возможности СУБД PostgreSQL. Являясь бесплатной и свободно распространяемой СУБД, PostgreSQL составляет сильную конкуренцию самым известным коммерческим системам. PostgreSQL активно развивается усилиями большой группы разработчиков, среди которых есть и российские программисты. К сожалению, книг на русском языке не так много, а в официальной документации мало содержательных примеров использования возможностей СУБД. Автор надеется, что написанное пособие частично восполняет эти пробелы.
Вприведенном ниже списке литературы рассматриваются вопросы, не отраженные в пособии.
Список литературы
1.Уорсли Дж., Дрейк Дж. PostgreSQL для профессионалов. – СПб: Питер, 2003. – 496 с.
Книга предназначена для системных администраторов, занимающихся техническим сопровождением серверов БД, но ее материал также представляет интерес для широкого круга читателей, желающих поближе познакомиться с PostgreSQL.
2.Ригс С., Кросинг Х. Администрирование PostgreSQL 9. Книга рецептов. – М: ДМК Пресс, 2012. – 368 с.
В книге представлены ответы на общие вопросы и решения проблем, почерпнутые авторами из личного опыта работы с СУБД PostgreSQL – в качестве пользователей, разработчиков и преподавателей. Каждая задача разбивается на простые части, или рецепты, проиллюстрированные кодом и сопровождаемые подробными объяснениями, как и почему это работает. Таким образом, руководство будет полезно как новичкам, так и специалистам. Кроме того, здесь отражены все новые возможности PostgreSQL 9.
122
3.https://postgrespro.ru (электронный ресурс) – русскоязычная документация по СУБД PostgreSQL.
4.http://pgcookbook.ru (электронный ресурс) – книга рецептов для СУБД PostgreSQL.
5.http://postgresql.leopard.in.ua (электронный ресурс) – Васильев А.Ю. Работа с PostgreSQL: настройка и масштабирование.
123
Содержание
Введение.............................................................................................................................................. |
5 |
1. Начало работы................................................................................................................................. |
6 |
1.1. SQL Shell и pgAdmin III.......................................................................................................... |
6 |
1.2. Создание пользователей (ролей)............................................................................................ |
9 |
1.3. Создание базы данных.......................................................................................................... |
12 |
1.4. Создание таблиц БД.............................................................................................................. |
14 |
2. Основы SQL.................................................................................................................................. |
15 |
2.1. Базовые типы данных............................................................................................................ |
16 |
2.2. Типы данных, определяемые пользователем...................................................................... |
20 |
2.3. Создание схемы БД с помощью SQL-запросов.................................................................. |
22 |
2.4. Манипулирование данными с помощью SQL-запросов.................................................... |
29 |
2.5. Выборка данных с помощью SQL-запросов....................................................................... |
32 |
2.6. Отбор записей в предложении WHERE.............................................................................. |
39 |
2.7. Группировка записей в запросе. Агрегатные функции...................................................... |
41 |
2.8. Сортировка результатов запроса.......................................................................................... |
44 |
2.9. Представления и общие табличные выражения................................................................. |
45 |
2.10. Рекурсивные запросы.......................................................................................................... |
47 |
2.11. Возврат данных из запросов на модификацию................................................................. |
50 |
3. Встроенные и пользовательские функции. Язык PL/pgSQL.................................................... |
51 |
3.1. Создание пользовательских функций.................................................................................. |
52 |
3.2. Особенности языка PL/pgSQL. Объявление переменных................................................. |
55 |
3.3. Функции для работы с массивами....................................................................................... |
60 |
3.4. Управляющие конструкции языка PL/pgSQL..................................................................... |
61 |
3.5. Примеры функций на языках SQL и PL/pgSQL.................................................................. |
71 |
3.6. Оператор EXECUTE.............................................................................................................. |
76 |
4. Курсоры, триггеры, индексы....................................................................................................... |
79 |
4.1. Курсоры.................................................................................................................................. |
79 |
4.2. Триггеры................................................................................................................................. |
84 |
4.3. Индексы.................................................................................................................................. |
88 |
4.4. Основные типы индексов...................................................................................................... |
89 |
4.5. Специальные типы индексов................................................................................................ |
92 |
5. Специальные возможности.......................................................................................................... |
95 |
5.1. Работа с текстом..................................................................................................................... |
95 |
5.2. Регулярные выражения......................................................................................................... |
99 |
5.3. Полнотекстовый поиск........................................................................................................ |
101 |
5.4. Геометрические типы.......................................................................................................... |
103 |
5.5. Наследование....................................................................................................................... |
109 |
5.6. Перегрузка операций........................................................................................................... |
109 |
6. Инструментарий разработчика и администратора.................................................................. |
111 |
6.1. Анализ выполнения запроса............................................................................................... |
111 |
6.2. Секционирование................................................................................................................. |
118 |
6.3. Масштабирование базы данных......................................................................................... |
121 |
Заключение...................................................................................................................................... |
124 |
Список литературы......................................................................................................................... |
124 |
Содержание..................................................................................................................................... |
126 |
124
Учебное издание
ГУТМАН Геннадий Натанович
Объектно-реляционная СУБД PostgreSQL
Редактор В.В. Прокопова
Компьютерная верстка И.О. Миняева Выпускающий редактор Н.В. Беганова
Подписано в печать 17.01.17. Формат 60×84 1/16. Бумага офсетная Усл. п. л. 7,21. Уч.-изд. л. 7,18. Тираж 70 экз. Рег. № 181/16
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Самарский государственный технический университет» 443100, г. Самара, ул. Молодогвардейская, 244. Главный корпус
Отпечатано в типографии Самарского государственного технического университета
443100, г. Самара, ул. Молодогвардейская, 244. Корпус № 8
