Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных. Практический курс. В 2 частях. Ч.1. Объектно-реляционные базы данных на примере PostgreSQL 9.5. Учебное пособие.pdf
X
- •Введение
- •Контрольные вопросы
- •Создание базы данных
- •Создание таблиц
- •Создание последовательностей
- •Ввод данных
- •Оператор CREATE TABLE
- •Оператор ALTER TABLE
- •Операторы DROP TABLE и DROP
- •Создание индексов
- •Контрольные вопросы
- •Средства определения данных языка SQL
- •Средства запроса данных языка SQL
- •Чтение заданных столбцов из одиночной таблицы
- •Чтение заданных строк из одиночной таблицы
- •Чтение заданных строк и столбцов из одиночной таблицы
- •Сортировка результатов
- •Агрегатные функции и группировка
- •Оконные функции
- •Чтение данных из нескольких таблиц с применением вложенных запросов
- •Чтение данных из нескольких таблиц с помощью операции соединения
- •Объединения
- •Средства модификации данных языка SQL
- •Вставка данных, оператор INSERT
- •Изменение данных, оператор UPDATE
- •Удаление данных, оператор DELETE
- •Транзакции
- •SQL-представления
- •Использование представлений для скрытия столбцов и строк
- •Использование представлений для отображения вычисляемых столбцов
- •Использование представлений для скрытия сложного синтаксиса
- •SQL-запросы в прикладных программах
- •Хранимые процедуры
- •Триггеры
- •Использование триггеров для проверки допустимости вводимых данных
- •Триггер, обновляющий представление
- •Триггер, обеспечивающий ссылочную целостность
- •Модуль TABLEFUNC
- •Словарь метаданных
- •Контрольные вопросы
- •Функция ROW_NUMBER
- •Функция COALESCE
- •Числовые функции
- •Тригонометрические функции
- •Контрольные вопросы
- •Заключение
- •Библиографический список

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное бюджетное образовательное учреждение
высшего образования
«УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
А. М. Наместников
А. А. Филиппов
БАЗЫ ДАННЫХ. ПРАКТИЧЕСКИЙ КУРС
Часть 1.
Объектно-реляционные базы данных
на примере PostgreSQL 9.5
Учебное пособие
по курсу «Базы данных»
Ульяновск
УлГТУ
2017

УДК 004.65
ББК 32.972.134
Н30
Рецензенты:
Заведующий кафедрой «Телекоммуникационные технологии и сети»
УлГУ, д-р техн. наук, профессор Смагин А. А.
Главный научный сотрудник ФНПЦ АО «НПО «Марс», д-р техн. наук,
Токмаков Г. П.
Утверждено редакционно-издательским советом университета
в качестве учебного пособия для вузов
Наместников Алексей Михайлович
Н30 Базы данных. Практический курс. В 2ч. Ч. 1. Объектно-реляционные базы
данных на примере PostgreSQL 9.5: учебное пособие / А.М. Наместников,
А.А. Филиппов. — Ульяновск: УлГТУ, 2017. — 113c.
ISBN 978-5-9795-1743-8
Учебное пособие содержит основные сведения, необходимые для
построения баз данных в среде PostgreSQL 9.5 с практическими примерами.
Для студентов вузов, обучающихся по направлениям «Прикладная
информатика(в экономике)», «Программная инженерия» и другим,
применяющим ЭВМ в задачах построения баз данных.
УДК 004.65
ББК 32.972.134
c
Оформление. УлГТУ, 2017
ISBN 978-5-9795-1743-8
c
Наместников А.М., Филиппов А.А., 2017

ОГЛАВЛЕНИЕ
Введение 6
1 Установка PostgreSQL 7
1.1 Установка PostgreSQL для Windows . . . . . . . . . . . . 7
1.2 Установка PostgreSQL для Linux . . . . . . . . . . . . . . 12
1.3 Утилита pgAdmin III . . . . . . . . . . . . . . . . . . . . . 14
1.4 Утилита psql . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . 20
2 Описание практического примера 21
2.1 Наполнение тестовой БД . . . . . . . . . . . . . . . . . . 26
2.1.1 Создание базы данных . . . . . . . . . . . . . . . . 26
2.1.2 Создание таблиц . . . . . . . . . . . . . . . . . . . 26
2.1.3 Создание последовательностей . . . . . . . . . . 28
2.1.4 Ввод данных . . . . . . . . . . . . . . . . . . . . . . 30
2.1.5 Создание индексов . . . . . . . . . . . . . . . . . . 33
2.2 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . 34
3 Введение в язык SQL 35
3.1 Средства определения данных языка SQL . . . . . . . . 35
3.1.1 Оператор CREATE TABLE . . . . . . . . . . . . . . 35
3.1.2 Оператор ALTER TABLE . . . . . . . . . . . . . . . 37
3.1.3 Операторы DROP TABLE и DROP . . . . . . . . . . 40
3.2 Средства запроса данных языка SQL . . . . . . . . . . . 41
3.2.1 Чтение заданных столбцов из одиночной таблицы 41
3.2.2 Чтение заданных строк из одиночной таблицы . 43
3.2.3 Чтение заданных строк и столбцов из одиноч-
ной таблицы . . . . . . . . . . . . . . . . . . . . . . 44
3.2.4 Диапазоны, специальные символы и пустые
значения в предложениях WHERE . . . . . . . . 46
3.2.5 Сортировка результатов . . . . . . . . . . . . . . . 48
3.2.6 Агрегатные функции SQL . . . . . . . . . . . . . . 50
3.2.7 Агрегатные функции и группировка . . . . . . . . 51
3.2.8 Оконные функции . . . . . . . . . . . . . . . . . . 53
3

ОГЛАВЛЕНИЕ ОГЛАВЛЕНИЕ
3.2.9 Чтение данных из нескольких таблиц с приме-
нением вложенных запросов . . . . . . . . . . . . 54
3.2.10 Чтение данных из нескольких таблиц с помо-
щью операции соединения . . . . . . . . . . . . . 55
3.2.11 Внешние соединения . . . . . . . . . . . . . . . . . 61
3.2.12 Объединения . . . . . . . . . . . . . . . . . . . . . 62
3.3 Средства модификации данных языка SQL . . . . . . . . 63
3.3.1 Вставка данных, оператор INSERT . . . . . . . . . 63
3.3.2 Изменение данных, оператор UPDATE . . . . . . 65
3.3.3 Удаление данных, оператор DELETE . . . . . . . 65
3.4 Транзакции . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.1 Контрольные вопросы . . . . . . . . . . . . . . . . 68
4 Применение SQL 69
4.1 SQL-представления . . . . . . . . . . . . . . . . . . . . . . 69
4.1.1 Использование представлений для скрытия
столбцов и строк . . . . . . . . . . . . . . . . . . . 70
4.1.2 Использование представлений для отображе-
ния вычисляемых столбцов . . . . . . . . . . . . . 71
4.1.3 Использование представлений для скрытия
сложного синтаксиса . . . . . . . . . . . . . . . . 72
4.2 SQL-запросы в прикладных программах . . . . . . . . . 76
4.3 Хранимые процедуры . . . . . . . . . . . . . . . . . . . . 77
4.4 Триггеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.4.1 Использование триггеров для проверки допу-
стимости вводимых данных . . . . . . . . . . . . . 82
4.4.2 Использование триггеров для присвоения зна-
чений по умолчанию . . . . . . . . . . . . . . . . . 84
4.4.3 Триггер, обновляющий представление . . . . . . 86
4.4.4 Триггер, обеспечивающий ссылочную целост-
ность . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.5 Правила . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.6 Модуль TABLEFUNC . . . . . . . . . . . . . . . . . . . . . 90
4.7 Словарь метаданных . . . . . . . . . . . . . . . . . . . . . 92
4.8 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . 93
4

ОГЛАВЛЕНИЕ ОГЛАВЛЕНИЕ
5 Дополнительные возможности 94
5.1 Функция ROW_NUMBER . . . . . . . . . . . . . . . . . . . 94
5.2 Функция COALESCE . . . . . . . . . . . . . . . . . . . . . 94
5.3 Числовые функции . . . . . . . . . . . . . . . . . . . . . . 95
5.4 Тригонометрические функции . . . . . . . . . . . . . . . 99
5.5 Работа со строками . . . . . . . . . . . . . . . . . . . . . . 99
5.6 Работа с датой и временем . . . . . . . . . . . . . . . . . 105
5.7 Контрольные вопросы . . . . . . . . . . . . . . . . . . . . 109
Заключение 111
Библиографический список 112
5

ВВЕДЕНИЕ
Наверное, нет более распространенного приложения в мире
информационных систем, чем базы данных. Они применяются как
в составе сложных интегрированных информационных систем, так
и в виде простых однопользовательских приложений. В настоящее
время известно большое количество систем управления базами
данных (СУБД), использующих различные модели данных. Наиболее распространенной моделью данных является реляционная
модель.
В данном учебном пособии содержится материал, используя
который можно приступить к реализации собственных информационных систем, ядром которых будет СУБД PostgreSQL 9.5, являющаяся свободно распространяемым программным продуктом.
Конечно, материал учебного пособия не раскрывает все тонкости
практической работы с PostgreSQL 9.5. В частности, не рассмотрены вопросы администрирования, безопасности и применения стандартов доступа к базам данных. Для получение дополнительной
информации следует обращаться к литературе из предложенного
списка.
А.М. Наместников,
А.А. Филиппов
6

1 УСТАНОВКА POSTGRESQL
PostgreSQL — объектно-реляционная система управления базами данных, разработка которой ведется начиная с 1977 года.
Работа началась с проекта Ingres в Калифорнийском университете (Беркли). В настоящее время над проектом PostgreSQL активно работает группа разработчиков со всего мира. PostgreSQL распространяется под свободной лицензией и с открытым исходным
кодом.
В данной главе рассматриваются вопросы, связанные с инсталляцией PostgreSQL 9.5 для операционных систем семейства
Windows NT и GNU/Linux. Успешность инсталляции и работоспособность СУБД PostgreSQL 9.5 проверялась авторами для систем
Windows XP, Windows 8.1, Windows 10, Linux Mint 18, Ubuntu 16.04
и Fedora 24.
1.1 Установка PostgreSQL 9.5 для Windows
Начиная с 9.0 версии PostgreSQL для операционных систем семейства Windows NT, предоставляются дистрибутивы для архитектур x86 (32-разрядная) и x86_64 (64-разрядная). В данном пособии
рассматривается установка 64-разрядной версии PostgreSQL 9.5.4
на 64-разрядную версию Windows 10 Профессиональная. Установка
производилась под учетной записью пользователя, имеющего права администратора системы.
Установка начинается с автоматического процесса конфигурирования библиотеки Visual C++. Далее появляется типовое окно начала инсталляции (рис. 1.1). В следующем диалоговом окне
предлагается указать каталог, в который будет устанавливаться
PostgreSQL (рис. 1.2).
Очередное диалоговое окно предоставляет возможность указать каталог, в котором будут храниться файлы баз данных
(рис. 1.3). Изменение данного параметра позволяет осуществить
возможность хранения таких файлов на других дисках или в других каталогах, например, для увеличения производительности базы данных. Путь, указывающий на место хранения файлов баз
данных, впоследствии можно изменить через файл конфигурации
postgresql.conf.
7

1.1. Установка POSTGRESQL для WINDOWS Глава 1. Установка POSTGRESQL
Рис. 1.1. Диалоговое окно инсталлятора PostgreSQL
Рис. 1.2. Диалоговое окно определения каталога установки PostgreSQL
8

Глава 1. Установка POSTGRESQL 1.1. Установка POSTGRESQL для WINDOWS
Рис. 1.3. Диалоговое окно определения каталога файлов баз данных PostgreSQL
В самой СУБД PostgreSQL есть специальный пользователь –
суперпользователь postgres, который имеет максимальные права
внутри СУБД, т. е. может создавать, модифицировать или удалять
любые базы данных и учетные записи любых пользователей. Следующее диалоговое окно позволяет задать пароль для суперпользователя postgres (рис. 1.4).
В диалоговом окне на рисунке 1.5 установщик предлагает указать порт TCP/IP для PostgreSQL. В большинстве случаев можно
оставить тот, который предлагается по умолчанию.
В следующем диалоговом окне (рис. 1.6) система предлагает
выбрать локаль, с использованием которой будет инициализирован
кластер баз данных и которая в дальнейшем будет использоваться по умолчанию при создании других баз данных. Это довольно
важный шаг, так как локаль определяет такой важный параметр
как кодировка данных в созданных базах данных. На рисунке 1.6
выбрана локаль «Russia, Russia». В этом случае кодировка базы
данных будет windows-1251. Иногда есть необходимость работать с
кодировкой UTF-8. Эта кодировка будет установлена в том случае,
если в данном окне выбирается локаль по умолчанию: «by default».
9

1.1. Установка POSTGRESQL для WINDOWS Глава 1. Установка POSTGRESQL
Рис. 1.4. Диалоговое окно определения пароля суперпользователя
Рис. 1.5. Диалоговое окно определения номера порта
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
