- •Содержание
- •5.1 Вопросы для самопроверки. 91
- •6.4 Контрольные вопросы 97
- •7.2 Контрольные вопросы: 102
- •Лабораторная работа № 1. Построение информационно - логической модели «Поставка товаров»
- •1.1Изучение предметной области
- •1.1.1Общие сведения
- •1.1.2Описание предметной области «Склад»
- •1.1.3Список вопросов, на которые должна отвечать информационная система
- •1.1.4Описание первичных документов
- •1.2Определение логической структуры данных
- •1.2.1Объекты справочной и учетной информации
- •1.2.2 Выявление функциональной зависимости
- •1.2.3Требования нормализации
- •1.3Построение связей информационных объектов
- •1.3.1Тип связи информационных объектов
- •1.3.2Определение связей предметной области Склад
- •1.4Построение информационно-логической модели базы данных.
- •1.4.1Матрица смежности илм
- •1.4.2Логическая модель предметной области
- •1.4.3Логическая структура реляционной базы данных
- •1.5Самостоятельная работа
- •1.6Контрольные вопросы:
- •Лабораторная работа № 2.- введение в субд access
- •2.1Создание базы данных
- •2.2Создание таблиц базы данных
- •2.3Создание таблицы товар
- •2.4Создание маски ввода
- •2.5Создание домена
- •2.6Ввод данных в бд "Склад" таблицу товар
- •2.7Использование данных типа Поле объекта ole.
- •2.8Самостоятельная работа
- •Контрольные вопросы
- •Лабораторная работа № 3. Поля со списком, схема данных
- •3.1Использование поля со списком при вводе записей.
- •3.2Использование поля со списком ключевым столбцом.
- •3.3Создание схемы базы данных "Склад".
- •3.4Создание связей между таблицами схемы данных
- •3.5Обеспечение целостности данных
- •3.6Каскадное обновление и удаление связанных записей
- •3.7Проверка поддержания целостности в базе данных
- •3.8Самостоятельная работа
- •3.9Контрольные вопросы
- •Запросы
- •Назначение и виды запросов
- •Конструирование запросов
- •Вычисляемые поля.
- •Использование групповых операций в запросах
- •Запрос с функцией Count
- •Самостоятельная работа
- •Организация запросов на выборку с использованием языка sql
- •Синтаксис оператора select
- •Простейшие запросы Запросы на выборку столбцов
- •Запрос на выборку с упорядочиванием всех полей.
- •Простейшие запросы с условием
- •Групповые функции и агрегирование
- •Подзапрос
- •Вложенный подзапрос
- •Связный подзапрос
- •Самостоятельная работа
- •Вопросы для самопроверки
- •Многотабличные запросы
- •Многотабличный запрос
- •Формирование записей результата при выполнении запроса
- •Параметрические запросы
- •Ссылки на имена полей различных таблиц в условии отбора
- •Решение задач на основе нескольких запросов
- •3.10Самостоятельная работа
- •Контрольные вопросы по запросам на выборку
- •Диалоговый графический интерфейс для работы с базой данных через формы
- •3.11Создание форм с использованием мастера форм
- •3.11.1Однотабличные формы
- •Разработка многотабличной формы
- •Режим конструктора для создания и корректировки форм
- •Вставка в форму элемента ActiveX
- •Извлечение данных из списка в несвязный элемент управления
- •Создание формы с автоматическим подбором кодов товара соответствующего указанному договору
- •Вычисляемые поля формы Вычисляемое поле
- •Вычисление итоговых значений
- •Задание для самостоятельной работы
- •Вопросы для самопроверки.
- •Разработка отчетов
- •Создание отчетов в режиме мастера Однотабличные отчеты
- •Многотабличные отчеты
- •Создание и корректировка отчетов в режиме конструктора Корректировка отчета в режиме конструктора
- •Определение параметров в отчете
- •Задания для самостоятельной работы
- •Отгрузка товара
- •Контрольные вопросы
- •Интерфейс приложений
- •Создание кнопочной формы
- •Контрольные вопросы:
- •Список литературы
3.7Проверка поддержания целостности в базе данных
Если в схеме данных определена связь таблиц, для которой установлены параметры обеспечения целостности, при вводе и корректировке данных во взаимосвязанных таблицах пользователь не сможет ввести записи, нарушающие требования связной целостности.
Проверка автоматического поддержания целостности при изменении значений ключей связи в таблицах. Откроем главную таблицу связи покупатель в режиме таблицы. Изменим значение ключевого поля код_пок в одной из записей. Убедимся, что во всех записях подчиненной таблицы договор для договоров, заключенных этим покупателем, автоматически также изменится значение поля код_пок. Изменение происходит, т. к. был установлен параметр Каскадное обновление связанных полей. Причем это изменение осуществляется, как только изменяемая запись перестает быть текущей. Для наблюдений за автоматическими изменениями в подчиненной таблице откроем на экране одновременно таблицы покупатель и договор.
Изменим значение ключа связи код_пок в подчиненной таблице договор на значение, не существующее в записях таблицы покупатель, и убедимся, что такое изменение запрещено.
Проверка при добавлении записей в подчиненную таблицу. Убедимся, что невозможно включить новую запись в подчиненную таблицу договор со значением ключа связи код_пок, не представленным в таблице покупатель.
Проверка при удалении записи в главной таблице. Убедимся, что вместе с удалением записи в главной таблице покупатель удаляются все подчиненные записи в таблице договор, т. к. был установлен параметр Каскадное удаление связанных записей.
Объединение записей взаимосвязанных таблиц
При создании форм, запросов, отчетов, страниц доступа к данным на основе взаимосвязанных таблиц производится объединение их записей: объединяется каждая запись из одной таблицы с каждой записью из другой таблицы при условии равенства значений в поле связи. Рассмотрим пример объединения записей таблиц товар и поставка_план по полю код_тов. Таблица поставка_план содержит план отгрузки товаров, заданный в спецификациях договоров. Каждая запись этой таблицы представляет один из товаров, который должен быть отгружен в указанные сроки покупателю. Рассматриваемые таблицы находятся в отношении один-ко-многим. Поле код_тов является уникальным ключом в таблице товар. В таблице поставка_план значения этого поля повторяются во многих записях. На рисунке 5.8 показан пример заполнения таблиц. При объединении (по умолчанию) записей по полю код_тов вследствие того, что таблицы находятся в отношении один-ко-многим, формируется таблица, в которой каждая строка подчиненной таблицы поставка_план объединяется с одной из строк таблицы товар.
Рисунок 5.7. Содержимое объединяемых таблиц товар и план_поставки
Если для некоторой записи, например, записи с кодом товара Т008 в таблице товар отсутствуют связанные записи в другой таблице — объединять запись не с чем — и в результат такая запись не включается. Именно по этой причине в результате объединения таблиц товар и поставка_план отсутствуют записи о товарах, не представленных в плане поставки, а также записи о плановых поставках, в которых указан товар, отсутствующий в таблице товар.
Для каждой связи двух таблиц могут быть указаны и другие способы объединения записей по ключу связи. Всего их три:
Объединение только тех записей, в которых связанные поля обеих таблиц совпадают (INNER JOIN).
Объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связанных во второй, с пустой записью второй таблицы (LEFT JOIN).
Объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой, с пустой записью первой таблицы (RIGHT JOIN).
Любой из перечисленных способов объединения может быть выбран для связи вне зависимости от того, находятся связываемые таблицы в отношениях 1:1, 1:М или тип отношения не может быть определен системой.
Существует три способа объединения данных. В окне Изменение связей есть кнопка Объединение. При нажатии этой кнопки появится окно Параметры объединения в нем может быть выбран способ объединения. По умолчанию определяется первый. (Рисунок 5.8.)
Рисунок 5.8. Окно выбора способа объединения связываемых таблиц
Отображение записей подчиненных таблиц в главной таблице
В Access имеется возможность при просмотре главной таблицы отображать записи подчиненных таблиц. Это позволяет пользователю при добавлении, удалении и редактировании записей осуществлять контроль за корректностью связей. Например, если отобразить в таблице договор подчиненную таблицу поставка_план, связанных по полю ном_дог, то при заполнении таблицы поставка_план невозможно допустить ошибку в поле ном_дог, т. к. оно даже не отображается в подчиненной таблице (Рисунок 5.10).
Достаточно щелкнуть на знаке "+" в строке записи, чтобы отобразились записи подчиненной таблицы, связанные с текущей записью. При этом "+" преобразуется в (минус). Щелчком на "–" подчиненные записи закрываются.
Открыть или закрыть все подчиненные записи можно, воспользовавшись командой меню ФорматПодтаблицаРазвернуть все или Свернуть все.
В таблице базы данных Access одновременно можно просматривать данные подтаблиц восьми уровней.
Рисунок 5.9.. Отображение подчиненных подтаблицы в главной таблице
Для определения подтаблицы выполните команду Подтаблица. Отобразится окно Вставка подтаблицы (Рисунок 4.11.), в котором следует выбрать подчиненную таблицу или запрос и указать поля связи. После сохранения таблицы имя подтаблицы и имена подчиненного и основного полей записываются в свойства главной таблицы.
Рисунок 5.10. Окно для выбора подчиненной таблицы и поля связи с ней
