Создадим базу данных «Аптека льготных лекарств». Сделаем таблицы и организуем связи между ними. Создание таблиц произведем в режиме Конструктора. В таблице «Льготники» определим ключевое поле – им будет являться поле Код льготника. В таблице «Выдача» ключевым возьмем поле Код выдачи В таблице «Льготный препарат» ключевым полем будет Код льготного препарата. Ключевое поле необходимо для построения межтабличных связей.
Таблицы в режиме конструктора:
Рис. 1 Рис. 2
Рис. 3
Далее создадим межтабличные связи.
Основное назначение связи заключается в следующих двух задачах:
1) обеспечение целостности данных;
2) автоматизация задач обслуживания базы.
Виды связей:
1) один к одному – каждая запись одной таблицы соответствует одной записи в другой таблице. Соотношение целесообразно использовать, если часть данных используется нечасто. Отношение же при этом позволяет увеличивать скорость обработки данных.
2) один ко многим – каждой записи одной таблицы соответствует несколько записей в другой таблице. Отношение используется очень часто.
3) Многие к одному – нескольким записям в одной таблице соответствует одна запись в другой таблице. Отношение аналогично предыдущему и зависит от точки зрения пользователя или разработчика.
4) Многие ко многим – нескольким записям в одной таблице соответствует несколько записей в другой таблице. Отношение используется сравнительно редко и поддерживается не всеми системами разработки баз данных.
В специальном окне Схема данных (Сервис/Схема данных, или кнопка «Схема данных» на
панели инструментов ) поместим все три таблицы и укажем, как они будут связаны между собой. Чтобы создать межтабличную связь, выделим в одной таблице нужное поле и перетащим это поле в поле другой таблицы. При отпускании кнопки мыши автоматически откроется диалоговое окно «Изменение связей», связь создается при нажатии кнопки «Создать». Как правило, связь осуществляется через поля с одинаковыми данными. Одно из полей ключевое, другое (в другой таблице) может быть ключевым, но может и не являться ключевым полем. В нашей схеме получается две связи вида «один ко многим», то есть ключевое поле одной таблицы связано с не ключевым полем другой. Другими словами, одной записи первой таблицы соответствуем несколько записей из второй таблицы.
Рис. 4
Далее можно перейти к заполнению таблиц данными. Заполнение таблиц легче производить с уже созданными связями, так как в таблицах можно просматривать все связанные данные. Это также облегчает процесс заполнения таблиц. Пример вложенности таблиц показан на рис. 5.
Рис. 5
Создание запросов.
Запросы – эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняют такие операции, как отбор данных, их сортировку и фильтрацию.
Запросы в Access существуют нескольких типов:
- Запрос на выборку – с помощью этого типа запроса можно выбрать данные из одной или нескольких таблиц и отобразить их в виде отдельной таблицы. Выборка данных может быть как простой, по одному условию, так и более сложной, с применением нескольких условий и логических функций. Также возможно составление условий во временном режиме, когда необходимо выбрать данные за какой-то период времени, в радиусе конкретных дат.
- Запрос с параметром – наиболее гибкий вид запроса, позволяющий получать разные результирующие таблицы, в зависимости от введенного в специальном диалоговом окне параметра;
- Запрос на изменение, обновление, удаление данных – запрос позволяет изменять и обновлять данные в автоматическом режиме, без открытия самих таблиц, что существенно упрощает работу.
- Запрос на создание таблиц – позволяет создавать новые таблицы на основе уже существующих, а также систематизировать данные из нескольких таблиц.
- Итоговый запрос – группирует и систематизирует данные. Позволяет производить групповые операции с данными таблиц (нахождение максимального значения, минимального значения, среднего значения, суммы, количество и т.д.).
Иногда запросы могут быть комплексными, то есть представлять собой одновременно два и более видов запросов (например, запрос с параметром может содержать групповые операции, запрос на создание таблицы может содержать параметр для ее создания и т.д.).