close

Вход

Забыли?

вход по аккаунту

?

Igoshin

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
РАЗРАБОТКА БАЗ ДАННЫХ
В СРЕДЕ MS ACCESS
Методические указания
к выполнению лабораторных работ
Составители: А. Н. Игошин, В. В. Боженко, Г. С. Евсеев
Рецензент – кандидат технических наук, доцент Г. В. Преснякова
Издание предназначено студентам, обучающимся по направлению 09.03.03 «Прикладная информатика». Содержание лабораторных работ ориентировано на развитие навыков по разработке приложений в среде MS Access.
Публикуется в авторской редакции.
Компьютерная верстка И. Н. Мороз
Сдано в набор 23.08.18. Подписано к печати 10.09.18.
Формат 60×84 1/16. Усл. печ. л. 1,27.
Уч.-изд. л. 1,37. Тираж 50 экз. Заказ № 367.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2018
Предисловие
Данные лабораторные работы по дисциплине «Базы данных»
направлены на освоение студентами ряда важных задач, возникающих при проектировании приложений, работающих с базой
данных:
– аутентификация и авторизация пользователей;
– проектирование пользовательского интерфейса;
– тестирование скорости выполнения запросов к базе данных;
– влияние индексов на время выполнения запросов к базе
данных.
Приведенные литературные источники не должны рассматриваться в качестве справочников. Поэтому ссылки в тексте на них
отсутствуют.
Лабораторная работа № 1
Настройка свойств формы
и её элементов для пользователей
Цель работы: изучить свойства форм и полей, позволяющие
управлять доступом пользователей к операциям с табличными
данными.
Краткие теоретические сведения
С записями в таблицах БД могут выполняться четыре основные
операции:
– просмотр записи (SELECT),
3
– добавление новой записи (INSERT),
– удаление записи (DELETE),
– изменение существующей записи (UPDATE).
При этом разные пользователи имеют разные права на выполнение этих основных операций с данными таблицы. Каждому пользователю нужно разрешить только те операции, которые ему необходимы для выполнения должностных обязанностей. С помощью
языка программирования VBA для пользователей можно обеспечить соответствующую настройку свойств формы.
Для того чтобы пользователь был идентифицирован, необходимо пройти аутентификацию, т. е. процедуру проверки логина и пароля. В ходе аутентификации происходит подтверждение того, что
этот человек является санкционированным пользователем системы (то есть его логин и пароль соответствуют одному из допустимых вариантов).
При этом для обеспечения надежности необходимо предусмотреть максимальное количество неверных попыток ввода логина
и пароля. Кроме того, на практике применяется метод блокировки
пользователя после превышения заданного количества неверных
попыток.
Авторизация – это предоставление доступа к набору разрешенных операций, например, для редактирования тех или иных
данных. С помощью авторизации для каждого пользователя обеспечиваются различные права. Пока пользователь не прошел
­аутентификацию, фактически он имеет право лишь на просмотр
страницы «Аутентификация» и на ввод логина и пароля на этой
странице.
Для открытия формы в VBA используется следующая конструкция: DoCmd.OpenForm, в которой имя формы является обязательным параметром. При этом можно указать также необязательный параметр – режим ввода данных для формы:
– acFormAdd – возможность добавления новых записей,
– acFormEdit – возможность редактирования и добавления
­записей,
– acFormReadOnly – возможность просмотра записей, без их изменения.
В MS Access есть свойства, которые позволяют настроить для
пользователей работу с формами:
– AllowEdits – разрешить изменение,
– AllowDeletions – разрешить удаление,
– AllowAdditions – разрешить добавление.
4
Эти свойства задаются тремя способами: с помощью страницы
свойств формы, макроса или кода VBA. Используя эти свойства, можно настроить доступ к базе данных для различных пользователей.
Кроме того, для удобства пользователей при вводе неверного ­пароля или незаполнении хотя бы одного из полей (логин или
­пароль) необходимо выводить соответствующие сообщения об
ошибке.
Задание: для 3 разных пользователей (исключая администратора БД) обеспечить программную настройку свойств формы и ее
элементов в зависимости от перечня разрешений пользователя,
­который ввел Логин и Пароль.
Исходные данные: множество пользователей и доступных для
них манипуляций с данными, а также данные для создания таблицы БД представлены в Приложении 1.
Порядок выполнения работы:
1. Создать таблицу «tab1» согласно варианту задания и заполнить ее произвольными данными (минимум 10 записей). Таблица должна содержать поля типа: Счетчик, Числовой, Текстовый
и Дата.
2. Создать форму «form1» для аутентификации пользователя
с полями Логин, Пароль и кнопкой для входа.
3. Создать форму «form2» для таблицы «tab1» с кнопками
для добавления, удаления записей и кнопкой закрытия формы
«form2».
4. Составить таблицу разрешений для пользователей при обращении к таблице «tab1».
5. Разработать программу на VBA, которая в зависимости от
введенных значений Логин и Пароль обеспечивает открытие формы «form2» при нажатии кнопки «Вход» на «form1» и настраивает свойства формы «form2» и ее элементов. Использовать свойства:
AllowEdits, AllowDeletions, AllowAdditions. Стоит отметить, что
свойства кнопок для добавления, удаления записей также должны
изменяться в зависимости от прав пользователя (можно их скрыть
или сделать недоступными).
6. Обеспечить вывод сообщений об ошибке при пустых полях
на форме «form1», при вводе неправильного логина или пароля.
Ограничить количество попыток неправильного ввода логина или
пароля.
7. Проверить правильность работы программы.
Содержание отчета:
1. Цель работы.
5
2. Задание.
3. Скриншот заполненной таблицы «tab1».
4. Таблица пользователей, их логинов и паролей.
5. Таблица разрешений для пользователей.
6. Скриншот созданных форм («form1», «form2»).
7. Листинг программы на VBA с пояснениями.
8. Скриншоты форм после выполнения модулей для каждого
пользователя.
9. Скриншоты окон с сообщением об ошибке.
10. Вывод.
Вопросы для самопроверки:
1. Какие существуют свойства форм и полей для работы с таб­
личными данными?
2. Какие функции VBA позволяют ограничить доступ к операциям с табличными данными?
3. Какие функции VBA позволяют настроить свойства кнопок
на форме?
Лабораторная работа № 2
Аутентификация пользователей в базе данных
Цель работы: освоить программирование процесса аутентификации пользователей в базе данных.
Краткие теоретические сведения
Стоит различать понятия «роль» и «пользователь». Для каждой предметной области существует несколько ролей, которые
имеют разные права доступа к тем или иным таблицам и записям
БД. Так, например, директор обладает полномочиями, отличными
от полномочий кассира, и т. д. При этом для каждой роли может
быть несколько фактических пользователей. Например, в реальных условиях роль кассира часто принадлежит нескольким пользователям, так как на предприятии работает несколько человек на
одной и той же должности.
Для того чтобы реализовать проверку входа с помощью таблицы «Пользователи», необходимо в MS Access иметь таблицу с данными обо всех пользователях и тех ролях, которые им соответствуют. Кроме того, нужна информация о правах, которыми обладает
6
каждая роль, то есть необходима таблица «Разрешения», связанная с таблицей «Пользователи» по полю ID роли. Следует учитывать, что для каждой таблицы базы данных есть четыре возможные операции (вставка, удаление, редактирование и просмотр),
которые могут быть доступны или недоступны для той или иной
роли, поэтому при большом количестве таблиц в БД таблица разрешений будет иметь большой объем.
Если процедура аутентификации прошла успешно, то есть введенные логин и пароль соответствуют одному из допустимых значений в таблице «Пользователи», то становится известным идентификатор пользователя в системе, то есть его ID. После этого для
авторизации пользователя достаточно определить только ID ­роли,
которая ему соответствует, а также предоставляемые для этой
­роли разрешения.
Задание: для пользователей из ЛР № 1 составить программу
на VBA, которая проверяет, соответствуют ли введенные логин
и пароль одному из санкционированных пользователей. Проверка
­базируется на результатах запроса к таблице «Пользователи».
Исходные данные: таблица «tab1», формы «form1» и «form2»
из ЛР № 1.
Порядок выполнения работы:
1. Создать таблицу «Разрешения» в MS Access с полями:
ID ­роли, Роль, tab1 просмотр, tab1 удаление, tab1 добавление, tab1
редактирование.
2. Создать таблицу «Пользователи» в MS Access с полями:
ID пользователя, Логин, Пароль, ID роли.
3. Связать таблицы «Пользователи» и «Разрешения» по полю
ID роли.
4. Для аутентификации Логин и Пароль использовать форму
«form1» из ЛР № 1.
5. Создать запрос к таблице «Пользователи», который возвращает ID пользователя по введенному логину и паролю на форме
­авторизации.
6. Создать запрос к таблице «Разрешения», который возвращает ID роли по введенному логину и паролю на форме авторизации.
7. Разработать программу на VBA, в которой аутентификация
выполняется на основе созданных запросов.
8. Обеспечить вывод сообщений об ошибке при пустых полях
на форме «form1», при вводе неправильного логина или пароля.
Ограничить количество попыток неправильного ввода логина или
пароля.
7
9. Проверить правильность выполнения программы при нажатии кнопки входа в форме для аутентификации («form1»).
При этом при изменении разрешений пользователей или добавлении новых ролей полученная программа должна работать корректно и не требовать изменений кода VBA для каждого нового
пользо­вателя или роли, то есть иметь гибкую настройку.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Таблица «Пользователи» в MS Access.
4. Таблица «Разрешения» в MS Access.
5. Скриншоты созданных запросов (словесное описание, SQLкод, результат выполнения запроса).
6. Листинг созданной программы с комментариями.
7. Скриншоты форм после выполнения программы для каждой
роли.
8. Скриншоты окон с сообщением об ошибке.
9. Вывод.
Вопросы для самопроверки:
1. В чем разница между аутентификацией и авторизацией?
2. Каким образом происходит авторизация пользователей?
3. В чем отличие роли от пользователя?
Лабораторная работа № 3
Разработка графического пароля
Цель работы: освоить технологию создания графического пароля для аутентификации пользователя в среде MS Access.
Краткие теоретические сведения
Для того чтобы обеспечить более надежную защиту системы от
злоумышленника, кроме текстового пароля часто используется
также графический пароль. Данный пароль может быть реализован для таких пользователей как директор, экономист или бухгалтер, так как они имеют доступ к важной информации.
Графический пароль представляется, как траектория движения курсора мыши на форме. Графический пароль имеет огромное
количество возможных вариантов, поэтому он существенно более
8
сложен для взлома, чем обычный текстовый пароль. Кроме того,
графический пароль сложнее «украсть» или передать постороннему лицу.
Графический пароль зачастую реализуется с помощью различных фигур, имеющих свойство «Событие» – «Наведение указателя мыши» (MouseMove). При наступлении данного события
запускается программа на VBA, которая фиксирует правильность введенной части пароля, либо наличие ошибки при вводе
пароля.
Для того чтобы создать графический пароль, на форме необходимо разместить элементы двух типов: «Шаги» и «Мины».
Для успешного ввода пароля необходимо провести курсором мыши
определенный маршрут, не задев «мину» и выполнив все «Шаги»
в заданном порядке. Отметим, что в режиме формы в MS Access
«Шаги» и «Мины» не видны, т. е. пользователю необходимо заранее знать путь, по которому необходимо провести курсор мыши.
Для удобства на форме иногда размещается картинка и «Шаги»
располагаются таким образом, чтобы пользователю было проще
ввести пароль, например, по контуру здания или человека. Кроме
того, при попадании на «Мину» должно появляться сообщение об
ошибке. Также необходимо предусмотреть ограничение количества попыток ввода неверного пароля.
На рисунке 1 показан пример графического пароля. В данном
примере три «Шага» и одна «Мина». Начальное положение курсора обычно зафиксировано. Для того чтобы успешно ввести пароль,
пользователю необходимо провести мышью через каждый шаг последовательно. На рисунке показаны два возможных варианта
пути, которые будут считаться правильными, т. к. они проходят
­через каждый «шаг», не задевая «мину».
Начальное
положение
курсора
Шаг 2
Путь 1
Шаг 3
Шаг 1
Мина
Путь 2
Рис. 1. Пример графического пароля
9
Задание: Разработать графический пароль.
Исходные данные: форма из ЛР № 1 для ввода текстового пароля.
Порядок выполнения работы:
1. Создать форму для ввода графического пароля, которая будет
открываться после успешного ввода текстового пароля на «form1».
На этой форме будут: «Шаги» (минимум 4) и «Мины» (минимум 4).
На форме можно разместить картинку.
2. Разработать программу на языке VBA, которая обеспечивает
проверку правильного ввода графического пароля и вывод сообщения об ошибке.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Описание графического пароля.
4. Скриншот формы графического пароля в режиме конструктор с отображением «Мин» и «Шагов», а также отображением
­последовательности «Шагов».
5. Скриншоты окон с сообщением об ошибке.
6. Листинг программы с пояснениями.
7. Вывод.
Вопросы для самопроверки:
1. Какое событие элементов формы используется для реализации графического пароля?
2. Для чего нужен графический пароль?
3. Как усложнить графический пароль, используя дополнительные события элементов формы?
Лабораторная работа № 4
Связь Access с другими приложениями
Цель работы: освоить методику переноса данных из Access
в другие приложения.
Краткие теоретические сведения
Для связи между приложениями используется широко распространенный механизм ODBC.
ODBC – это стандартный интерфейс между базой данных и приложением, взаимодействующим с ней. Наличие подобного стан10
дарта позволяет приложению на клиентском компьютере получать
доступ к любой базе данных на сервере, используя SQL. Единственное требование заключается в том, чтобы и клиентская, и серверная части поддерживали стандарт ODBC. Также необходимо помнить о том, что разрядность приложения и Access должны быть
одинаковые, иначе возникнет конфликт.
Для создания источника данных ODBC необходимо выполнить
следующие действия:
1) открыть «Панель управления»,
2) найти в разделе «Администрирования» источник ODBC,
3) выбрать «Системный источник»,
4) задать имя соединения «MyConnDB»,
5) указать полный путь и имя для базы данных MS Access.
При использовании в клиентском приложении средств ODBC
осуществляется обращение к определенному источнику данных, а через него – к СУБД, которую он представляет. При установке средств ODBC устанавливается общая подсистема ODBC
и определяются пары «драйвер – база данных», которым задаются имена, используемые при установке соединения с БД.
­Соответствующие пары называются DSN – имена источников
данных.
Существует три основных вида источников данных: пользовательский, файловый и системный. Для пользовательского источника данных доступ к данным производится только от имени
учетной записи того пользователя, который их создал. Настройка пользовательских источников данных аналогична настройке
системных источников данных. Файловые источники данных похожи на системные источники, но в отличие от них сохраняются
в файлах, что облегчает обмен файловыми DSN между различными компьютерами.
Если необходимо использовать источник данных на удаленном
компьютере, первое, что необходимо сделать для этого – убедиться, что на этом компьютере установлен соответствующий драйвер. Например, нельзя использовать файловый источник данных
для MS Access, если на компьютере отсутствует драйвер ODBC для
MS Access.
Системный источник данных доступен любым пользователям
данного компьютера.
Задание: осуществить связь MS Access с MATLAB и Python, построить гистограмму или график, который помогает провести статистическую обработку данных предметной области.
11
Исходные данные: данные для построения гистограммы берутся из таблицы «tab1» из ЛР № 1.
Порядок выполнения работы:
1. Придумать два разных запроса с агрегатными функциями
и условиями фильтрации, которые могут быть использованы для
статистического анализа данных предметной области (при необходимости можно дополнить таблицу «tab1»).
2. Соединить MS Access и MATLAB. Получить данные из таблицы «tab1» в MATLAB, составить первый запрос и построить гистограмму.
3. Соединить MS Access и Python. Получить данные из таблицы
«tab1» в Python, составить второй запрос и построить гистограмму.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Описание запросов для построения гистограммы.
4. Объяснение практического применения полученных запросов.
5. Скриншоты гистограмм в MATLAB и Python.
6. Листинги с комментариями.
7. Вывод.
Вопросы для самопроверки:
1. С помощью какого механизма осуществляется связь между
MS Access и другими приложениями?
2. Для чего необходимо переносить данные из MS Access в другие приложения?
3. Каково может быть практическое применение построения
­гистограмм по данным БД?
Лабораторная работа № 5
Заполнение таблицы базы данных случайными данными
Цель работы: освоить разработку программ для заполнения таблиц случайными данными.
Краткие теоретические сведения
Заполнение таблиц случайными данными необходимо для того,
чтобы быстро получать любое количество записей, которые затем
12
могут использоваться для анализа времени выполнения запросов
различного типа.
Очевидно, что при проведении различных экспериментов важной задачей является заполнение БД конкретным содержанием.
Как правило, заполнение таблиц производится с помощью датчика
случайных чисел, в результате чего формируются случайные данные определенного типа.
Для того чтобы вставить данные в таблицу, необходимо использовать инструкцию INSERT.
Для того чтобы сгенерировать случайное число из диапазона от
нуля до единицы в MS Access используется функция Rnd(). Стоит отметить, что кроме числового можно получать случайные значения и других типов (дата, текст и т. д.). Например, с помощью
функции Chr() число преобразуется в значение типа string, то есть
символ, соответствующий этому числу.
Задание: создать таблицу «test». Разработать форму и программу на VBA, позволяющие для заданного числа N заполнить таблицу «test» N записями со случайными значениями в числовых полях (с учетом заданных ограничений на значения в каждом числовом поле).
Исходные данные: поля типа Счетчик и Числовой из таблицы
«tab1» ЛР № 1.
Порядок выполнения работы:
1. Создать таблицу «test», которая содержит два поля: поле
­типа «Счетчик» и поле типа «Числовой».
2. Разработать форму «form3», разместив на ней следующие
элементы:
– поле для ввода значения N (число добавляемых записей),
– поля для ввода значений, ограничивающих случайные данные (диапазон значений «от» и «до»),
– кнопку для запуска программы, заполняющей таблицу данными,
– кнопку для очищения таблицы.
3. Разработать программу, которая для требуемого количества записей N из определенного диапазона заполняет таблицу «test» случайными данными заданного типа (в данном случае – целые числа из определенного диапазона). При этом необходимо предусмотреть, что в поля для ввода количества записей,
а также диапазона значений должны вводиться только числовые
значения.
13
4. После заполнения таблицы случайными данными необходимо вывести сообщение об успешной вставке записей. После очищения таблицы – сообщение об успешной очистке таблицы.
5. Проверить правильность работы программы: таблица заполняется случайными целыми числами из определенного диапазона,
при этом после очистки таблицы поле типа Счетчик начинается
с единицы.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Описание таблицы «test» и её полей.
4. Описание формы «form3» и её скриншот.
5. Пример работы программы для конкретных значений (скриншот формы «form3» с заполненными полями, скриншот заполненной таблицы «test» со случайными записями).
6. Скриншоты окон сообщений.
7. Листинг программы с комментариями.
8. Вывод.
Вопросы для самопроверки:
1. Как описать на VBA получение случайного числа из заданного диапазона?
2. Какая инструкция SQL используется для вставки записей
в таблицу?
3. Для чего необходимо заполнять таблицу случайными данными?
Лабораторная работа № 6
Оценка времени выполнения запроса к таблице базы данных
Цель работы: освоить методику оценки времени выполнения
запросов к базе данных.
Краткие теоретические сведения
Для каждого запроса необходимо контролировать среднее время его выполнения.
Для оценки интервалов времени в MS Access можно использовать функцию timer(), которая возвращает число секунд, прошедшее с момента полуночи.
14
Эксперименты для оценки времени выполнения запроса со
с­ лучайными данными необходимы для того, чтобы понять, как
быстро будут выполняться запросы к большим таблицам на практике.
Стоит отметить, что эксперименты, связанные со временем выполнения запроса, необходимо выполнять на одном и том же ПК
с одной и той же версией программы MS Access и версией ОС.
При этом на время эксперимента необходимо отключить другие
приложения, которые могут выполнять трудоемкие операции, например, автосохранение или загрузку обновлений из интернета.
Для корректного сравнения результатов измерений необходимо
также учитывать объем выбираемых данных при проведении эксперимента. То есть, при оценке времени выполнения запроса типа
SELECT доля выбираемых записей должна быть примерно одинаковой для различного объема таблиц.
Для получения зависимости должна быть проведена серия экспериментов, в каждом из которых будет получена одна точка на
графике этой зависимости. Также стоит учитывать, что один эксперимент, то есть выполнение запроса для одного и того же объема таблицы необходимо выполнять несколько раз для получения
среднего времени выполнения запроса. Это связано с тем, что при
выполнении запроса один раз оценка времени его выполнения может иметь значимую погрешность. При этом запрос типа SELECT
должен выполняться к одной и той же таблице несколько раз.
­После проведения эксперимента необходимо представить результаты в виде, удобном для анализа – построить график.
Задание: для таблицы «test» составить программу и построить
зависимость среднего времени выполнения запросов от числа записей N в таблице «test».
Исходные данные: таблица «test», форма «form3» и программа
для заполнения таблицы случайными данными из ЛР № 5.
Порядок выполнения работы:
1. Описать используемую таблицу «test».
2. Использовать программу из ЛР № 5 для заполнения таблицы
случайными данными.
3. Создать форму «form4», поместив на ней следующие обязательные элементы:
– поле для ввода значения K (количество выполнений запроса
в одном эксперименте),
– поле для вывода среднего времени выполнения запроса,
– поле для ввода значения N (число добавляемых записей),
15
– поле для ввода значений, ограничивающих случайные данные (диапазон значений «от» и «до»),
– кнопку для очищения таблицы,
– кнопку, при нажатии которой выполняется эксперимент
­(одна кнопка для выполнения запроса SELECT и одна кнопка для
запроса INSERT).
4. Придумать и описать запрос типа SELECT с условием фильтрации, который будет использоваться для проведения эксперимента, при этом фильтрация должна происходить по числовому
полю.
5. Разработать программу для выполнения одного эксперимента. Программа должна формировать оценку среднего времени
выполнения запроса типа INSERT. При этом предусмотреть, что
в поля для ввода числовых значений (количество записей, диапазон, количество экспериментов) должны вводиться только числовые значения.
6. Разработать программу для оценки среднего времени выполнения запроса типа SELECT.
7. Ввести в таблицу «test» 10 000 записей, выполнить измерение среднего времени выполнения запроса типа INSERT (K = 3).
8. Для таблицы, состоящей из 10 000 записей, выполнить запрос типа SELECT (K = 3).
9. Обеспечить автоматическую запись результатов в отдельную
таблицу «results1» в MS Access (с помощью VBA). Таблица с результатами «results1» должна содержать следующие поля: тип
запроса, количество записей в таблице, среднее время выполнения
запроса.
10. Очистить таблицу «test» и повторить эксперименты для
N = 50 000, 100 000, 250 000 и 500 000 записей.
11. Построить графики зависимости среднего времени выполнения запроса типа INSERT и SELECT от количества записей.
­Построить линию регрессии для каждого типа запроса.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Описание таблицы «test».
4. Текст запроса – выборки с условием фильтрации.
5. Описание формы «form4», ее скриншот.
6. Таблица с результатами «results1» (для запросов типа INSERT
и SELECT).
7. Графики полученных зависимостей (два графика).
16
8. Листинг программы с комментариями.
9. Выводы.
Вопросы для самопроверки:
1. Почему необходимо выполнять запрос несколько раз и вычислять среднее время выполнения запроса?
2. Какая функция позволяет измерить время выполнения
запроса?
3. Почему с увеличением числа записей в таблице время выполнения запроса увеличивается?
Лабораторная работа № 7
Влияние индексации полей на производительность запросов
Цель работы: оценить влияние индексации на время выполнения запросов к базе данных.
Краткие теоретические сведения
В обычной БД, без использования индексов поиск данных осуществляется путем сканирования таблиц, то есть для выполнения запроса необходимо просмотреть все данные и сравнить их
с запрашиваемыми. Индексы позволяют ускорить процесс поиска данных. Индекс – это указатель на данные, размещенные в таб­
лице. Индекс содержит отсортированные значения указанного поля ­таблицы и ссылки на номера записей таблицы, где эти значения находятся. Когда происходит поиск данных в таблице, сначала просматривается индекс с помощью специального алгоритма,
а затем находится ссылка на номер записи и по ней необходимая
строка в таблице.
Индексный ключ – это значение, которое помогает быстро находить строку с нужными данными. Индексы могут быть уникальными и неуникальными, в неуникальных допускается дублирование индексных ключей в таблице БД. Уникальным индекс может
быть, если уникальны сами данные. Необходимо учитывать, что
первичный ключ таблицы индексируется автоматически.
Индексы можно создавать по одному или нескольким полям,
составные индексы предназначены для того, чтобы пользователь
мог различать записи, в которых какие-то поля могут иметь одинаковые значения. Для того чтобы создать простой индекс, следу17
ет выбрать в режиме конструктора таблицы нужное поле и установить его свойство «Индексированное поле» в одно из двух значений: «Да (Совпадения не допускаются)» или «Да (Допускаются
совпадения)». В результате создается индекс с именем, совпадающим с наименованием поля.
При добавлении новых записей в таблицу с индексами или удалении имеющихся индекс изменяется, что позволяет осуществлять поиск корректно.
Стоит отметить, что использование индексов может вызвать замедление при добавлении или обновлении данных таблицы.
Задание: для таблицы «test» построить зависимость среднего
времени выполнения запроса от числа записей N при использовании индексов.
Исходные данные: таблица «test», программа для заполнения таблицы случайными данными из ЛР № 6, форма «form4» из
ЛР № 6, результаты, полученные в ходе выполнения ЛР № 6.
Порядок выполнения работы:
1. Открыть таблицу «test» и в режиме конструктора изменить
значение свойства «Индексированное поле» на «Да (Допускаются
совпадения)» для числового поля.
2. Использовать программу из ЛР №6 для выполнения экспериментов.
3. Ввести в таблицу «test» 10 000 записей, выполнить измерение среднего времени выполнения запроса типа INSERT и SELECT
(количество выполнений в одном эксперименте K = 3).
4. Обеспечить автоматическую запись результатов в отдельную
таблицу «results2» в MS Access (с помощью VBA). Структура таблицы «results2» такая же, как структура таблицы «results1» из
ЛР № 6.
5. Очистить таблицу и повторить эксперимент для N = 50 000,
100 000, 250 000, 500 000 записей.
6. Построить два графика зависимости среднего времени выполнения запроса от количества записей в таблице «test» (для
SELECT и INSERT). Построить линии регрессии. На каждом графике должно быть по две линии – вариант с индексом и без индекса. Данные для построения графика без индекса брать из ЛР № 6.
7. Сделать выводы по полученным результатам.
Содержание отчета:
1. Цель работы.
2. Задание.
3. Скриншот заполненной таблицы «test».
18
4. Скриншот формы «form4».
5. Текст запроса – выборки.
6. Таблицы с результатами в MS Access.
7. Графики полученной зависимости.
8. Листинг созданных модулей с комментариями.
9. Выводы.
Вопросы для самопроверки:
1. Что такое индексы и для чего они используются?
2. Как индексация полей и её отсутствие влияют на время выполнения запросов различного типа?
3. Для чего нужна линия регрессии?
Литература
1. Голицына О. Л, Попов И. И, Партыка Т. Л. Основы проектирования баз данных: учеб. пособие. М.: ФОРУМ, 2014. 415 с.
2. Чарльз Е. Браун, Рон Петруша. Access VBA. Программирование в примерах. М.: Кудиц-Образ, 2006. 432 с.
3. Гандерлой М., Харкинз, Храмов С. А. Автоматизация Microsoft Access с помощью VBA. М.: Вильямс, 2006. 416 с.
4. Слепцова Л. Д. Программирование на VBA в Microsoft Office
2010. М.: Вильямс, 2010. 432 с.
19
Приложение 1
Варианты индивидуальных заданий
Вариант
№
20
Исходные данные
1
Предметная область: Прокат книг.
Книги (Код книги, Название, Автор, Стоимость проката, Жанр,
Дата выхода книги);
Пользователи: директор, продавец, экономист.
2
Предметная область: Транспортная компания.
Водители (Код водителя, ФИО, Вид транспорта, Дата начала
работы, Заработная плата);
Пользователи: директор, водитель, экономист.
3
Предметная область: Больница.
Врачи (Код врача, ФИО, Пол, Оклад, Дата рождения,
Дата устройства на работу);
Пользователи: директор, врач, экономист.
4
Предметная область: Школа.
Учителя (Код учителя, ФИО, Пол, Стаж, Дата рождения, Оклад);
Пользователи: директор, преподаватель, ученик.
5
Предметная область: Продажа автомобилей.
Автомобили (Код автомобиля, Марка, Стоимость автомобиля,
Дата выпуска автомобиля);
Пользователи: директор, продавец-консультант, экономист.
6
Предметная область: Продажа телефонов.
Телефоны (Код товара, Название, Модель, Дата выхода, Цена);
Пользователи: директор, продавец-консультант, бухгалтер.
7
Предметная область: Турфирма.
Туры (Код тура, Страна, Дата начала тура, Дата окончания,
Отель, Стоимость);
Пользователи: директор, менеджер, бухгалтер.
8
Предметная область: Гостиница.
Учет заселений (Код заселения, ФИО клиента, Дата заезда,
Количество дней пребывания, Стоимость).
Пользователи: директор, администратор гостиницы, экономист.
9
Предметная область: Зоомагазин.
Животные (Код животного, Вид животного, Стоимость продажи,
Дата рождения животного);
Пользователи: директор, продавец, менеджер.
10
Предметная область: Аэропорт.
Самолеты (Код самолета, Тип самолета, Дата выпуска,
Количество мест, Фирма-производитель);
Пользователи: директор, инженер, менеджер.
Вариант
№
Исходные данные
11
Предметная область: Продажа музыкальных билетов.
Билеты (Код билета, Название концерта, Дата концерта,
Стоимость билета);
Пользователи: директор, кассир, экономист.
12
Предметная область: Компания, предоставляющая телефонные
услуги.
Переговоры (Код переговоров, Город, Дата, Количество минут,
ФИО абонента);
Пользователи: директор, менеджер, экономист.
13
Предметная область: Прокат фильмов.
Фильмы (Код фильма, Название, Режиссер, Дата выхода
фильма, Стоимость проката);
Пользователи: директор, кассир, бухгалтер.
14
Предметная область: Красная книга.
Животные (Код животного, Название животного, Дата
занесения в книгу, Численность популяции);
Пользователи: директор, менеджер, экономист.
15
Предметная область: Курсы иностранных языков.
Группы (Код группы, Язык, Дата начала занятий, Цена,
Продолжительность);
Пользователи: директор, менеджер, бухгалтер.
21
СОДЕРЖАНИЕ
Предисловие.......................................................................... 3
Лабораторная работа № 1........................................................ 3
Лабораторная работа № 2........................................................ 6
Лабораторная работа № 3........................................................ 8
Лабораторная работа № 4.......................................................10
Лабораторная работа № 5...................................................... 12
Лабораторная работа № 6.......................................................14
Лабораторная работа № 7.......................................................17
Литература......................................................................... 19
Приложение 1. Варианты индивидуальных заданий................. 20
22
Документ
Категория
Без категории
Просмотров
0
Размер файла
460 Кб
Теги
igoshin
1/--страниц
Пожаловаться на содержимое документа