
- •Задание на практику «разработка и создание базы данных»
- •Разработка и создание базы данных Проектирование базы данных
- •Создание таблиц в ms access
- •Создание структуры таблиц
- •Создание связей между таблицами
- •Основы технологий бд. Разработка форм в ms access
- •Основы технологий бд. Запросы к базе данных. Использование фильтров. Подготовка отчетов.
- •Запрос на выборку в режиме Конструктора
- •Использование в запросах вычисляемых полей
- •Многотабличные запросы
- •Итоговые запросы
- •Способы создания отчетов в ms Access:
- •Конструирование отчета в режиме Конструктора
- •Сортировка данных:
- •Группировка данных:
- •Создание отчета на основе нескольких таблиц с помощью Мастера
Создание связей между таблицами
Как известно из курса лекций по информатике, MS Access поддерживает 4 типа связей между таблицами: “один-к-одному”, “много-к-одному”, “один-ко-многим”, “много-ко-многим”.
Связь “один-к-одному” означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице.
Связь “один-ко-многим” означает, что каждая запись в одной таблице соответствует нескольким записям другой таблицы.
Связь “много-ко-многим” означает, что одна запись в первой таблице может быть связана более чем с одной записью из второй таблицы и одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.
В MS Access можно устанавливать постоянные связи между таблицами, которые будут поддерживаться при создании форм, отчетов и запросов. Устанавливая связи между таблицами, нужно выбирать поле, которое содержит одну и ту же информацию. Чаще связывают первичный ключ одной таблицы с совпадающими полями другой таблицы.
Создание связей между таблицами осуществляется в окне диалога “Схема данных”.
Определение связи “один-к-одному” (рассмотрим на примере определения связи между таблицами ТОВАРЫ и КАТЕГОРИЯ ТОВАРА. Одной записи в первой таблице соответствует только одна запись в другой таблице):
1-й шаг. Нужно закрыть все таблицы вашей БД. Нельзя создавать или удалять связи между открытыми таблицами.
2-й шаг. Открытие окна диалога “Схема данных”.
Для
этого необходимо выбрать в главном меню
команду Сервис, выбрать Схема
данных или нажать кнопку Схема
данных на панели инструментов
.
На экране появится окно диалога “Схема
данных”.
3-й шаг. Добавление в окно диалога связываемых таблиц.
Для
этого нужно выбрать команду Связи/Добавить
таблицу или нажать кнопку Отобразить
таблицу
на панели инструментов. Откроется окно
диалога “Добавление таблицы”. В списке
таблиц поочередно нужно выбрать
связываемые таблицы, нажимая кнопку
Добавить. После выбора всех необходимых
таблиц нужно закрыть диалоговое окно.
В окне диалога “Схема данных” появятся
связываемые таблицы (рисунок 12).
Рисунок 12 – Добавление таблиц
4-й шаг. Для связывания таблиц нужно выбрать поле в первой таблице и переместить его мышью на соответствующее поле в другой таблице.
5-й шаг. На экране появляется диалоговое окно “Изменение связей” (рисунок 13):
Рисунок 13 – Диалоговое окно «Изменение связей»
Здесь необходимо проверить правильность имен связываемых полей (если нужно – выбрать другие имена полей) и установить обеспечение целостности данных.
Определение целостности данных:
Целостность данных является одним из самых важных требований, предъявляемых к базам данных. Для задания условий целостности данных служат установленные между таблицами отношения.
Условия целостности данных - это набор правил, используемых для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связей данных. Данная операция изменяет только макет в окне диалога “Схема данных”.
Ограничения:
Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Но можно вводить пустые значения, показывающие, что записи не связаны.
Нельзя удалять записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
Нельзя изменять значение ключевого поля в главной таблице, если имеются записи, связанные с этой записью.
Теперь любая попытка выполнить действие, нарушающее ограничения, приведет к открытию окна диалога с предупреждением, а действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, нужно включить режимы каскадного обновления и каскадного удаления. При установленном флажке Каскадное обновление связанных полей изменение значения в ключевом поле главной таблицы приводит к автоматическому обновлению соответствующих значений во всех связанных записях. При установленном флажке Каскадное удаление связанных записей удаление записи в главной таблице приводит к автоматическому удалению связанных записей в подчиненной таблице. Эти флажки устанавливаются в окне диалога “Изменение связей” только после установки опции Обеспечение целостности данных.
Затем нужно нажать кнопку Создать. После этого окно диалога “Схема данных” примет иной вид (рисунок 14):
Рисунок 14 - Окно диалога “Схема данных” после установки связей
Определение связи “один-ко-многим”(рассмотрим на примере создания связи между таблицами ТОВАРЫ и ЗАКАЗЫ, т.к. один товар может быть заказан несколькими клиентами).
Данная связь определяется аналогично связи один-к-одному.
Рисунок 15 – Схема данных после установки связей
Определение связи “многие-ко-многим”
Пример такой связи – между таблицами КЛИЕНТЫ и ОРГАНИЗАЦИИ. Каждый из клиентов может работать в нескольких организациях, при этом каждая организация может работать с несколькими клиентами. Так как связь многие-ко-многим не существует, она осуществляется через дополнительную таблицу. Роль связующей для этих двух таблиц выполняет ВСПОМОГАТЕЛЬНАЯ таблица, содержащая поля, описание которых совпадает с описанием ключевых полей в каждой из двух связываемых таблиц - Код клиента и Код организации. В связующей таблице ключевые поля выполняют роль внешнего ключа.
1-й шаг. Создание третьей (связующей) таблицы с полями, описание которых совпадает с описанием ключевых полей в каждой из двух связываемых таблиц. Другие поля в связующую таблицу можно добавлять без ограничений.
2-й шаг. Определение в связующей таблице ключа, содержащего все ключевые поля двух связываемых таблиц (т.е. в таблице ВСПОМОГАТЕЛЬНАЯ составной ключ: Код клиента и Код организации).
3-й шаг. Определение связи с отношением “один-ко-многим” между каждой из двух таблиц и связующей таблицей (рисунок 16).
Рисунок 16 – Определение связей
Аналогично создаем связи между остальными таблицами. Результат показан на рисунке 17:
Изменение существующей связи
Изменять связи также можно только тогда, когда все таблицы закрыты.
1-й шаг. Нажать кнопку Схема данных на панели инструментов.
2-й шаг. Если таблицы, связи между которыми требуется изменить, не отображаются в окне диалога “Схема данных”, нажмите кнопку Отобразить таблицу на панели инструментов, выберите нужную таблицу, затем нажмите кнопку Закрыть.
3-й шаг. Установите указатель на линию связи, которую требуется изменить, и дважды щелкните мышью. Откроется окно диалога “Изменение связей”, где вносятся нужные изменения (рисунок 13).
Рисунок 17 – Схема данных после создания связей
Удаление связи
Нажать кнопку Схема данных на панели инструментов.
Выделить мышью линию связи, которую нужно удалить.
Нажать клавишу <Delete>.
Аналогично в окне диалога “Схема данных” можно удалить таблицу из макета схемы данных (при этом таблица и ее связи сохранится в базе данных).