Лабораторное занятие № 6. 13.
Формирование таблиц базы данных СУБД MS Access.
Описание предметной области для учебного примера
Для освоения основ работы с СУБД Microsoft Access используем следующий пример.
Рассмотрим работу некоторого научно-консультативного центра, который приглашает экспертов для чтения лекций и проведения консультаций. Администрация центра должна иметь следующую информацию о каждом эксперте - фамилия, имя, сфера компетенции, ученая степень, место работы, контактный телефон, фотография. Необходимо также иметь сведения об организациях, где работают эксперты - название, город, адрес, телефон. Кроме того, необходимо накапливать сведения о работе, выполненной экспертами по заявкам центра, а также об оплате их услуг.
При желании всю эту информацию можно разместить в одной большой таблице. При этом в столбцах таблицы (полях) будет собрана информация определенного типа (фамилия, сфера компетенции, ученая степень...), а строки будут содержать информацию об эксперте. Однако такая таблица будет иметь существенный недостаток - многие сведения будут повторяться. Так, в строках, содержащих информацию об экспертах, работающих в одной организации, будут повторяться сведения об этой организации. Очевидно, такой способ построения таблиц ведет не только к нерациональному использованию памяти, но и к ошибкам, которые неизбежны при вводе повторяющихся данных, а это будет причиной ошибок при обработке информации. Поэтому целесообразно разбить таблицу на несколько таблиц, содержащих сведения об отдельных объектах.
В нашем примере сведения об экспертах будем хранить в такой таблице:
Таблица 1. Эксперты
№ | Фамилия | Имя | Сфера компе-тенции | Ученая степень | Код организа-ции | Конактный телефон | Примечание |
Сведения об организациях разместим в таблице следующего вида:
Таблица 2. Организации
Код организации | Название организации | Город | Адрес | Телефон | Примечание |
Таблица для хранения данных о работах, выполненных экспертами, будет иметь вид:
Таблица 3. Выполненные работы
№ | Дата | Эксперт | Кол-во часов | Тема |
Для того, чтобы получать необходимые сведения из набора таблиц, необходимо создать связи, соединяющие эти таблицы. В нашем примере Таблица 3. Выполненные работы может быть связана с Таблицей 1. Эксперты через соответствующие поля этих таблиц "Эксперты è Фамилия"; Таблица 1. Эксперты с Таблицей 2. Организации - через поля, имеющие в обеих таблицах одинаковое наименование - "Код организации". Благодаря установленным связям может быть легко получена информация, например, о том, эксперты из каких городов работали в центре в определенные дни. В результате будет подобрана необходимая информация из Таблицы 3 и Таблицы 2, которые связаны между собой через Таблицу 1.
Практическое задание:
Используйте режим Конструктора таблиц для создания таблиц: Эксперты, Организации, Выполненные работы.
1. Запустите приложение MS Access
2. Создайте новую базу с именем “ ЛЗ_6_13 ” и сохраните ее в папке “Базы данных” на своем диске.
3. Создайте таблицу Эксперты. Для этого:
a. Укажите в первой строке в столбце Поле имя поля Код эксперта. Для поля Код эксперта таблицы Эксперты выберем тип данных - " Числовой ". В нижней части окна установим следующие свойства поля, отличные от принятых по умолчанию:
Размер поля | Длинное целое |
Формат поля | Основной |
Число десятичных знаков | |
Обязательное поле | Да |
Индексированное поле | Да (Совпадения не допускаются) |
Примечание. Установки двух последних значений свойств поля позволяют определить его как ключ таблицы. При наличии в таблице ключа эффективность работы Access повышается. Таблица, для которой определен ключ, называется индексированной. Индексированные таблицы обладают следующими преимуществами:
- Наличие индекса существенно ускоряет выполнение запросов и некоторых других операций;
- По умолчанию записи в форме или таблице изображаются в порядке, определяемом ключом;
- В таблице автоматически поддерживается уникальность записей. По этой причине невозможно ввести в таблицу запись, у которой значение ключа совпадает со значением ключа уже существующей записи;
- Наличие ключа требуется для установки связей между таблицами и одновременного обновления нескольких связанных таблиц.
b. Внесите в таблицу остальные поля. Всю необходимую информацию для создания таблицы Эксперты возьмите из приведенной таблицы.
c. Определите поля Код эксперта и Фамилия в качестве ключей.
Название таблицы | Имя поля | Тип данных | Свойства поля, отличные от принятых по умолчанию | Ключ |
Эксперты | Код эксперта | Число- вой | Размер поля - Длинное целое; Формат поля - Основной; Число десятичных знаков - 0; Обязательное поле - Да; Индексированное поле - Да (Совпадения не допускаются) | Да |
Фамилия | Тексто-вый | Размер поля - 20; Индексированное поле - Да (Совпадения не допускаются) | Да | |
Имя | Тексто-вый | Размер поля - 30 | ||
Сфера компе-тентности | Поле MEMO | |||
Ученая степень | Тексто-вый | Размер поля - 15 | ||
Код орга-низации | Число-вой | Размер поля - Длинное целое; Формат поля - Основной; Число десятичных знаков - 0. | ||
Контакт-ный телефон | Тексто-вый | Маска ввода - выбрать с использованием Мастера Создание маски ввода* (описание см. ниже) | ||
Примеча-ние | Поле MEMO |
4. Сохраните таблицу Эксперты.
5. Создайте таблицу Организации. Всю необходимую информацию для создания таблицы Организации возьмите из приведенной таблицы.
Название таблицы | Имя поля | Тип данных | Свойства поля, отличные от принятых по умолчанию | Ключ |
Организа-ции | Код орга-низации | Число-вой | Размер поля - Длинное целое; Формат поля - Основной; Число десятичных знаков - 0; Обязательное поле - Да; Индексированное поле - Да (Совпадения не допускаются) | Да |
Органи-зация | Поле MEMO | |||
Город | Тексто-вый | Размер поля - 20 | ||
Адрес | Поле MEMO | |||
Телефон | Тексто-вый | Маска ввода - выбрать с использованием Мастера Создание маски ввода | ||
Примеча-ние | Поле MEMO |
6. Сохраните таблицу Организации.
7. Создайте таблицу Выполненные работы. Всю необходимую информацию для создания таблицы Выполненные работы возьмите из приведенной таблицы.
Название таблицы | Имя поля | Тип данных | Свойства поля, отличные от принятых по умолчанию | Ключ |
Выполнен-ные работы | № | Счетчик | Да | |
Дата | Тексто-вый | Маска ввода - выбрать с использованием Мастера Создание маски ввода | ||
Эксперт | Тексто-вый | Размер поля - 20 | ||
Кол-во часов | Числовой | Размер поля - Длинное целое; Формат поля - Основной; Число десятичных знаков - 0. | ||
Тема | Поле MEMO | |||
Примечание | Поле MEMO |
8. Сохраните таблицу Выполненные работы.
9. Создайте пользовательскую маску ввода. Откройте таблицу Эксперты в режиме конструктора. Выделите поле Телефон. Выберите поле Маска ввода в нижней части окна (рис. 1). Щелкните по появившейся справа кнопке, чтобы войти диалоговое окно Создание масок ввода.
После входа в режим Создание масок ввода (рис. 2), при отсутствии нужной маски, нажмите на кнопку Список и создайте нужную маску.
Рис 1
Рис. 2
Установите связи между таблицами.
Примечание. После установления пользователем связей между таблицами Access сможет использовать эти связи для поиска информации в разных таблицах базы данных.
Для установления связей между таблицами или запросами следует указать одно или несколько полей, которые содержат одинаковые значения в связанных записях. Часто (но не обязательно всегда) эти поля имеют одинаковые имена в обеих таблицах. В большинстве случаев одно из этих полей является ключевым полем своей таблицы.
При установлении связей между двумя таблицами определяется, какая таблица является главной, а какая подчиненной. Связываемое поле главной таблицы должно быть ключевым. Для подчиненной таблицы может быть определено поле вторичного ключа, тип данных и размер которого совпадают с полем первичного ключа главной таблицы.
Для этого:
a. Установите связь между таблицами 1 и 2. В качестве главной следует выбрать таблицу 2, а в качестве подчиненной - таблицу 1.
Примечание. В процедуре установки связи можно выделить три шага: открытие окна Схема данных; выбор таблиц или запросов, между которыми следует установить связь; непосредственно установка связи.
b. Откройте диалоговое окно Схема данных (Правка/Схема данных... или кнопка Схема данных на панели инструментов) рис. 3.
Примечание. При первом открытии этого диалогового окна для текущей базы данных оно будет пустым, а Access откроет диалоговое окно Добавление таблицы (рис. 3). Выбор таблиц или запросов для установления связи выполняют следующим образом: выделить нужную таблицу или запрос, а затем нажать кнопку Добавить.
Самый быстрый способ выбора таблицы или запроса для установки связи состоит в переносе таблицы или запроса из окна базы данных в диалоговое окно Схема данных с помощью мыши.
Рис. 3.
c. Добавьте 3 таблицы в Схему данных.
d. Перенесите с помощью мыши поле, которое следует использовать для установки связи (Код организации), из списка полей одной таблицы или запроса к соответствующему полю в списке полей другой таблицы или запроса.
Примечание. После выполнения переноса поля диалоговое окно Схема данных выглядит следующим образом (рис. 4), а экране появляется диалоговое окно Связи. В этом окне следует проверить правильность имен полей в обоих столбцах и, если требуется, исправить их.
Рис. 4.
e. Включите опции в диалоговом окне Связи: "Обеспечение целостности данных", "Каскадное обновление связанных полей" и "Каскадное удаление связанных записей" для корректной установки связи между таблицами 1 и 2.
11. Свяжите таблицы " Эксперты " (главная) и " Выполненные работы " (подчиненная), используя для связи разноименные поля " Фамилия - Эксперт ".
12. Заполните созданные таблицы, используя приведенные ниже данные. Начинать ввод необходимо с главной таблицы.
Данные для таблицы "Организации"
Код организации | Организация |
Академия управления при Президенте Республики Беларусь | |
Академия милиции МВД Республики Беларусь | |
Академия физического воспитания и спорта Республики Беларусь | |
Белорусская академия искусств | |
Белорусская академия музыки | |
Белорусская государственная политехническая академия | |
Белорусский аграрный технический университет | |
Белорусский государственный педагогический университет им.М.Танка | |
Белорусский государственный университет | |
Белорусский государственный университет информатики и радиоэлектроники | |
Белорусский государственный экономический университет | |
Минский государственный лингвистический университет | |
Академия федеральных служб безопасности | |
Высшая школа экономики | |
Государственная академия управления им.С.Орджоникидзе | |
Дипломатическая академия МИД России | |
Академия русского балета им. А.Я. Вагановой | |
Санкт-Петербургский государственный университет экономики и финансов |
Данные для таблицы "Организации" (продолжение)
Код организации | Город | Адрес | Телефон |
Минск | ул.Московская, 17 | (017) 226-3741 | |
Минск | ул.Варвашени, 6 | (017) 233-3115 | |
Минск | пр.Машерова, 105 | (017) 250-3084 | |
Минск | пр.Ф.Скорины, 81 | (017) 232-1221 | |
Минск | ул.Интернациональная, 30 | (017) 227-1103 | |
Минск | пр.Ф.Скорины, 65 | (017) 232-3842 | |
Минск | пр.Ф.Скорины, 99 | (017) 264-4082 | |
Минск | ул.Советская, 18 | (017) 220-9417 | |
Минск | пр.Ф.Скорины, 4 | (017) 226-5951 | |
Минск | ул.П.Бровки, 6 | (017) 239-8815 | |
Минск | пр.Партизанский, 26 | (017) 249-4137 | |
Минск | ул. Захарова, 21 | (017) 233-2143 | |
Москва | Мичуринский пр., 70 | (095) 931-1572 | |
Москва | пр. Сахарова, 12 | (095) 152-0181 | |
Москва | Рязанский пр., 99 | (095) 371-5766 | |
Москва | Остоженка, 53/2 | (095) 246-1844 | |
Санкт-Петербург | ул. Росси, 2 | (812) 110-4258 | |
Санкт-Петербург | ул.Садовая, 21 | (812) 310-5144 |
Данные для таблицы "Эксперты"
№ | Фамилия | Имя | Сфера компетентности | Ученая степень | Код организации |
Гаврилова | Мария | Коммерция | |||
Нахимов | Павел | Госуправление | докт.ф.-м.н. | ||
Бабушкина | Екатерина | Маркетинг | канд.ю.н. | ||
Иванишкина | Дария | Маркетинг | докт.ю.н. | ||
Котов | Андрей | Госуправление | докт.э.н. | ||
Хай-Вэнь | Ли | Госуправление | |||
Баранов | Константин | Менеджмент | канд.э.н. | ||
Крылова | Ольга | Юриспруденция | |||
Свиридова | Мария | Коммерция | |||
Попов | Федор | Информационные технологии | канд.э.н. | ||
Таманчук | Василий | Госуправление | |||
Климчук | Татьяна | Менеджмент | |||
Смирнов | Петр | Информационные технологии | докт.т.н. | ||
Марчик | Максим | Информационные технологии | канд.т.н. | ||
Простаков | Иван | Госуправление | канд.и.н. |
Данные для таблицы "Эксперты" (продолжение)
№ | Фамилия | Контактный телефон |
Гаврилова | (017) 255-9834 | |
Нахимов | (017) 235-9440 | |
Бабушкина | (017) 235-3412 | |
Иванишкина | (017) 225-8122 | |
Котов | (017) 215-4848 | |
Хай-Вэнь | ||
Баранов | (017) 235-5598 | |
Крылова | (095) 125-1189 | |
Свиридова | (812) 225-4444 | |
Попов | (095) 125-4869 | |
Таманчук | (095) 125-3857 | |
Климчук | (812) 225-3487 | |
Смирнов | (017) 234-4566 | |
Марчик | (095) 288-56-89 | |
Простаков | (095) 565-1251 |
Данные для таблицы "Выполненные работы"
№ | Дата | Эксперт | Часы | Тема |
08.11.11 | Котов | Средний бизнес в странах Центральной и Восточной Европы | ||
12.11.11 | Нахимов | Математическое моделирование экономического развития | ||
15.11.11 | Марчик | Инвестиционный климат в странах СНГ | ||
16.11.11 | Котов | Динамика безработицы в Испании | ||
19.11.11 | Баранов | Прогнозирование величины инфляции | ||
22.11.11 | Котов | Энергетический кризис | ||
23.11.11 | Свиридова | Экономические аспекты нетрадиционных источников энергии | ||
26.11.11 | Смирнов | Сравнительная эффективность систем госуправления | ||
29.11.11 | Гаврилова | Унификация таможенных законодательств |
* О способе создания пользовательской маски ввода см. ниже