Тема: Платформа для высокопроизводительного поиска зависимостей в базах данных
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
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
📖 Введение
Если подобное исследование зависимостей недоступно, используется автоматическое обнаружение зависимостей — его целью является составление списка всех зависимостей, удерживающихся на заданной таблице. К сожалению, в данной постановке задача имеет сложность 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 и принятая к публикации в сборнике трудов.





