Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
8.01 Mб
Скачать

10.16.2. Техника создания связей между таблицами

Установление связей между таблицами рассмотрим на конкретном примере ~ нашей базе данных.

Выберите команду [Правка-Схема данных...]. На экране появится диалоговое окно (рис. 10.15) со списком всех таблиц открытой базы данных.

Примечание. Пользуясь полями выбора. Показать, вы можете включить в этот список и запросы (или создать список только из запросов).

Ваша задача - указать системе те таблицы, между которыми вы устанавливаете связи. Выделите таблицу заказы и нажмите кнопку Добавить, затем то же самое проделайте с таблицами клиенты и продукты. Нажмите кнопку Закрыть.

Примечание. Удерживая нажатой клавишу {Ctrl}, вы можете выделить (и добавить) сразу несколько таблиц.

На экране появляется окно документа <Схема данных> (рис. 10.16).

Это окно содержит все таблицы базы данных, между которыми устанавливаются (или уже установлены) связи. Для установления связи между двумя таблицами можно методом «Drag-and-Drop» переместить имя поля с первичным ключом главной таблицы на одноименное поле подчиненной таблицы.

Примечание. Для экономии места на рисунке мы показали уже завершенную схему (см. ниже).

Прежде всего установим связь между таблицами клиенты и заказы. Переместите «Код клиента» из таблицы клиенты на «Код клиента» в таблице заказы и отпустите левую кнопку мыши.

На экране появится диалоговое окно <Связи> (рис. 10.17).

В этом окне установите флажок «Обеспечение целостности данных». Этим вы включаете механизм поддержки целостности данных в таблицах клиенты и заказы (п.10.16.1).

После активизации флажка «Обеспечение целостности данных» становятся доступными группа полей выбора Отношение и два флажка каскадных операций.

В группе Отношение надо обязательно выбрать один из типов связи: «Один-к-Одному» или «Один-ко-Многим». Кроме этого, вы можете (если хотите) включить любой переключатель (или оба) каскадной модификации - обновления или удаления.

Нажмите кнопку Создать. На экране вновь появится окно <Схема данных> с графическим изображением установленной связи (рис. 10.16).

Пометки у концов линии связи означают, что одна запись таблицы клиенты может иметь сколько угодно связанных записей в таблице заказы.

Точно так же установите связь между таблицами ПРОДУКТЫ и заказы.

Если вы хотите удалить связь, щелкните мышью на линии связи (выделите ее), а затем нажмите клавишу {Del}.

Вопросы и задания

1. Что такое целостность данных?

2. Что такое каскадные операции?

3. Чем отличается каскадное обновление от каскадного удаления?

4. Укажите типы и опишите функции окон <Схема данных> и < Связи >.

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

10.17. Запрос-выборка в ms Access

10.17.1. Что такое запрос?

В спроектированных нами таблицах клиенты, продукты и заказы содержится вся информация, необходимая для решения поставленной нами задачи. Но как этой информацией пользоваться? Как узнать, например, общую стоимость продукции, заказанной клубом «Белый попугай» за определенный период, или каким клиентам отправлялась фруктовая пастила 14 мая 1997 г.? Не сидеть же перед компьютером с калькулятором, ручкой и бумагой!

В общем случае запрос - это вопрос о данных. Существуют разные типы запросов (на добавление записей, изменение, объединение), но мы рассмотрим простейший тип; запрос-выборку.

Запрос-выборка - это производная таблица, которая содержит те же структурные элементы, что и обычная таблица (столбцы-поля и строки), и формируется на основе фактических данных системы. При создании макета запроса (т. с. производной таблицы) в общем случае нам необходимо выполнить четыре базовые операции:

1) указать системе, какие поля и из каких таблиц мы хотим включить в запрос;

2) описать вычисляемые поля, т. е. поля, значения которых являются функциями значений существующих полей (например, стоимость продукции - это произведение цены на количество);

3) описать групповые операции над записями исходных таблиц (например, нужно ли объединить группу записей с одним и тем же кодом клиента в одну и просуммировать стоимость заказанной им продукции);

4) указать условие отбора, т. е. сформулировать логическое выражение, которое позволит включить в выборку только записи, удовлетворяющие какому-то условию (например, с датой поставки от 20 до 25 мая 1997 г.).

При разработке конкретного запроса допускается любое сочетание базовых операций. Например, составляя запрос к телефонному справочнику, мы можем ограничиться лишь операцией (1) и выдать на экран список телефонов с указанием имени абонента и наименования категории (из словаря SLOVKAT). В мощных современных системах (например, в системе «Вариант» - п. 10.20) при формировании запроса иногда достаточно выполнить только операцию (4), т. е. сформулировать логическое выражение (например, с приказом выдать список заказов, отправленных клиенту с кодом 40 14 июля 1997 г.).