- •Работа с субд PostgreSql
- •Работа с субд PostgreSql
- •Введение
- •1Установка PostgreSql
- •2Создание новой бд
- •2.1Создание новой бд
- •2.2Создание новой таблицы
- •2.3Создание связей между таблицами
- •3Создание индексов
- •4Доступ к PostgreSql из Java
- •4.1Соединение с PostgreSql
- •4.2Взаимодействие с бд
- •5Создание представлений
- •6Хранимые процедуры и Триггеры
- •6.1Хранимые процедуры
- •6.1.1Оператор Create Function языка pl/pgSql
- •6.1.2Создание хранимых процедур в pgAdmin III
- •6.1.3Вызов хранимых процедур в Java
- •6.2Триггеры бд
- •6.2.1Синтаксис определения триггера в PostgreSql
- •6.2.2Создание триггера в PgAdmin III
- •7Права доступа
- •Создание ролей;
- •7.1Создание ролей
- •7.2Назначение прав доступа
- •7.3Отмена прав доступа
- •7.4Проверка прав доступа
- •8Резервное копирование и восстановление бд
- •8.1Резервное копирование (BackUp) бд
- •8.2Восстановление (Restore) бд
- •8.3Создание sql-дампа бд
- •8.4Восстановление sql-дампа бд
- •8.5Восстановление sql-дампа средствами pgAdmin III
- •9Особенности взаимодействия субд access и PostgreSql
- •9.1Подготовка соединения PostgreSql с бд в Access
- •9.2Копирование таблиц Access в таблицы PostgreSql
- •9.3Подключение таблиц PostgreSql к бд в Access
- •10Администрирование PostgreSql
- •Литература
2.3Создание связей между таблицами
После того, как все таблицы БД созданы, необходимо связать их между собой. Для задания связей между таблицами используются первичные и внешние ключи. Для БД «Деканат ВУЗа» связь между таблицами Students и Groups задается с помощью первичного ключа таблицы Groups и внешнего ключа таблицы Students.
Чтобы создать внешний ключ нужно выбрать в окне Браузер объектов требуемую таблицу, активизировать ее контекстное меню и в нем выбрать пункт Свойства (рисунок 2.14).
Рисунок 2.14 – Контекстное меню объекта Таблица
После этого откроется окно свойств выбранной таблицы (рисунок 2.15).
В нем нужно открыть закладку Ограничения, выбрать в выпадающем списке тип ограничения вторичный (внешний) ключ и нажать кнопку Добавить. В результате выполнения этих действий появится окно Новый внешний ключ (рисунок 2.16).
Рисунок 2.15 – Закладка Ограничения окна свойств таблицы
Рисунок 2.16 – Окно Новый внешний ключ. Закладка Свойства
Ограничение внешнего ключа говорит, что значения в колонке (или группе колонок) должно совпадать со значениями, которые существуют в некоторых строках другой таблицы. Для примера: у таблицы Students значения в колонке GrNo должны совпадать со значениями в колонке GrNo таблицы Groups.
Чтобы создать новый внешний ключ необходимо выполнить следующие действия:
на закладке Свойства задать имя внешнего ключа, например, GrNoFK (FK от англ. Foreign Key – внешний ключ);
выбрать из списка таблицу, на которую ссылается внешний ключ (свойство Ссылается);
отметить свойство Совпадение полное, которое говорит о том, что значения внешнего ключа должны полностью совпадать со значениями первичного ключа;
на закладке Колонки (рисунок 2.17) выбрать колонку исходной таблицы (Локальная колонка), которая определяет внешний ключ (для приведенного примера это колонка GrNo таблицы Students), и колонку, на которую ссылается внешний ключ (колонка GrNo таблицы Groups);
Рисунок 2.17 – Закладка Колонки окна Новый внешний ключ
на закладке Действие (рисунок 2.18) выбрать действие, которое будет выполняться при изменении или удалении значения первичного ключа. Возможные варианты:
NO ACTION – никаких дополнительных действий и ограничений;
RESTRICT – удаление/изменение значения первичного ключа запрещается, если на него ссылается какой-либо внешний ключ. Это действие установлено по умолчанию;
CASCADE – удаление строки в родительской таблице приводит к удалению всех связанных с ней строк дочерней таблицы (например, если удалить запись о группе в таблице Groups, то автоматически будут удалены все записи о ее студентах в таблице Students); изменение значения первичного ключа родительской таблицы приводит к соответствующему изменению значений внешних ключей дочерней таблицы (например, если изменить какое-либо значение в колонке GrNo таблицы Groups, то автоматически будут изменены связанные с ним значения колонки GrNo в таблице Students);
SET NULL – удаление/изменение первичного ключа родительской таблицы приводит к установке в значение NULL всех внешних ключей дочерней таблицы, которые ссылаются на удаленное/измененное значения первичного ключа родительской таблицы (например, если удалить/изменить значение в колонке GrNo таблицы Groups, то связанные с ним значения колонки GrNo в таблице Students автоматически будут установлены в NULL);
SET DEFAULT – удаление/изменение первичного ключа родительской таблицы приводит к установке в значение по умолчанию всех внешних ключей дочерней таблицы, которые ссылаются на удаленное/измененное значения первичного ключа родительской таблицы.
Рисунок 2.18 – Закладка Действие окна Новый внешний ключ
Чтобы увидеть результат изменений колонки, таблицы, базы данных необходимо выделить соответствующий объект в окне Браузер объектов и выполнить его обновление (рисунок 2.19).
Рисунок 2.19 – Обновление объекта БД
Для ввода данных в определенную таблицу необходимо выбрать ее в окне Браузер объектов и нажать соответствующую кнопку (рисунок 2.20)
Рисунок 2.20 – Выбор таблицы для редактирования
После этого откроется окно редактирования данных выбранной таблицы (рисунок 2.21).
Рисунок 2.21 – Окно редактирования данных таблицы