Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

БД_Лаба_1-1

.docx
Скачиваний:
8
Добавлен:
18.12.2019
Размер:
111.95 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное образовательное учреждение высшего образования

«САНКТ-ПЕТЕРБУРГСКИЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА № 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 и заносятся в таблицу.

Список использованных источников

              1. Преснякова Г.В., Шахомиров А.В. Проектирование реляционных баз данных: учебное пособие. СПб.: ГУАП, 2015. 125с.

              2. Карчевский Е.М., Филиппов И.Е., Филиппова И.А. Access 2010 в примерах: учебное пособие. Казань: Казанский университет, 2012. 140с.

Соседние файлы в предмете Базы данных