
БД_Лаба_1-1
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
ассистент |
|
|
|
Иванова М.С |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №1 |
Заполнение таблицы базы данных случайными данными. |
по курсу: База данных |
|
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4616 |
|
|
|
А.В.Павлов |
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2019
Цель работы: освоить разработку программ для заполнения таблиц случайными данными. Освоить методику оценки времени выполнения запросов к базе данных
Задание: для таблицы «Тест» составить программу и построить
зависимость среднего времени выполнения запросов от числа записей N
в таблице «Тест».
Создаем форму где вводим диапазон чисел, а также их количество. Так же четыре кнопки для выполнения программы, для очистки таблиц и для удаление созданного запроса.
Для вывода времени, которое потратилось на обработку информации создаем три поля – создание, insert, select, внутри которых указывается время выполнения.
Рисунок 1 – Форма для создания чисел
Рисунок 2- Полученные данные в созданных таблицах
Сделаем копию базы данных в которой выберем тип поле “индексированный” и проведем все тесты заново.
Рисунок 3 – Индексированный тип поля.
Листинг
Option Compare Database
Private Sub Кнопка6_Click()
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim qdf1 As DAO.QueryDef
Set db = CurrentDb
amount = Forms![Время].Поле0
bottom = Forms![Время].Поле2
Top = Forms![Время].Поле4
Dim Start, Finish, TotalTime, Start1, Finish1, TotalTime1
If (MsgBox("Press Yes to start", _
4)) = vbYes Then
Start = Timer
Dim j
randomDigits "Тест", bottom, Top, amount
Finish = Timer
TotalTime = Finish - Start
MsgBox "Worked for " & TotalTime & " seconds"
Forms![Время]![Поле9] = TotalTime
Otbor = Forms![Время].Поле28
Start1 = Timer
Dim sql_query_2 As String
sql_query_2 = "SELECT значение, значение_2 FROM Тест WHERE Значение > Otbor;"
Set qdf = CurrentDb.CreateQueryDef("NewQuery", sql_query_2)
DoCmd.OpenQuery qdf.Name
Finish1 = Timer
TotalTime1 = Finish1 - Start1
Forms![Время]![Поле13] = TotalTime1
Dim sql_query As String
sql_query = "insert into Время (количество_записей, время_select, время_insert) values (Forms![Время]![Поле0],Forms![Время]![Поле13],Forms![Время]![Поле9])"
DoCmd.RunSQL sql_query
Else
End
End If
End Sub
Sub randomDigits(Тест, fldOt, fldDo, N)
Dim i
Randomize
With CurrentDb.OpenRecordset("select * from [" & Тест & "]")
For i = 1 To N
.AddNew
!Значение = Rnd(i) * (fldDo - fldOt) + fldOt
!Значение_2 = Rnd(i) * (fldDo - fldOt) + fldOt
.Update
.Bookmark = .LastModified
Next i
End With
End Sub
Private Sub Кнопка8_Click()
DoCmd.RunSQL "DELETE * FROM Время"
DoCmd.RunSQL "ALTER TABLE Тест ALTER COLUMN Код counter(1,1)"
MsgBox "Таблица удалена", vbInformation, "Окно подтверждения "
End Sub
Private Sub Кнопка11_Click()
DoCmd.RunSQL "DELETE * FROM Тест"
DoCmd.RunSQL "ALTER TABLE Тест ALTER COLUMN Код counter(1,1)"
MsgBox "Таблица удалена", vbInformation, "Окно подтверждения "
End Sub
Private Sub Кнопка18_Click()
DoCmd.DeleteObject acQuery, "NewQuery"
End Sub
Вывод: В ходе лабораторной работе я создал форму в которой мы заполняем начальные данные, такие как диапазон, количество записей. После этого генерируется случайные числа с помощью кода на VBA и заносятся в таблицу.
Список использованных источников
-
Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.
-
Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.