При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц A и B. Отношение «многие-ко-многим» по сути дела представляет собой два отношения «один-ко-многим» с третьей таблицей.
Определение связей между таблицами.
Связь между таблицами определяется путем добавления связываемых таблиц в окно «Схема данных» с последующим перетаскиванием ключевого поля из одной таблицы в другую. Рассмотрим пример связывания таблиц.
Предположим, что требуется установить связь между таблицами "Кафедра" и "Преподаватель" через поле ККАФ (код кафедры). В таблице "Кафедра" это поле является уникальным ключом, а в таблице "Преподаватель" — внешним ключом. Если схема данных создается заново, то при нажатии на кнопку "Схема данных" поверх окна схемы данных появится окно "Добавление таблицы". В этом окне следует выделить требуемые таблицы и нажать "Добавить".
В результате в окно схемы данных будут добавлены графические образы двух таблиц:
Необходимо перетащить мышью поле ККАФ таблица "Кафедра" на поле ККАФ таблицы "Преподаватель". В открывшемся окне "Изменение связей" следует установить флажок "Обеспечение целостности данных". В этом случае Access будет выдавать предупреждающие сообщения о неправильном вводе данных, если, например, в поле ККАФ подчиненной таблицы "Преподаватель" будет введено значение, отсутствующее в поле ККАФ базовой таблицы "Кафедра".
Обратите внимание, что Access автоматически определил тип связи как "один-ко-многим".
Можно также установить флажки "каскадное обновление связей" и "каскадное удаление связей". В этом случае Access автоматически скорректирует (удалит) записи в подчиненных таблицах, если будут изменены записи в базовой таблице.
После нажатия на кнопку "Создать", образы таблиц будут соединены связями как показано на рисунке. Ключевые в базовых таблицах выделяются жирным шрифтом.
Для установления связей по составному ключу необходимо в окне "Изменение связей" в полях "Таблица/Запрос" и "Связанная таблица/запрос" вручную выбрать из списков пары связываемых полей. На рисунке показан пример связи по составному ключу.
Если перетащить поле, не являющееся ключевым и не имеющее уникального индекса, на другое поле, которое также не является ключевым и не имеет уникального индекса, создается неопределенное отношение. В запросах, содержащих таблицы с неопределенным отношением, Microsoft Access по умолчанию отображает линию объединения между таблицами, но условия целостности данных при этом не накладываются и нет гарантии уникальности записей в любой из таблиц.
Разработка форм средствами Access.
Access предоставляет широкие возможности по конструированию графического интерфейса пользователя для работы с БД. Формы являются важнейшим инструментом, позволяющим осуществить первоначальную загрузку записей в таблицы, выполнить их просмотр и редактирование. При этом работа пользователя с БД выполняется в привычном для него виде — в виде документа.
При наличии схемы данных формы помогают выполнить корректный ввод данных в систему взаимосвязанных таблиц. При этом реализуется важнейший аспект технологии работы с БД — однократный ввод данных.
Для конструирования форм необходимо предварительно выполнить определенную последовательность действий по разработке СУБД:
· сконструировать таблицы БД;
· определить связи между таблицами и создать схему данных;
· определить эскиз экранной формы и состав размещаемых на ней объектов.
Конструирование форм обычно выполняют в режиме Мастера с последующей доработкой вручную в режиме конструктора. Мастер позволяет быстро разработать заготовку формы с необходимыми полями и связями, однако, он создает только типовые конструкции, вид которых может не устраивать пользователя. Переход в режим конструктора позволяет устранить недостатки оформления.