Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обработка данных в офисных приложениях Microsof...doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
11.96 Mб
Скачать

Установив целостность данных, необходимо придерживаться следующих правил:

  • Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы (в таблицу Заказы нельзя занести запись с номером клиента, не имеющегося в таблице Клиенты). Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести пустое значение в поле Код клиента.

  • Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы Клиенты, если в таблице Заказы имеются заказы, относящиеся к данному клиенту.

  • Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код сотрудника в таблице Клиенты, если в таблице Заказы имеются заказы, относящиеся к этому клиенту.

Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок Inforce Referential Integrity (Обеспечение целостности данных) (рис. 63).

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки Cascade Update Related Fields (Каскадное обновление связанных полей) и Cascade Delete Related Records (Каскадное удаление связанных полей). Если установлен флажок Каскадное обновление связанных полей, то при изменении ключевого поля главной таблицы автоматически изменяются и соответствующие значения связанных записей. Если установлен флажок Каскадное удаление связанных полей, то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.

Рис. 63. Установка целостности данных

Использование связанных таблиц. Способы объединения данных из нескольких таблиц в запросе. Запросы удобно использовать для объединения или выполнения действий над данными, расположенными в нескольких таблицах или запросах. Например, необходимо просмотреть данные о клиенте, а также заказы, которые он разместил. Для получения этих сведений нужно получить данные из таблиц Клиенты и Заказы.

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

Если таблицы в запросе не соединены прямо или косвенно друг с другом, то для Microsoft Access остается неизвестным, какие записи связаны с какими и на экране отображаются все комбинации записей между двумя таблицами (это называется «полное объединение» или «декартово произведение»). Таким образом, если таблица содержит 10 записей, то в результате запроса будет 100 записей (10 × 10). Также время выполнения запроса очень увеличится, а полученные в конечном счете результаты будут не столь значительны.

Если же ранее в окне Схема данных были созданы связи между таблицами, то при добавлении связанных таблиц в режиме конструктора линии объединения выводятся на экран автоматически. Если необходима целостность данных, то над линией объединения автоматически отображается цифра «1», означающая, что таблица находится на стороне «один» в отношении связей «один ко многим», а также знак целостности для указания таблиц, находящихся на стороне «многие».

Используя связанные таблицы в запросе, можно построить и выполнить любой тип запроса.

Последовательность выполнения

1. Необходимо построить запрос, показывающий, какие заказы сделала Лагутина Ольга. В данном запросе нужно использовать данные из двух таблиц. Для построения такого запроса выполните следующие шаги:

  • В окне База данных активизируйте вкладку Queries (Запросы) и нажмите кнопку New (Создать).

  • В окне Новый запрос выберите Design View (Конструктор).

  • В следующем окне выберите таблицы Клиенты и Заказы и нажмите кнопку Close (Закрыть).

  • В окне построения запроса из таблицы Клиенты нужно выбрать поля Фамилия и Имя, а из таблицы Заказы – поле Описание товара.

  • Для поля Фамилия установите условие отбора (введите фамилию Лагутина).

  • Запустите запрос на выполнение.

2. Построить запрос, показывающий фамилию, имя и адрес клиентов, заказавших муку в количестве более 30 мешков. Для построения такого запроса выполните следующее:

  • В окне База данных активизируйте вкладку, установите условие отбора (Мука).

  • Для поля Количество установите условие отбора (> 30).

  • Выполните запрос.

3. Необходимо подсчитать количество муки, заказанной клиентами, проживающими в Камышине. Выполните следующие шаги:

  • В окне База данных активизируйте вкладку Запросы и нажмите кнопку Создать.

  • В окне Новый запрос выберите Конструктор.

  • В следующем окне выберите таблицы Клиенты и Заказы и нажмите кнопку Закрыть.

  • В окне построения запроса из таблицы Клиенты нужно выбрать поле Город, а из таблицы Заказы – поля Описание товара и Количество.

  • Установите условие отбора для поля Город (Камышин), а для поля Описание товара – мука.

  • Нажмите кнопку Totals (Групповые операции) на панели инструментов.

  • В строке Total (Групповая операция) для поля Количество из списка выберите Sum.

  • Выполните запрос.

Содержание отчета

  1. Выполнение всех пунктов задания.

  2. Выполнение задания для самостоятельной работы.

  3. Ответы на контрольные вопросы.