Научная статья на тему 'Разработка индексной структуры для учебной системы управления данными'

Разработка индексной структуры для учебной системы управления данными Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
55
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОДСИСТЕМЫ ХРАНЕНИЯ ДАННЫХ / БАЗЫ ДАННЫХ / ТРАНЗАКЦИИ / DATABASE ENGINE / DATABASE STORAGE / DATABASES / TRANSACTION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Безрук П.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPING INDEX STRUCTURE FOR EDUCATIONAL DATABASE MANAGMENT SYSTEM

The research describes developing of index structure for educational database, their scheme and performance results.

Текст научной работы на тему «Разработка индексной структуры для учебной системы управления данными»

Программные средства и информационные технологии

УДК 004.65

РАЗРАБОТКА ИНДЕКСНОЙ СТРУКТУРЫ ДЛЯ УЧЕБНОЙ СИСТЕМЫ УПРАВЛЕНИЯ ДАННЫМИ

П. А. Безрук

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

E-mail: bez_pa@rambler.ru

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

Ключевые слова: подсистемы хранения данных, базы данных, транзакции. DEVELOPING INDEX STRUCTURE FOR EDUCATIONAL DATABASE MANAGMENT SYSTEM

P. A. Bezruk

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: bez_pa@rambler.ru

The research describes developing of index structure for educational database, their scheme and performance results.

Keywords: database engine, database storage, databases, transaction.

Современные системы управления базами данных (СУБД) строят систему индексов, используя оптимизированные под поиск структуры, такие, как сбалансированное дерево, В-деревья и другие.

В учебной СУБД реализованы некластерные индексы на основе упорядоченного по числовым значениям массива соответствующих полей [1]. Поддерживаемые поля со значениями: целые числа, числа с плавающей точкой и дата-время.

Некластерные индексы могут быть созданы для нескольких полей одной таблицы, без необходимости сортировать строки таблицы по определённому критерию [2; 3].

Индексы для полей хранятся в отдельном бинарном файле. Файл формируется по определенной схеме, в первых четырех байтах хранятся количество индексов. Это значение является входным параметром бинарного поиска. Далее располагаются индексы друг за другом.

Индекс представлен объектом, содержащим несколько свойств: значение и указатель на место строки в таблице. Все свойства хранятся в виде набора байт. Указатель - всегда целое число (4 байта), а вторая часть зависит от типа данных.

Для реализации поиска места для вставки в структуру индексов, а также для поиска самих значений был использован алгоритм бинарного поиска. Алгоритм бинарного поиска имеет сложность который позволяет быстро находить нужные значения, а затем обратиться по нужному адресу в файле с данными, избегая полного перебора [4; 5]. Алгоритм был адаптирован для работы с файлами и протестирован.

Для сбора сведений о результатах выполнения полной выборки были созданы одинаковые таблицы. В одной из них поле, по которому производилась фильтрация, было проиндексировано. Таблицы заполнялись одинаковыми наборами данных, в одном и том же порядке (табл. 1, 2).

Таблица 1

Результаты тестирования выборки из таблиц

Число записей Время работы без индекса, с Время работы с индексом, мс

1 000 3,79 12

5 000 17,95 43

10 000 39,5 105

Таблица 2 Результаты тестирования вставки в таблицы

Число записей Время работы без индекса, с Время работы с индексом, мс

1 000 2,104 3,679

5 000 4,023 9,349

10 000 8, 034 18,530

Решетневские чтения. 2018

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

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

Библиографические ссылки

1. Грофф Дж., Вайнберг П., Оппель Э. SQL. Полное руководство. 3-е изд. М. : Вильямс, 2015. 960 c.

2. Дейт, К. Дж. Введение в системы баз данных. 8-е изд. М. : Вильямс, 2005. 1328 с.

3. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. М. : Вильямс, 2003. 1088 с.

4. Вирт Н. Алгоритмы и структуры данных. М. : Мир, 1989. 360 с.

5. InnoDB - Справочное руководство по MySQL [Электронный ресурс]. URL: http://www.mysql.ru/ docs/man/InnoDB_overview.html (дата обращения 12.03.2018).

References

1. Groff Dzh., Vaynberg P., Oppel' E. SQL. Polnoye rukovodstvo [SQL: The Complete Reference]. Moscow, Vil'yams, 2015. 960 p.

2. Deyt, K. Dzh. Vvedeniye v sistemy baz dannykh [An Introduction to Database Systems]. Moscow, Vil'yams, 2015. 1328 p.

3. Garsia-Molina G., Ul'man Dzh., Uidom Dzh. Sistemy baz dannykh. Polnyy kurs [Database Systems. The Complete Reference]. Moscow, Vil'yams, 2003. 1088 p.

4. Virt N. Algoritmy i struktury dannykh [Algorithms and Data Structures]. 1989 Moscow, Mir. 360 p.

5. InnoDB - Spravochnoye rukovodstvo po MySQL. Available at: http://www.mysql.ru/docs/man/InnoDB_ overview.html (accessed 12.03.2018). (In Russ.)

© Безрук П. А., 2018

i Надоели баннеры? Вы всегда можете отключить рекламу.