- •Работа з субд PostgreSql
- •УстановкаPostgreSql
- •Создание новой бд
- •Создание новой бд
- •Создание новой таблицы
- •Определения первичного ключа таблицы
- •Особенности первичных ключей в PostgreSql
- •Внешние ключи и создание связей между таблицами
- •Ввод данных в таблицу
- •Резервное копирование и восстановление бд
- •Резервное копирование(BackUp) бд
- •Восстановление (Restore) бд
- •СозданиеSql-дампа бд
- •ВосстановлениеSql-дампа средствами pgAdmin III
- •Создание дампа с помощью утилит pg_dump или pg_dumpall
- •ВосстановлениеSql-дампа бд
- •Особенности взаимодействия субдAccessИPostgreSql
- •Подготовка соединения PostgreSql с бд вAccess
- •Копирование таблицAccessв таблицы PostgreSql
- •Подключение таблиц PostgreSql к бд вAccess
- •Характеристики PostgreSql
- •Размер базы данных
- •Поддерживаемые встроенные типы данных
- •Администрирование PostgreSql
- •Литература
Внешние ключи и создание связей между таблицами
После того, как все таблицы БД созданы, необходимо связать их между собой. Для задания связей между таблицами используются первичные и внешние ключи. Для БД «Деканат ВУЗа» связь между таблицами Students и Groups задается с помощью первичного ключа таблицы Groups и внешнего ключа таблицы Students. Первичный ключ таблицы Groups к этому времени уже должен быть создан.
Ограничение внешнего ключа говорит, что значение в колонке (или группе колонок) одной таблицы должно полностью совпадать со значениями, которые существуют в некоторых строках другой таблицы. Для примера: у таблицы Students значения в колонке GrNo должны совпадать с соответствующими значениями в колонке GrNo таблицы Groups.
Чтобы создать внешний ключ нужно выбрать в окне Браузер объектов требуемую таблицу, например Students, активизировать ее контекстное меню и в нем выбрать пункт Свойства (рисунок 2.20).
Рисунок 2.20 – Контекстное меню объекта Таблица
После этого откроется окно характеристик выбранной таблицы (рисунок 2.21).
Рисунок 2.21 – Закладка Ограничения окна свойств таблицы
В нем нужно открыть закладку Ограничения, выбрать в выпадающем списке тип ограничения вторичный (внешний) ключ и нажать кнопку Добавить. В результате выполнения этих действий появится окно Новый внешний ключ (рисунок 2.22).
Рисунок 2.22 – Окно Новый внешний ключ. Закладка Свойства
Чтобы создать новый внешний ключ необходимо выполнить следующие действия:
на закладке Свойства задать имя внешнего ключа, например, GrNoFK (FK от англ. Foreign Key – внешний ключ);
выбрать из списка таблицу, на которую ссылается внешний ключ (свойство Ссылается);
отметить свойство Совпадение полное, которое говорит о том, что значения внешнего ключа должны полностью совпадать со значениями первичного ключа;
на закладке Колонки (рисунок 2.23) выбрать колонку исходной таблицы (Локальная колонка), которая определяет внешний ключ (для приведенного примера это колонка GrNo таблицы Students), и колонку, на которую ссылается внешний ключ (колонка GrNo таблицы Groups);
Рисунок 2.23 – Закладка Колонки окна Новый внешний ключ
на закладке Действие (рисунок 2.24) выбрать действие, которое будет выполняться при изменении или удалении значения первичного ключа.
Рисунок 2.24 – Закладка Действие окна Новый внешний ключ
Возможные варианты действий:
NO ACTION – никаких дополнительных действий и ограничений;
RESTRICT – удаление/изменение значения первичного ключа запрещается, если на него ссылается какой-либо внешний ключ. Это действие установлено по умолчанию;
CASCADE – удаление строки в родительской таблице приводит к удалению всех связанных с ней строк дочерней таблицы (например, если удалить запись о группе в таблице Groups, то автоматически будут удалены все записи о ее студентах в таблице Students); изменение значения первичного ключа родительской таблицы приводит к соответствующему изменению значений внешних ключей дочерней таблицы (например, если изменить какое-либо значение в колонке GrNo таблицы Groups, то автоматически будут изменены связанные с ним значения колонки GrNo в таблице Students);
SET NULL – удаление/изменение первичного ключа родительской таблицы приводит к установке в значение NULL всех внешних ключей дочерней таблицы, которые ссылаются на удаленное/измененное значения первичного ключа родительской таблицы (например, если удалить/изменить значение в колонке GrNo таблицы Groups, то связанные с ним значения колонки GrNo в таблице Students автоматически будут установлены в NULL);
SET DEFAULT – удаление/изменение первичного ключа родительской таблицы приводит к установке в значение по умолчанию всех внешних ключей дочерней таблицы, которые ссылаются на удаленное/измененное значения первичного ключа родительской таблицы.
Чтобы увидеть результат изменений колонки, таблицы или БД необходимо выделить соответствующий объект в окне Браузер объектов и выполнить его обновление (рисунок 2.25).
Рисунок 2.25 – Обновление объекта БД