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