Новости
12.04.2024
Поздравляем с Днём космонавтики!
08.03.2024
Поздравляем с Международным Женским Днем!
23.02.2024
Поздравляем с Днем Защитника Отечества!
Оплата онлайн
При оплате онлайн будет
удержана комиссия 3,5-5,5%








Способ оплаты:

С банковской карты (3,5%)
Сбербанк онлайн (3,5%)
Со счета в Яндекс.Деньгах (5,5%)
Наличными через терминал (3,5%)

РЕАЛИЗАЦИЯ ПРОГРАММНОЙ СОСТАВЛЯЮЩЕЙ ТЕСТОВОГО СТЕНДА ДЛЯ ПРЕДСТАВЛЕНИЯ И АНАЛИЗА МОДЕЛИ ПРЕДМЕТНОЙ ОБЛАСТИ В ФОРМЕ РЕЛЯЦИОННЫХ ТАБЛИЦ SQL И ИХ МУЛЬТИПЛИКАТИВНОМ ОТОБРАЖЕНИИ

Авторы:
Город:
Екатеринбург
ВУЗ:
Дата:
23 февраля 2016г.

Будем рассматривать предметную область образовательного процесса высшего учебного заведения. Современные законодательные требования к информационному ресурсу сайта вуза делают задачу его реализации нетривиальной [1-5]. Огромный массив информации, подверженной изменениям в режиме реального времени требует применения специальных алгоритмов формализации, автоматизации и оптимизации.

Анализ правовых  норм  и структурная составляющая модели  были описаны в [9,10]. Был предложен алгоритм усовершенствованного индекса базы данных, позволяющий повысить эффективность обработки информации в базе данных сайта вуза. Был поставлен эксперимент. Результаты доложены на конференции «XV Международная научно-практическая конференция «Техника и технология: новые перспективы развития»»

В данной статье описывается процесс постановки эксперимента.

Для реализации эксперимента по определению эффективности усовершенствованного и стандартного алгоритмов, был подготовлен программно-аппаратный стенд.

Опишем программную среду, реализующую алгоритм.

Целью эксперимента является определение эффективности, т.е. определение временных затрат на выборку записей с произвольными значениями.

Программное обеспечение должно реализовывать следующий функционал:

1.     Реализовывать заполнение базы данных записями в соответствии со сформированными параметрами эксперимента.

2.     Осуществить выборку произвольных значений, реализуя исследуемый метод доступа.

3.     Замерить время выполнения выборки по каждому алгоритму из п. 2.

Реализованное программное обеспечение выполняет все данные функции, включая пакетный режим обработки для формирования значительного количества контрольных точек эксперимента.

Для получения более точных результатов эксперимента, необходимо, чтобы фоновые процессы оказывали минимальное влияние на эксперимент. Учитывая, что эксперимент для повышения точности запускается на достаточно значительное время, для выполнения была выделена отдельная машина. Программное обеспечение Windows 7 было настроено таким образом, чтобы минимизировать процессорное время, которое затрачивается фоновыми и служебными процессами. На период эксперимента стенд был физически отключен от сетевого интерфейса.

Полученный стенд имеет следующие параметры:

Процессор: Intel ® Core ™ i7-2600 CPU @ 3.40 GHz 3.40 GHz ОЗУ: 2.00 Гб

ОС: Windows 7 Профессиональная

Тип системы: 64-разрядная операционная система.

СУБД: Microsoft SQL Server Express (64-bit) [6, 7], версия 11.0.3128.0

Для реализации эксперимента было разработано программное обеспечение на языке C# с использованием профессиональной среды разработки Microsoft Visual Studio Premium 2012 [8] версии 4.5.51641

Программа получает следующие выходные параметры:

·       Тип метода, по которому будет осуществляться выборка

·       Количество дескрипторов (определяет структуру БД. Названия полей носят имена d1,d2,…dn, где n – количество дескрипторов)

·       Длину строки балластного поля. Балластное поле имеет sql-тип varchar(MAX) и забивается количеством символов, равных m.

·       Количество строк, добавляемых в БД на каждой итерации эксперимента. При каждом последующем замере, ПО генерирует соответствующее количество записей в БД.

·       Количество итераций эксперимента. Соответствует количеству записей в результирующей таблице.

·       Комментарий. Будет записан в ячейку результирующей таблицы «как есть».

Для реализации сути эксперимента (определения времени отработки метода), используется класс платформы .NET Framework 4.5 с именем public class Stopwatch. Данный класс принадлежит пространству имен System.Diagnostics, сборка в System.dll [11]. Класс содержит обширный список свойств и методов. В рамках эксперимента нас интересуют следующие:

·       Свойство ElapsedMilliseconds. Возвращает общее затраченное время в миллисекундах, измеренное текущим экземпляром [11]

·       Метод Reset. Останавливает измерение интервала времени и обнуляет затраченное время[11]

·       Метод Start. Запускает или продолжает измерение затраченного времени для интервала [11].

Экземпляр Stopwatch измеряет затраченное время с помощью подсчета тактов таймера на нижнем уровне временного механизма. Если установленное оборудование и операционная система  поддерживают счетчики производительности высокого разрешения, то класс Stopwatch использует этот счетчик для измерения затраченного времени. В противном случае класс Stopwatch использует системный таймер для измерения затраченного времени [11].

Таким образом, точность полученных значений зависит от программно-аппаратного обеспечения стенда. Для определения характеристик нижнего уровня временного механизма, необходимо воспользоваться WinAPI функциями QueryPerformanceFrequency [12] и QueryPerformanceCounter [13]. Класс Stopwatch имеет поля, позволяющие получить данную информацию в рамках управляемого кода.

Для стенда была запущена скомпилированная программа, выводящая на экран параметры точности счетчика производительности. Исходный C# код имеет следующий вид:

Console.WriteLine("Timer: IsHighResolution {0}, Frequency {1}", Stopwatch.IsHighResolution, Stopwatch.Frequency);

Первый параметр выводит на экран Истина, если таймер зависит от счетчика производительности высокого разрешения [14], второй возвращает число тактов в секунду [15].

При отработке представленного выше кода, стенд выдал следующую строку: Timer: IsHighResolution True, Frequency 1 656 396.

Таким образом, для эксперимента доступен счетчик производительности высокого разрешения, измерения ведутся с точностью приблизительно до полутора микросекунд, что является достаточной точностью для данной задачи.

Для экспериментов создается таблица, формирующаяся следующей командой SQL [16]: CREATE TABLE [dbo].[exp] (

[Id] INT            IDENTITY (1, 1) NOT NULL, [d1]  INT                       NULL,

[d2] INT             NULL,

[dn] INT NULL,

 [long] VARCHAR (MAX) NULL,

PRIMARY KEY NONCLUSTERED ([Id] ASC)

);

Для каждого эксперимента таблица удаляется полностью и создается новая, чтобы исключить влияние предыдущего эксперимента.

Для заполнения значений дескрипторов используются случайные значения, сгенерированные с применением класса System.Random, сборка mscorlib.dll [17].

Стандартный метод реализуется посредством  чтения всех записей из базы данных в массив данных, реализованный классом System.Collections.Generic.List [18] и последующим поиском нужного значения. Для оценки эффективности замеряется время, потраченное на чтение записей и на поиск нужной записи.

Для реализации усовершенствованного алгоритма сначала строится таблица, представляющая собой усовершенствованный индекс. Структура индексной таблицы в SQL:

CREATE TABLE [dbo].[indexTable] (

[Id]   INT               IDENTITY (1, 1) NOT NULL, [d1]  INT                         NULL,

[d2] INT               NULL,

[dn] INT               NULL,

[ptrs] VARBINARY (MAX) NULL,

PRIMARY KEY NONCLUSTERED ([Id] ASC)

Поле ptrs содержит бинарную строку, каждые 32 бита которого являются целочисленным указателем на запись в исходной таблице, содержащей данное отношение.

Индексная таблица (I) строится из исходного отношения (Q) посредством следующего алгоритма:

1.     Сортируем отношение Q

2.     Заносим значения полей a и b очередной записи отношения Q в качестве очередной записи отношения I. Значение поля N заносим в поле ptrs.

3.     Считываем следующую запись отношения Q, сравниваем значения a и b с последними внесенными в отношение I.

a.     Если значения совпадают, то добавляем значение поля N в конец поля ptrs последней внесенной записи в отношение I и повторяем шаг 3.

b.     Если значения отличаются, то переходим к шагу 2.

В  результате,  для определения записей,  содержащих нужные  нам  значений дескрипторов достаточно просмотреть только индексную таблицу.

В данной статье описаны некоторые общие моменты практической экспериментальной реализации метода усовершенствованного индекса в задачах управления базой данных сайта вуза.

 

Список литературы

1.     Федеральный закон Российской Федерации от 29 декабря 2012 г. № 273-ФЗ "Об образовании в Российской Федерации" //Российская газета. Федеральный выпуск. 2012. № 5976.

2.     План деятельности Министерства образования и науки Российской Федерации на 2013-2018 годы. Утвержден Министром образования и науки Российской Федерации 18 июня 2013 г. (№ ДЛ-12/02вн) (http://base.consultant.ru/cons/cgi/online.cgi?req=doc;base=EXP;n=560364).

3.     План мероприятий ("дорожная карта") "Изменения в отраслях социальной сферы, направленные на повышение эффективности образования и науки". Утв. распоряжением Правительства РФ от 30 декабря 2012 г. № 2620-р (http://www.garant.ru/products/ipo/prime/doc/70191846/).

4.     Постановление Правительства Российской Федерации от 10 июля 2013 г. № 582, г. Москва "Об утверждении Правил размещения на официальном сайте образовательной организации в информационно- телекоммуникационной сети "Интернет" и обновления информации об образовательной организации" // Российская газета. 2013. 22 июля.

5.     Федеральные государственные образовательные стандарты высшего профессионального образования. 2014 (http://минобрнауки.рф).

6.     Билл Карвин Программирование баз данных SQL. Типичные ошибки и их устранение. М.: Рид Групп, 2012 г. 336 с.

7.     Уильям Р. Станек. Microsoft SQL Server 2012. Справочник администратора. СПб.: Русская Редакция, БХВ- Петербург, 2013 г. 576 c.

8.     Bruce Johnson. Professional Visual Studio 2013. John Wiley and Sons, Ltd, 2014. 1104 с.

9.     Часовских В.П., Стаин Д.А. Структура, содержание и среда разработки веб-сайта вуза// Эко-Потенциал. 2013. № 3-4. С. 160-172 (http://management-usfeu.ru/Gurnal)

10. Часовских В.П., Стаин Д.А. Модель образовательного процесса и сайт вуза 2.0// Эко-Потенциал. 2013. № 2(6). С. 113-118 (http://management-usfeu.ru/Gurnal)

11. Stopwatch  –  класс  [Электронный  ресурс]  //  MSDN  —  сеть  разработчиков  Майкрософт.  URL: http://msdn.microsoft.com/ru-ru/library/system.diagnostics.stopwatch%28v=vs.110%29.aspx

12. QueryPerformanceFrequency function [Электронный ресурс] // MSDN — сеть разработчиков Майкрософт – классические приложения. URL: http://msdn.microsoft.com/ru- ru/library/windows/desktop/ms644905%28v=vs.85%29.aspx

13. QueryPerformanceCounter function [Электронный ресурс] // MSDN — сеть разработчиков Майкрософт – классические приложения. URL: http://msdn.microsoft.com/ru- ru/library/windows/desktop/ms644904%28v=vs.85%29.aspx

14. Stopwatch. Is High Resolution - поле [Электронный ресурс] // MSDN — сеть разработчиков Майкрософт. URL: http://msdn.microsoft.com/ru- ru/library/system.diagnostics.stopwatch.ishighresolution%28v=vs.110%29.aspx

15. Stopwatch. Frequency - поле [Электронный ресурс] // MSDN — сеть разработчиков Майкрософт. URL: http://msdn.microsoft.com/ru-ru/library/system.diagnostics.stopwatch.frequency%28v=vs.110%29.aspx

16. Карпова И.П. Базы данных. Учебное пособие для вузов. СПб.: Питер, 2014. 240 с

17. Random  -  класс  [Электронный  ресурс]  //  MSDN  —  сеть  разработчиков  Майкрософт.  URL: http://msdn.microsoft.com/ru-ru/library/system.random%28v=vs.110%29.aspx

18. List  -  класс         [Электронный  ресурс]  //  MSDN  —  сеть  разработчиков  Майкрософт.  URL: http://msdn.microsoft.com/ru-ru/library/6sh2ey19%28v=vs.110%29.aspx