Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по Access_2-испр.doc
Скачиваний:
15
Добавлен:
07.11.2018
Размер:
2.47 Mб
Скачать

Упражнение № 3 Определение связей между таблицами

База данных содержит множество таблиц, связь между которыми устанавливается с помощью совпадающих полей. Отношение между объектами определяет отношение между таблицами. MS Access поддерживает четыре типа отношений между таблицами: “один-к-одному”, “один-ко-многим”, “много-к-одному”, “много-ко-многим”.

Задание № 2.7. Создайте связь “один-к-одному” между таблицами “Физические лица” и “Сотрудники”.

Порядок работы:

  1. Закройте все таблицы.

  2. На панели инструментов щёлкните на кнопке - Схема данных. Откроется окно Схема данных.

  3. В появившемся окне Добавление таблицы (рис. 20) выделите таблицу “Физические лица и щёлкните по кнопке Добавить. Если окно Добавление таблицы автоматически не открылось, тогда необходимо выбрать на панели инструментов кнопку Отобразить таблицу. Так же необходимо добавить макет таблицы “Сотрудники” в окно Схема данных. Закройте окно Добавление таблицы.

Рис. 20

  1. Измените размеры макетов таблиц “Сотрудники” и “Физические лица” так, чтобы были видны все поля (рис. 21).

Рис. 21

  1. Поставьте мышку на имя поля Код ФизЛица в таблице “Физические лица” и, не отпуская кнопку мышки, перетащите её на поле Код сотрудника в таблице “Сотрудники”. Отпустите мышку. Появится диалоговое окно Связи, представленное на рис. 22.

Рис. 22

  1. Установите флажок Обеспечение целостности данных. Это невозможно будет сделать, если типы обоих полей заданы не одинаково. Нажмите на кнопку Создать.

  2. Сохраните и закройте схему данных.

Замечание: В нашем примере мы получили самую простую связь “один-к-одному”. Отношение “один-к-одному” означает, что каждая запись в одной таблице соответствует только одной записи в другой таблице. Таблицы “Физические лица” и “Сотрудники” содержат информацию о сотрудниках одной компании. В таблице “Физические лица” содержатся данные о личности сотрудника, а в таблице “Сотрудники” – профессиональные сведения о тех же самых людях. Таким образом, для одного человека может существовать только одна запись, содержащая профессиональные сведения.

Связь между этими таблицами поддерживается при помощи совпадающих полей: Код сотрудника таблицы “Сотрудники” и Код ФизЛица таблицы “Физические лица”. Заметьте, что связь между таблицами устанавливается на основании значений совпадающих полей, но не их наименований.

Задание № 2.8. Создайте связь “один-ко-многим” между таблицами “Сотрудники” и “Заказы”.

Порядок работы:

  1. Порядок работы аналогичен заданию 2.7, только связывается ключевое поле Код сотрудника таблицы “Сотрудники” с полем Заказ принял таблицы “Заказы” как показано на рис. 23.

Рис. 23

  1. В диалоговом окне Изменение Связей (рис. 22) установите флажок Обеспечение целостности данных, а так же каскадное обновление связанных полей и каскадное удаление связанных записей.

  2. Сохраните и закройте схему данных.

Замечание: Отношение “один-ко-многим” – создаётся в том случае, когда только одно из полей является ключевым или имеет уникальный индекс. В нашем примере один заказ может оформить только один человек из множества сотрудников, а один сотрудник может выполнить множество заказов. Обычно в таблицах, имеющих между собой связь “один-ко-многим” используют подстановку данных.

Отношение “много-к-одному” аналогично рассмотренному ранее типу “один-ко-многим”. Тип отношения между объектами зависит от вашей точки зрения. Например, если вы будете рассматривать отношение между сделанными заказами и сотрудниками, то получите отношение “много-к-одному” и наоборот - отношение между сотрудниками и сделанными заказами, будет рассматриваться как отношение “один-ко-многим”.

Активизация флажка каскадное обновление связанных полей приведёт к тому, что при изменении сотрудника в таблице “Сотрудники” автоматически изменится запись в таблице “Заказы”.

Активизация флажка каскадное удаление связанных записей приведёт к тому, что при удалении сотрудника в таблице “Сотрудники” автоматически удалиться запись в таблице “Заказы”.

Задание № 2.9. Создайте связь “много-ко-многим” между таблицами “Заказы”, “Товары” и “Клиенты”.

Порядок работы:

  1. Порядок работы аналогичен заданию 2.7, только связывается ключевое поле КодКлиента таблицы “Клиенты” с полем КодКлиента таблицы “Заказы” и ключевое поле Код товара таблицы “Товары” с полем Код товара таблицы “Заказы” как показано на рис. 24.

  2. Сохраните и закройте схему данных.

Рис. 24

Замечание: В нашем примере, между таблицами “Заказы” и “Товары”, а так же “Заказы” и “Клиенты” получили связь “много-к-одному” (“один-ко-многим”). Между таблицами “Товары” и “Клиенты” установилась связь “много-ко-многим”, так как на каждый поставляемый товар может быть более одного заказа. Аналогично, каждый товар может быть заказан более чем одним клиентом. Связь между таблицами устанавливается на основании значений в совпадающих полях Код товара и КодКлиента.

Отношение “много-ко-многим” возникает между двумя таблицами в тех случаях, когда:

  • Одна запись из первой таблицы может быть связана более чем с одной записью из второй таблицы;

  • Одна запись из второй таблицы может быть связана более чем с одной записью из первой таблицы.

Из нашего примера видно, что связь типа “много-ко-многим” получается путём создания таблицы “Заказы”, которая связывает две исходные таблицы косвенным образом. Эта таблица содержит всю информацию о заказах, в том числе, какие продукты и клиенты включены в данный заказ. Из-за того, что таблица “Заказы” образует часть отношения “много” для двух связей типа “один-ко-многим”, она имеет два внешних ключа. Вместе эти два ключа образуют первичный ключ для таблицы “Заказы”, поскольку их комбинация уникальна для каждой записи.

Задание № 2.10. Создайте связи между таблицами “Товары” и “Категория товара”, а так же “Сотрудники” и “Отдел”.

Порядок работы:

  1. Откройте схему данных и добавьте отсутствующие таблицы.

  2. Установите связь между таблицами: ”Товары” и “Категория товара”.

  3. Установите связь между таблицами “Сотрудники” и “Отделы”.

  4. Установите флажки Обеспечение целостности данных, каскадное обновление связанных полей и каскадное удаление связанных записей.

  5. Вид общей схемы данных показан на рис. 25.

  6. Закройте и сохраните схему данных.

Замечание: Для изменения связей между таблицами необходимо курсор мыши подвести к линии связи и двойным щелчком левой кнопкой мыши открыть диалоговое окно Изменения связей.

Рис. 25

ВОПРОСЫ К РАБОТЕ № 2

  1. Дайте полные определения первичного ключа и индекса.

  2. Перечислите виды первичных ключей.

  3. Как осуществляются связи между таблицами и для чего они нужны?

  4. Как просмотреть связанные записи из нескольких таблиц?

  5. Перечислите и дайте определения типов отношений между таблицами.

  6. Дайте определение условий целостности данных.

  7. В каких случаях используются каскадные операции?

  8. Как осуществляется редактирование и удаление связей?

  9. Для чего используется поле подстановки в таблицах?

  10. Как осуществить простую подстановку в режиме конструктора таблиц?

  11. Как работает мастер подстановки в режиме конструктора таблиц?