Conversation
TonitaN
left a comment
There was a problem hiding this comment.
Очень увлекательное описание мечты, но пока ещё далёкое от систематического изложения плана её реализации)
| \noindent\hspace{13.5ex}\normalsize\hspace{170pt}\hspace{2ex}\scriptsize{(Подпись, дата)}\normalsize\hspace{30pt}\hspace{6ex}\scriptsize{(И.О. Фамилия)}\normalsize | ||
| \bigskip | ||
|
|
||
| \noindent Нормоконтролер \hfill \underline{\hspace{4cm}}\quad |
There was a problem hiding this comment.
У меня титульник в отдельном шаблоне, убрал отсюда
| \anonsection{ВВЕДЕНИЕ} | ||
|
|
||
| В эпоху стремительного роста объемов данных системы управления базами данных | ||
| (СУБД) являются ключевой частью информационных систем. По данным аналитических |
There was a problem hiding this comment.
Слово ключевой очень любят роботы, лучше бы не злоупотреблять. И из этого параграфа оптимально оставить только первое предложение (ключевой -> важный, как написал бы нормальный студент).
There was a problem hiding this comment.
А я в последней курсовой так и писал примерно....
iu9-sql-compiler/report/report.tex
Lines 621 to 631 in 470d60e
Поправил
There was a problem hiding this comment.
Курсовую читает только руководитель, а на ВКР (есть надежда, что куски из НИР пойдут туда) будет смотреть комиссия, поэтому лучше убрать триггеры и быть проще)
| допускающим параллельность исполнения. | ||
|
|
||
| Целью данной работы является разработка и реализация оптимизатора подмножества | ||
| SQL-запросов на основе архитектуры Cascades, а также создание фреймворка для его |
| \begin{enumerate} | ||
| \item \emph{Синтаксический анализ} --- запроса проходит лексический и синтаксический разбор. Результатом данного этапа | ||
| является синтаксическое дерево, узлы которого соответствуют конструкциям | ||
| языка SQL: операторам \texttt{SELECT}, \texttt{FROM}, \texttt{WHERE}, |
There was a problem hiding this comment.
Это лучше в макросы вынести и использовать здесь уже команды
|
|
||
| Реляционная алгебра представляет собой формальный язык для описания операций над | ||
| отношениями реляционной базы данных. В отличие от декларативного SQL, | ||
| реляционная алгебра процедурной, так как она определяет конкретную |
|
|
||
| Группа в Memo представляет собой множество выражений, которые эквивалентны с | ||
| точки зрения логического результата. Например, для отношений \(A\), \(B\) и | ||
| \(C\) выражения |
There was a problem hiding this comment.
не нужно здесь выключную формулу, можно и внутритекстовую
| листинга~\ref{lst:query}. Например, группа \(G_5\) представляет результат | ||
| соединения трех отношений, в ней находятся два логически эквивалентных выражения | ||
| с разной ассоциацией соединений и четыре физические реализации для них. Входными | ||
| данными для операторов являются группы группы, поэтому общие подвыражения не |
| \label{fig:cascades-tasks} | ||
| \end{figure} | ||
|
|
||
| \section{Правила трансформации и реализации} |
There was a problem hiding this comment.
В этом разделе есть одна важная проблема: правила имеют другой вид, чем описывается в самой первой формуле (условие - уже после левой и правой части, например, также форма стрелки другая). Предлагаю решить проблему кардинально - написать макрос с тремя аргументами для единообразной записи правил. А затем свести их в общую таблицу, к которой уже добавить текстовые комментарии
| сортировкой может конкурировать с планом на основе соединения слиянием, которое | ||
| сохраняет порядок результата. | ||
|
|
||
| \section{Метод ветвей и границ} |
There was a problem hiding this comment.
Тут, конечно, маловато конкретики - хотелось бы видеть, какую стоимостную модель вы выбрали для своей системы
There was a problem hiding this comment.
Добавил формулы для конкретных операторов
|
|
||
| % {\color{red} TODO: табличка формул для разных операторов} | ||
|
|
||
| \section{Дифференциальный анализ физических планов} |
There was a problem hiding this comment.
Тут крайне мало конкретики: пока что раздел выглядит как "за всё хорошее и против всего плохого". Непонятно, какие конкретно системы считаются эталонами, как конкретно вы собираетесь конвертировать извлеченный физический план в свою модель, и не получится ли после этого преобразования совсем другая производительность, а также почему эквивалентность планов достаточно проверить на единственном наборе таблиц.
|
круто |
сложно UPD: 1 пофиксил, остальное видимо можно не фиксить |
TonitaN
left a comment
There was a problem hiding this comment.
Необходимо выполнить балансировку частей ВКР - расширить конструкторскую часть и уменьшить исследовательскую.
Не нашла в конструкторской части ничего про дифференциальные планы. В аналитической части упоминается фаззер, который ищет к ним приближение, но почему-то ничего - про результаты его работы (какие правила так удалось улучшить, насколько часто удаётся получить такой же план, среднее расстояние до промышленного плана).
| итеративного улучшения путем сравнения с промышленными реализациями. | ||
|
|
||
| Для достижения поставленной цели прежде всего требуется изучить архитектуру | ||
| оптимиазторов Cascades и на ее основе проработать собственную. |
| Правила трансформации должны порождать логически эквивалентные планы, а правила | ||
| реализации сопоставлять логическим операторам допустимые физические операторы. | ||
|
|
||
| Для оптимизации алгоритма поиска нужно реазивовать метод ветвей и границ. Этот |
|
|
||
| \setlength{\tabcolsep}{3pt} | ||
| \newpage | ||
| \thispagestyle{empty} |
There was a problem hiding this comment.
Если это отключить, то на номер страницы ругаться не будет. И нужно будет поправить точку отсчёта (добавить страницы под калпланы etc)
There was a problem hiding this comment.
добавить страницы под калпланы etc
а нам вот такое писали:
- Титульный лист (нумеруется, но цифорка не ставится)
- Задание на ВКР (не нумеруется)
- Календарный план(не нумеруется)
- Аннотация (не нумеруется)
- Содержание (нумеруется)
- Введение (нумеруется)
....
То есть у Содержания (оно же Оглавление) номер страницы 2. Ничего из 1-5) в содержание не идёт. Первый пункт содержания - введение.
| Процесс исполнения SQL-запроса в реляционной СУБД проходит несколько | ||
| последовательных этапов. | ||
|
|
||
| \begin{enumerate} |
There was a problem hiding this comment.
Тут enumerate лишний, лучше абзацами, заодно могут починиться поля
| \] | ||
|
|
||
| Среди основных операторов реляционной алгебры выделяют | ||
| следующие\cite{silberschatz2020database}. |
There was a problem hiding this comment.
Здесь и везде - цитирование отделяем неразрывным пробелом ~
| для пары \((G_i, P_i)\) на текущий момент работы алгоритма. Поскольку | ||
| оптимизация группы является рекурсивным процессом, к моменту отсечения для | ||
| \((G_i, P_i)\) уже могут быть найдены некоторые планы, и их минимальная | ||
| стоимость служит нижней границей. Если же группа \(G_i\) под свойством \(P_i\) |
There was a problem hiding this comment.
Здесь важно подчеркнуть, что поскольку C* вычислена в том же пайплайне и использовала точно не лучшие оценки стоимости дочерних групп, такая оценка корректна. Потому что если
| C_{local}(e) + \sum_{i=1}^{k} LB(G_i, P_i) \geq C^*, | ||
| \] | ||
|
|
||
| то выражение \(e\) может быть отсечено. Здесь \(LB\) обозначает нижнюю границу |
There was a problem hiding this comment.
после выключных формул лучше бы вставлять \noindent, чтобы подавить красную строку
|
|
||
| \subsubsection{Метод ветвей и границ} | ||
|
|
||
| % актуализировать: формулы, алгос и у меня другая селективность... |
There was a problem hiding this comment.
Здесь можно оставить общее описание и даже сократить несколько, а актуализацию - в конструкторскую часть.
| % \end{minted} | ||
| % \end{listing} | ||
|
|
||
| Для поиска ошибок исполнения реализован дифференциальный фаззер. Он генерирует |
There was a problem hiding this comment.
Нужно воткнуть схему общего пайплайна вашего проекта, в виде диаграммы, затем чтобы иметь возможность вставить её в слайды на защите
| повторений запросов SSB. Ускорение рассчитывается как отношение времени | ||
| выполнения наивного плана ко времени выполнения оптимизированного плана. | ||
|
|
||
| Видно, что на стандартном наборе запросов оптимизатор дает на $20-50\%$ раз, а |
There was a problem hiding this comment.
*ускорение на .. .
Важно! Не прокомментированы последние кейсы, где ускорения нет. Это обязательно нужно сделать. Также нужно прокомментировать явно рис. 5-6 и дать на них ссылки в тексте, иначе рисунок 6 вообще оказывается в вакууме
There was a problem hiding this comment.
Я в итоге исправил код, теперь ускорение есть везде
|
статистику по правилам добавил |
No description provided.