Тип работы:
Предмет:
Язык работы:


Платформа для высокопроизводительного поиска зависимостей в базах данных

Работа №126594

Тип работы

Бакалаврская работа

Предмет

база данных

Объем работы39
Год сдачи2021
Стоимость4600 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
65
Не подходит работа?

Узнай цену на написание


1. Введение 4
1.1. Постановка задачи 5
2. Обзор 7
2.1. Основные понятия 7
2.2. Классификация алгоритмов 8
2.3. Проприетарные решения 9
2.4. Исследовательские решения 11
2.5. Metanome 12
3. Архитектура Desbordante 14
4. Подготовка экспериментов 17
4.1. Вопросы экспериментального исследования 17
4.2. Среда для проведения экспериментов 17
4.3. Оцениваемые метрики 19
4.4. Обеспечение стабильности экспериментов 20
5. Сравнение с Metanome 22
5.1. Сравнение производительности 22
5.2. Настройка Metanome 24
5.3. Причины повышения производительности 27
6. Уменьшение трудоёмкости задачи 31
7. Выводы 33
8. Заключение 34
9. Благодарности 35
Список литературы 36

Зависимости в базах данных представляют собой закономерности в дан­ных. Владение подобной метаинформацией облегчает решение многих задач, таких как: нормализация схемы, очистка данных и оптимизация запросов [3, 25, 26]. Многие подвиды зависимостей, такие как рассмат­риваемые в данной работе функциональные зависимости, соответству­ют известным в предметной области правилам, и зачастую эксперт мо­жет определить большинство зависимостей, имеющих место в данной таблице.
Если подобное исследование зависимостей недоступно, использует­ся автоматическое обнаружение зависимостей — его целью является составление списка всех зависимостей, удерживающихся на заданной таблице. К сожалению, в данной постановке задача имеет сложность O(N • 2м), где N — количество кортежей, M — количество атрибу­тов [15].
Тем не менее, в области были предложены дюжины алгоритмов по­иска функциональных зависимостей, и в каждом проблема решается уникальным способом. Таким образом, становится актуальной плат­форма:
1. позволяющая использовать эффективные реализации алгоритмов для непосредственного поиска зависимостей;
2. реализующая различные алгоритмы с использованием одинако­вых технологий для их последующего сравнения и проведения прочих экспериментов.
При анализе предметной области было найдено единственное реше­ние, подходящее на роль подобной платформы. Metanome — открытая платформа, на уровне бэкэнда реализованная на языке программиро­вания Java, основной целью которой является анализ метаданных [8]. Несмотря на множество положительных сторон, Metanome не удовле­творяет вышеупомянутым требованиям в полной мере по следующим причинам:
• Программы, реализованные на языке Java, обладают достаточной производительностью при решении бизнес-задач, однако для ре­шения задач, требующих высокопроизводительных вычислений, существуют другие языки и технологии, позволяющие добиться более высокой эффективности.
• Используемые при работе кода, написанного на Java, техноло­гии наподобие динамической компиляции и сборки мусора вносят неопределенность в скорость работы программы, что усложняет задачу оценки производительности [14].
Таким образом, было решено спроектировать и реализовать аль­тернативную платформу для высокопроизводительного поиска функ­циональных зависимостей, получившую название Desbordante1. Чтобы избежать недостатков, присущих Metanome, было принято решение ис­пользовать для реализации язык программирования C++:
• Благодаря широким возможностям по низкоуровневой оптимиза­ции и предоставлению программисту полного контроля над ис­полняемым кодом, С++ является одним из самых высокопроиз­водительных языков программирования. При этом C++ предо­ставляет обширный инструментарий для разработки масштабных, расширяемых проектов.
• Наличие полного контроля над исполняемым кодом также позво­ляет уменьшить флуктуации при проведении экспериментов.
1.1. Постановка задачи
Целью данной работы является реализация платформы для высокопро­изводительного поиска функциональных зависимостей. Для достиже­ния данной цели были поставлены следующие задачи:
1. Выполнить обзор алгоритмов поиска функциональных зависимо­стей, а также существующих решений.
2. Спроектировать и реализовать платформу для высокопроизводи­тельного поиска функциональных зависимостей.
3. Сравнить производительность реализованной платформы и суще­ствующего решения Metanome.
• выработать метрики и показать превосходство предложенной платформы;
• показать, что невозможно достичь аналогичного уровня про­изводительности с помощью настройки Metanome;
• исследовать причины повышенного уровня производительно­сти.
4. С помощью разработанной платформы исследовать возможность уменьшения трудоёмкости алгоритмов за счёт ограничения мак­симального размера левой части зависимости.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной работы были достигнуты следующие результаты:
1. Выполнен обзор алгоритмов и инструментов для поиска функци­ональных зависимостей.
2. Спроектирована и реализована платформа Desbordante, позволя­ющая использовать алгоритмы TANE, Pyro и предоставляющая возможности для добавления новых алгоритмов.
3. Проведено сравнение производительности Desbordante и существу­ющего решения Metanome.
• сформулированы метрики для сравнения и проведены экспе­рименты, показавшие превосходство Desbordante;
• проведены эксперименты, показавшие, что невозможно до­стичь аналогичного уровня производительности с помощью настройки Metanome;
• сформулированы и экспериментально проверены гипотезы, объясняющие причины повышенного уровня производитель­ности.
4. Исследована возможность уменьшения трудоёмкости алгоритмов поиска ФЗ через ограничение максимального размера левой ча­сти.
Кроме того, по теме данной работы была написана статья “Desbordante: a Framework for Exploring Limits of Dependency Discovery Algorithms” [9], представленная на конференции FRUCT’29 и принятая к публикации в сборнике трудов.


[1] Abedjan Ziawasch, Golab Lukasz, Naumann Felix. Profiling relational data: a survey // The VLDB Journal. — 2015. —Vol. 24. —P. 557-581.
[2] Armstrong W. W. Dependency Structures of Data Base Relationships // IFIP Congress. — 1974.
[3] BigDansing: A System for Big Data Cleansing / Zuhair Khayyat, Ihab Ilyas, Alekh Jindal et al. — 2015. — 06.
[4] CPU frequency scaling. — 2021. — Access mode: https://wiki. archlinux.org/index.php/CPU_frequency_scaling.
[5] Caruccio Loredana, Cirillo Stefano. Incremental Discovery of Imprecise Functional Dependencies // J. Data and Information Quality. — 2020. — Oct.—Vol. 12, no. 4. — Access mode: https://doi.org/10. 1145/3397462.
[6] Chu Xu, Ilyas Ihab F., Papotti Paolo. Discovering Denial Constraints // Proc. VLDB Endow. — 2013. — Aug. — Vol. 6, no. 13. — P. 1498-1509. — Access mode: https://doi.org/10.14778/2536258. 2536262.
[7] Data Auditor / Lukasz Golab, H. Karloff, Flip R. Korn, D. Srivastava // Proceedings of the VLDB Endowment. — 2010. — Vol. 3.—P. 1641 - 1644.
[8] Data profiling with metanome / Thorsten Papenbrock, Tanja Bergmann, Moritz Finke et al. // Proceedings of the VLDB Endowment. — 2015. — 08. — Vol. 8. — P. 1860-1863.
[9] Desbordante: a Framework for Exploring Limits of Dependency Discovery Algorithms (paper accepted) / Maxim Strutovskiy, Nikita Bobrov, Kirill Smirnov, George Chernishev // FRUCT’29: Proceedings of the 29th Conference of Open Innovations Association FRUCT.-fruct.org, 2021.
[10] DynFD: Functional Dependency Discovery in Dynamic Datasets / Philipp Schirmer, Thorsten Papenbrock, Sebastian Kruse et al. // Advances in Database Technology - 22nd International Conference on Extending Database Technology, EDBT 2019, Lisbon, Portugal, March 26-29, 2019 / Ed. by Melanie Herschel, Helena Galhardas, Berthold Reinwald et al. — OpenProceedings.org, 2019. — P. 253­264. — Access mode: https://doi.org/10.5441/002/edbt.2019.23.
[11] FDTool: a Python application to mine for functional dependencies and candidate keys in tabular data / Matt Buranosky, Elmar Stellnberger, Emily Pfaff et al. // F1000Research. — 2019. — 06. —Vol. 7. —P. 1667.
[12] Flach Peter A., Savnik Iztok. Database Dependency Discovery: A Machine Learning Approach // AI Commun. — 1999. — Aug. — Vol. 12, no. 3. —P. 139-160.
[13] Functional dependency discovery: An experimental evaluation of seven algorithms / Thorsten Papenbrock, J. Ehrlich, J. Marten et al. — 2015. —01. —P. 1082-1093.
[14] Georges Andy, Buytaert Dries, Eeckhout Lieven. Statistically Rigorous Java Performance Evaluation. -- Vol. 42. -- 2007. -- 10.
[15] Incremental Discovery of Functional Dependencies with a Bit-vector Algorithm / Loredana Caruccio, Stefano Cirillo, Vincenzo Deufemia, Giuseppe Polese // Proceedings of the 27th Italian Symposium on Advanced Database Systems, Castiglione della Pescaia (Grosseto), Italy, June 16-19, 2019 / Ed. by Massimo Mecella, Giuseppe Amato, Claudio Gennaro. — Vol. 2400 of CEUR Workshop Proceedings. — CEUR-WS.org, 2019. — Access mode: http://ceur-ws.org/Vol-2400/paper-21.pdf.
...


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ