СУБД MS Access
Раздел 2. Организация баз данных
Лекция 13. СУБД MS Access. Создание таблиц и определение связей
В настоящее время наибольшее распространение получили реляционные СУБД к числу которых относится и офисная СУБД - MS Access. Основным преимуществом MS Access является его наличие в составе пакета MS Office. СУБД MS Access имеет богатые функциональные возможностями и удобна в использовании. Особенно удобной является визуальная среда разработки, значительно ускоряющая процесс создания БД.
Начиная с пакета MS Office 2000, в составе MS Access появились новые функциональные возможности:
§ Поддержка клиент-серверных приложений. В качестве серверов БД могут быть использованы Microsoft SQL Server 6.5 или 7.0, а также процессор обработки данных MSDE (Microsoft Database Engine).
§ Экспорт объектов БД в формат HTML, создание статических и динамических Web-страниц для доступа к данным.
§ Возможность использования электронной почты для отправки данных и т.д.
Рекомендуемые материалы
Взаимодействие со средой MS Access осуществляется через главное меню и панели инструментов их использование и настройка не отличается от других приложений пакета MS Office. СУБД MS Access создает всю систему в одном фале с расширением *.mdb, с этим связаны недостатки и преимущества этой СУБД.
Основы работы в СУБД MS Access
После создания или открытия БД через окно диалога «Microsoft Access» откроется рабочее окно диалога «База данных » (рисунок 13.1).
Рисунок 13.1 - Диалоговое окно «База данных»
Рабочее окно «База данных» позволяет получить доступ к основным объектам MS Access, таким как: таблицы, запросы, формы, отчеты, страницы, макросы, модули. Определим основные объекты, используемым в СУБД Access:
§ Таблица – основной объект реляционной базы данных, необходимый для хранения данных.
§ Запрос – это вопрос, формируемый по отношению к базе данных. Именно запросы позволяют получать необходимую информацию из реляционных БД. В основе них лежит реляционная алгебра и реляционное исчисление.
§ Форма – формат отображения в виде окна ОС Windows. Весь пользовательский интерфейс базируется на формах.
§ Отчет – форматированное представление данных, выводимое на экран, принтер или файл.
§ Страница – формат отображения в виде формы служащий для доступа к Web-страницам. Новый объект, добавленный в MS Access 2000.
§ Макрос – набор из одной и более макрокоманд, выполняющий определенные, наиболее часто используемые операции.
§ Модуль – программа на языке Access Basic. Использование модулей позволяет более полно реализовать возможности MS Access.
Практически каждый объект MS Access, кроме макросов и модулей, имеет несколько вариантов создания, традиционными можно назвать конструктор и мастер:
§ Мастер – позволяет создавать объект общего вида и представляет собой окно диалога с рядом задаваемых последовательно вопросов, ответы на которые позволяют уточнить свойства создаваемого объекта. Обычно применяется как первичное средство создания объекта.
§ Конструктор – предоставляет мощные механизмы настройки и редактирования, обычно служит средством редактирования уже созданного объекта и придания ему надлежащего вида.
Создание таблиц
СУБД MS Access поддерживает ряд базовых типов данных: текстовый, числовой, денежный, счетчик, даты/времени, логический, поле МЕМО, поле объекта OLE, гиперссылка. Среди перечисленных типов расширенными можно считать последние два: поле объекта OLE и гиперссылка, последний не нуждается в пояснениях. Поле объекта OLE позволяет импортировать в таблицы БД объекты, поддерживающие технологию OLE, например изображения, документы MS Word и т.д.
На имена таблиц и полей в СУБД MS Access накладываются следующие ограничения:
§ Имя поля не может содержать более 64 символов.
§ В именах полей и таблиц недопустимо использование управляющих символов с кодами 0 – 31 и символов (. ! ‘ [ ]).
§ Имя поля не может начинаться с пробела, кроме того, привыкать к использованию пробелов вообще не желательно, лучше использовать нижнее подчеркивание.
СУБД MS Access предлагает несколько способов создания таблиц:
§ Режим таблицы – позволяет создать таблицу в режиме таблицы, т.е. открывается таблица, в которую необходимо вписать заголовки столбцов (поля). Все типы полей принимаются, по умолчанию как текстовые.
§ Конструктор – позволяет создать новую таблицу в конструкторе таблиц, при этом сразу можно указать все возможные свойства полей таблицы.
§ Мастер таблиц – позволяет создать таблицу с помощью мастера имеющего большой запас шаблонов таблиц с уже определенными свойствами. Процесс создания заключается в выборе необходимых полей из образцов таблиц.
§ Импорт таблиц – позволяет импортировать таблицы из внешних файлов, например из существующих БД MS Access, таблиц MS Excel и т.д. В результате в текущей БД будет создана таблица, полученная из внешнего источника.
§ Связь с таблицами – позволяет осуществить связь с таблицами расположенными во внешних файлах.
Основным средством создания таблиц в MS Access является конструктор таблиц. Рассмотрим структуру конструктора таблиц (рисунок 13.2) и особенности создания таблиц в этом режиме.
Рисунок 13.2 - Окно конструктора таблиц
В верхней части окна конструктора находится бланк-таблица содержащая три столбца: «Имя поля», «Тип данных», «Описание». В столбце «Имя поля» указываются имена полей (атрибутов) создаваемой таблицы. В столбце «Тип данных» указываются базовые типы данных соответствующих полей. Столбец «Описание» не является обязательным и предназначен для комментариев.
Каждое поле, наряду с определенным типом, имеет дополнительные свойства, отображаемые в разделе «Свойства поля» в нижней части конструктора.
Можно выделить следующие свойства полей расположенные на вкладке «Общие»:
· Размер поля – определяет максимальное число знаков (применяется для полей типа: текстовые, числовые, счетчик);
· Новые значения – определяет способ изменения значений счетчика (только для типа счетчик);
· Формат поля – определяет формат вывода значений поля (применяется для всех полей кроме полей объектов OLE);
· Число десятичных знаков – определяет число десятичных знаков при отображении чисел (применяется для типов: числовой, денежный);
· Маска ввода – позволяет задать маску ввода, для упрощения ввода данных (применяется для полей типа: текстовые, дата/время, числовые, денежные);
· Подпись – определяет текст, который будет выводиться в качестве заголовка столбца вместо имени поля (для всех полей);
· Значение по умолчанию – позволяет задать значение, автоматически вводимое в поле при создании новой записи;
· Условие на значение – определяет требования к данным, вводимым в поле;
· Сообщение об ошибке – содержит сообщение, которое будет выводиться в случае нарушения условия на вводимое значение (см. выше);
· Обязательное поле – указывает, требуется ли обязательный ввод значений в поле;
· Пустые строки – определяет, допускается ли ввод пустых строк в поле (только для текстовых полей);
· Индексное поле – определяет индекс создаваемый по одному полю;
· Сжатие ЮНИКОД – включает сжатие полей, при использовании кодировки Unicode (для полей МЕМО, гиперссылок и текстовых полей).
Замечание. Определение таких свойств как «Маска ввода», «Значение по умолчанию», «Условие на значение», «Сообщение об ошибке» позволят повысить удобство и скорость работы пользователей, а также снизить количество возможных ошибок.
Вкладка «Подстановка» предоставляет средства создания элементов управления для альтернативного ввода значений таких как: список и поле со списком. По умолчанию определено обычное поле.
Назначение первичного ключа осуществляется командой Правка - Ключевое поле, командой контекстного меню Ключевое поле или кнопкой панели инструментов . Сложный первичный ключ можно создать аналогично, предварительно выделив поля входящие в первичный ключ мышкой, с удержанием клавиши Shift или Ctrl.
Как и во многих СУБД, ключи определяются индексами (в том числе первичный ключ), поэтому для назначения сложных ключей или их специальной настройки можно использовать окно диалога «Индексы» (рисунок 13.3).
В столбце «Индекс» определяются имена индексов таблицы, причем первичный ключ таблицы всегда имеет имя PrimaryKey. Столбец «Имя поля» позволяет указать набор полей входящих в состав индекса. Специальные параметры индекса определяются в нижней части окна «Свойства индекса».
Рисунок 13.3 - Окно диалога создания составных индексов.
Обычно, после того как созданы все таблицы и определены все свойства их полей создаются связи между таблицами. Связи позволяют реализовать принципы поддержки целостности между данными, размещенными в различных таблицах. Связи создаются через инструмент – «Схема данных», вызываемый командой Сервис - Схема данных или кнопкой панели инструментов . Добавление таблиц в схему реализуется через окно диалога «Добавление таблицы» простым выделением и нажатием кнопки «Добавить» (рисунок 13.4). Необходимо отметить, что в связях могут участвовать не только таблицы, но и запросы.
Рисунок 13.4 – Диалоговые окна «Схема данных» и «Добавление таблицы»
Создание связей между таблицами осуществляется простым протягиванием, для этого нажимаем левую кнопку мыши на поле первичного ключа главной таблицы и тянем до внешнего ключа подчиненной таблицы, после этого левую кнопку мыши отпускаем. В результате появится диалоговое окно «Изменение связей» (рисунок 13.5).
В окне диалога «Изменение связей» поля со списками «Таблица/запрос» и «Связанная таблица/запрос» указывают на главную и подчиненную таблицы соответственно. Левый часть списка содержит поля главной таблицы участвующие в связи, а в правой части указываются связанные с ними поля подчиненной таблицы. При соединении с использованием простых ключей MS Access заполняет списки связей автоматически, но при соединении сложных ключей приходится заполнять списки вручную.
Окно диалога «Изменение связей» позволяет определять принципы поддержки ссылочной целостности, для этого используется группа флажков «Обеспечение целостности данных» . Если флажок «Обеспечение целостности данных» не выставлен, то MS Access не следит за поддержкой целостности связанных записей.
MS Access поддерживает два основных принципа поддержки ссылочной целостности на удаление:
§ запрет на удаление записей главной таблицы, на которые существуют ссылки в подчиненных таблицах, если флажок «Каскадное удаление связанных записей» не включен;
§ при удалении записи главной таблицы, на которые существуют ссылки в подчиненных таблицах, происходит каскадное удаление последних, если флажок «Каскадное удаление связанных записей» включен (рисунок 13.5);
Аналогичные принципы действуют при обновлении записей, но управляются флажком «Каскадное обновление связанных полей».
Рисунок 13.5 - Диалоговое окно «Изменение связей»
Контрольные вопросы
1. Какие новые возможности появились в СУБД MS Access 2000?
2. Какие категории объектов выделяют в СУБД MS Access?
3. Какие методы создания объектов можно назвать основными?
4. Назовите основные типы данных, используемые в MS Access.
5. Какие ограничения накладываются на имена полей и таблиц в СУБД MS Access?
6. Какие режимы работы используются для работы с таблицей?
7. Назовите основные свойства полей MS Access.
8. В чем назначение вкладки «Подстановка»?
9. Как определяются ключи и индексы?
10. Как создаются связи между таблицами в СУБД MS Access?
11. Какие принципы поддержки ссылочной целостности используются СУБД MS Access?
Задания для самостоятельной работы
Задание 1. С учетом основных данных (таблицы 13.1 – 13.5) создайте оставшиеся таблицы БД ИС «Библиотека» и установите связи. Ключевые поля показаны курсивом. Описание создания таблицы «Книги» приводится ниже.
Таблица 13.1 – Свойства полей таблицы «Книги»
Подпись | Тип данных | Размер | Обяз. Поле | Индекс. поле | Пустые знач. | Условия |
ISBN | Текстовый | 14 | Да | Да (совпадения не допускаются) | Нет |
|
Название | Текстовый | 255 | Да | Нет | ||
Автор | Текстовый | 30 | ||||
Издательство | Текстовый | 30 | Да | Нет | ||
Место издания | Текстовый | 30 | Да | Нет | ||
Год издания | Числовой | Целое | Да | >1959 | ||
Страниц | Числовой | Целое | Да |
Таблица 13.2 – Свойства полей таблицы «Экземпляры»
Подпись | Тип данных | Размер | Обяз. поле | Индекс. поле | Маска ввода |
Инвентарный номер | Числовой | Дл.целое | Да | Да (совпадения не допускаются) |
|
ISBN | Текстовый | 14 | Да | Да (совпадения допускаются) | |
Читательский билет | Числовой | Дл.целое | Да | Да (совпадения допускаются) | |
Наличие | Логический |
| Да | ||
Дата взятия | Дата/Время | Кр.ф.даты | Да | ||
Дата возврата | Дата/Время | Кр.ф.даты | Да |
Таблица 13.3 – Свойства полей таблицы «Читатели»
Подпись | Тип данных | Размер | Обяз. поле | Индекс. поле | Пустые значения | Условия |
Читательский билет | Числовой | Дл.целое | Да | Да (совпадения не допускаются) |
| |
ФИО | Текстовый | 30 | Да | Нет | ||
Дата рождения | Дата/Время | Кр.ф.даты | Да | <Now()-6209 | ||
Пол | Текстовый | 1 | Да | Нет | «М» or «Ж» | |
Домашний телефон | Текстовый | 7 | ||||
Рабочий телефон | Текстовый | 7 |
Таблица 13.4 - Свойства полей таблицы «Каталог»
Подпись | Тип данных | Размер | Обяз. поле | Пустые значения |
Код области знаний | Числовой | Целое | Да |
|
Наименование | Текстовый | 255 | Да | Нет |
Таблица 13.5 - Свойства полей таблицы «Связь»
Подпись | Тип данных | Размер | Обяз. поле | Индекс. Поле | Пустые значения |
ISBN | Текстовый | 14 | Да | Да (совпадения допускаются) | Нет |
Код области знаний | Числовой | Целое | Да | Да (совпадения допускаются) |
Пример создания таблицы «Книги»
Создадим таблицу «Книги» БД «Библиотека» на основе созданной ранее реляционной схемы, с учетом некоторых сформулированных ранее ограничительных условий. Для удобства основные свойства полей сведены в таблицы 13.1 – 13.5
1. В диалоговом окне БД (рисунок 13.1) выбираем категорию «Таблицы».
2. Открываем окно конструктора таблиц командой Создать-Конструктор или другим способом.
3. В раскрывшемся окне диалога (рисунок 13.2) устанавливаем курсор в первую свободную строку столбца «Имя поля» и вводим название поля - ISBN.
4. В столбце «Тип данных » указываем тип - текстовый (данное значение устанавливается по умолчанию).
5. Уточняем размер поля, для этого курсор устанавливается в позицию свойства – «Размер поля» (в нижней части окна конструктора, рисунок 13.2) и указываем значение – 14.
6. Реальные названия полей могут отличаться от тех, которые показываются пользователям. Для этого установим значение свойства «Подпись» равным ISBN или в иное, если этого требует пользователь.
7. Рекомендуется указать «Описание» поля, в данном примере описание - ISBN книги (рисунок 13.2).
8. Повторяем пункты 3 – 7 и аналогично создаем другие поля таблицы, но для поля Год_издания дополнительно установим свойство «Условие на значение» равным >1959. Со свойством «Условие на значение» обычно устанавливают свойство «Сообщение об ошибке», например значение Книга издана до 1960 года!
9. Укажем первичный ключ для поля ISBN, для этого курсор устанавливаем на него и выполняем команду контекстного меню Ключевое поле.
10. Сохраним созданную таблицу под именем Книги. Окно диалога «Сохранение» вызывается каждый раз при закрытии измененной таблицы.
Аналогичным способом создаются и остальные таблицы БД.
Пример создания фиксированного списка
В некоторых случаях требуется создавать поля, в которые вводятся фиксированные значения из списка, например для таблицы Читатели в поле Пол могут вводиться только два значения «М» или «Ж» . Для создания поля со списком для поля Пол выполним следующие действия:
1. Выберем поле Пол.
2. Перейдем на вкладку бланка свойств «Подстановка».
3. Установим свойство Тип элемента управления в значение Поле со списком.
4. Установим свойство Тип источника строк в значение Список значений.
В лекции "Занятие 6" также много полезной информации.
5. Установим свойство Источник строк в значение «М»;«Ж»
6. Сохраним изменения в таблице.
Рисунок 13.6 – Схема данных БД «Библиотека»
Задание 2. Установите связи между таблицами, как показано на рисунке 13.6. Руководствуйтесь правилами поддержания ссылочной целостности определенными в постановке задачи.