Этап создания таблиц, их размещения на носителях (дисках), установления связей между ними, задания условий ссылочной целостности, создание требуемых запросов, реализуемый в конкретной СУБД, называется созданием физической модели данных.
MS Access относится к настольным СУБД, входит в состав пакета MS Office и, как и многие другие СУБД, выполняет следующие функции:
1. Организация данных – создание таблиц данных и управление ими с целью модификации, добавления и удаления данных;
2. Связывание таблиц для обеспечения ссылочной целостности;
3. Анализ данных с помощью запросов;
4. Создание форм для добавления, удаления и поиска данных в таблицах;
5. Управление выдачей информации на печать – создание отчетов;
6. Защита всей БД паролем ее создателя;
7. Предоставление средств создания программных кодов на языке Visual Basic for Application (VBA) – макросов и модулей.
Реализуются все эти функции для каждой БД в одном файле с расширением .mdb. При распространении готовых приложений, модули для защиты от доступа и\или соблюдения авторских прав выносятся в отдельный файл с расширением .mde. В этом случае БД Access состоит из двух файлов.
MS Access имеет три режима работы:
1. Режим запуска – режим работы без открытой базы данных, в котором производятся операции сжатия и шифровки БД.
2. Режим конструктора – создание таблиц, запросов, форм, отчетов.
3. Режим выполнения – работа с таблицами, формами и т.д.
К объектам Access относятся: таблицы базы данных, запросы, а также объекты приложений – формы, отчеты, страницы доступа к данным, макросы и модули, которые представлены в окне базы данных Access. Все операции по работе с объектами базы данных и приложений начинаются в этом окне.
В Access таблицы создаются с помощью Мастера или Конструктора таблиц. Воспользовавшись любым из этих способов, создадим таблицы нашей БД, соответствующие их описаниям в текстовой форме (см. табл. 1). Для назначения ключевого поля при работе в Конструкторе таблиц следует установить курсор в нужное поле и выбрать пункт Ключевое поле из пункта главного меню Правка, или контекстного меню правой кнопки мыши, или нажать соответствующую кнопку на панели инструментов. Ключевое поле помечается символом ключа.
После создания таблиц вызовем Схему данных и создадим внешние связи таблиц. Для этого, в соответствии с описаниями связей в инфологической модели, нужно перетащить ключевые поля с ведущих таблиц на соответствующие поля дочерних таблиц. СУБД откроет окно, в котором будет указан автоматически определенный вид связи. Если связь установлена правильно, то в этом же окне включим переключатели обеспечения ссылочной целостности, каскадного удаления и каскадного обновления данных. В противном случае следует отменить установление связи, проверить, одинаковы ли типы полей, между которыми устанавливается связь, в обеих таблицах правильно ли проиндексированы поля и после этого повторить попытку.
Правила использования клавиатуры и мыши для перемещения по таблице, выделения и редактирования данных аналогичны используемым в электронных таблицах Excel с незначительными отличиями.
Для добавления новой записи в таблицу можно нажать на панели инструментов Access кнопку Новая запись, или перевести курсор на последнюю запись с помощью мыши или клавиатуры. Клавиша F2 является клавишей переключения между режимом редактирования (с выведенным курсором) и режимом перемещения. Для ввода длинного текста можно воспользоваться окном Область ввода, вызываемым нажатием SHIFT+F2.
Для отказа от последних несохраненных изменений нажмите на панели инструментов кнопку Отменить. Если изменения, внесенные в текущую запись, уже сохранены, или выполнен переход к другой записи, выберите в меню Правка команду Восстановить запись. Для отмены изменений, внесенных в текущее поле, нажимается клавиша ESC. Для того чтобы отменить изменения, внесенные во всю запись, клавиша ESC перед выходом из поля нажимается повторно. Отмена изменений становится невозможной при начале изменений следующей записи, применении или удалении фильтра или переходе в другое окно.
При попытке выйти из поля после ввода данных Access проверяет, являются ли введенные данные допустимыми для этого поля. Если значение не является допустимым, появляется предупреждающее сообщение. Для того чтобы выйти из поля, следует ввести правильное значение или отменить внесенные изменения.
Значение поля может оказаться недопустимым по следующим причинам:
· Значение несовместимо с типом данных поля (например, нельзя хранить текстовое значение в числовом поле).
· Данные нарушают условие на значение, заданное в свойстве Условие на значение этого поля.
· Поле, имеющее атрибут Обязательное, оставлено пустым.
· Обновление поля было отменено в макросе, связанном с событием До обновления, так как оно противоречит проверяемому условию.
Данные проверяются также при выходе из записи. Перед сохранением записи Access проверяет все условия, заданные в свойстве Условие на значение записи. Кроме того, если таблица, в которую вносятся изменения, имеет ключ или уникальный индекс, то проверяется, что изменяемая запись не содержит в этом поле или полях значений, совпадающих со значениями в других записях таблицы.
Применение подстановки для редактирования записей. Для каждого поля таблицы, кроме полей типа счетчика, на вкладке Подстановка конструктора таблиц можно задать элемент управления, который будет связан с этим полем для ввода и редактирования значений в режиме таблицы или формы. По умолчанию применяется элемент управления Поле (не путать поле таблицы как ее атрибут и поле ввода/редактирования значений как элемент управления!). Однако в ряде случаев для некоторых полей таблицы удобнее в качестве элемента управления назначить Поле со списком, позволяющего как вручную вводить значения, так и выбирать их из выпадающего меню, сформированного из значений другого поля этой или другой таблицы или запроса.
Например, в нашем случае, поле КодПреподавателя в таблице Дисциплина может принимать только такие значения, которые есть среди значений такого же поля в таблице Преподаватели, поле КодСтудента таблицы Пропуски – только значения соответствующего поля таблицы Студенты, а КодЗанятия таблицы Пропуски – только значения, определяемые набором значений такого же поля в таблице Занятия. Поэтому, для этих зависимых полей следует применить элемент управления Поле со списком, назначив в качестве источника строк для этого элемента таблицу, определяющую его возможные значения.
Рис. 2. Применение элемента управления Поле со списком для ввода значений в поле
Элемент управления Поле со списком позволяет выводить в нескольких столбцах выпадающего меню связанные значения из различных полей таблиц или запросов. Воспользуемся этой возможностью. Было бы нелепо требовать от человека, заполняющего наш “электронный журнал”, запоминания кодов всех студентов группы и преподавателей. Гораздо разумнее при вводе такого кода давать подсказку в виде фамилий и\или другой поясняющей информации для каждого кода как, к примеру, изображено на рис. 2.
Исходя из вышеизложенного, зададим атрибуты элементов управления для полей КодПреподавателя таблицы Дисциплина и КодСтудента таблицы Пропуски в соответствии с таблицей. Здесь Источник строк и Присоединенный столбец – имя таблицы и номер столбца (номер поля по порядку), откуда берутся допустимые значения; Число столбцов – количество отображаемых в выпадающем меню столбцов, соответствующих значениям в полях таблицы-источника; Ширина столбцов и списка – ширина (в см) каждого столбца и всего списка; Ограничиться спискам – разрешение на ввод данных, отсутствующих среди значений присоединенного столбца таблицы-источника.
Таблица 2
Имя поля | Элемент управления | Источник строк | Присоеди-ненный столбец | Число столбцов | Ширина столбцов | Ширина списка | Ограничиться списком |
Таблица Дисциплина | |||||||
КодПреподавателя | Поле со списком | Преподаватели | 2;2;2;2 | Да | |||
Таблица Пропуски | |||||||
КодСтудента | Поле со списком | Студенты | 1;2;2;2 | Да |
Для того чтобы заполнить поле КодЗанятия в таблице Пропуски, логично воспользоваться подстановкой, чтобы вместо кода занятия получить название группы, дату и пару. Это означает, что мы должны выбрать значения из поля Группа таблицы Дисциплина и полей Дата и Пара таблицы Занятия. В результате должна образоваться новая “виртуальная” таблица – таблица, не сохраняющаяся в ПЗУ компьютера, обновляющаяся при каждом обращении к ней и оперативно перестраивающаяся каждый раз, как только меняется любая из исходных таблиц. Такие таблицы создаются с помощью запросов.
Для построения нового запроса необходимо выбрать объект Запросы в окне БД нажать кнопку Создать. В Access существует несколько типов запросов, каждый из которых можно сформировать несколькими способами. Это будет видно в открывшемся окне выбора типа и средства создания запроса. Наш запрос на выборку и объединение полей из разных таблиц легко создается в Конструкторе запросов (рис. 3). Сначала необходимо указать все таблицы и\или ранее созданные запросы, участвующие в новом запросе. Это делается аналогично добавлению таблиц в схему данных. Добавленные таблицы отображаются в окне таблиц конструктора. Причем, между таблицами отображаются постоянные связи (установленные в схеме данных).
Рис. 3. Создание запроса на выборку полей из двух связанных
таблиц в Конструкторе запросов
Далее, нужные поля таблиц поочередно "перетаскиваются" в строку Поле нижней части конструктора, в которой в табличном виде отображены параметры запроса. Для каждого выбранного поля можно указать следующие параметры: Имя таблицы (заполняется автоматически при выполненном нами перетаскивании поля или выбором из выпадающего меню при ручном вводе параметра Поле); Групповаяоперация – вычисление выражения по данному полю (нахождение суммы значений в данном поле - Sum, подсчет количества записей - Count и т.д.); Сортировка – будут или нет записи, попавшие в результат запроса, отсортированы по данному полю, а если будут, то как (возрастание, убывание); Вывод на экран – отображается или нет данное поле в результате запроса; Условие отбора – установление при необходимости критерия выбора записей в результат запроса по данному полю; Или – продолжение установки критерия при присутствии в последнем логического оператора ИЛИ. Кстати, если среди параметров отсутствуют Имя таблицы или Групповая операция, то их при необходимости можно включить, используя контекстное меню или пункт Вид главного меню.
Таблица 3
Таблица Пропуски | |||||||
Имя поля | Элемент управления | Источник строк | Присоединенный столбец | Число столбцов | Ширина столбцов | Ширина списка | Ограничиться списком |
КодЗанятия | Поле со списком | ПодстановкаКодЗанятия-ДляПропуски | 2;2;2;2 | Да |