×Закрыть

Диплом по базам данных

Доброго времени суток.

Хотел бы обратиться к читателям с довольно банальным и в тоже время важным(для меня) вопросом. Буквально через год мне предстоит сдача дипломной работы магистра. В качестве направления я выбрал базы данных, в частности Oracle.

Какие наброски тем и направления могли бы посоветовать, для получения хорошего опыта работы и знаний в данной области? С основами реляционных баз и архитектурой Oracle знаком.

Благодарю за внимание.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Если исследовательская работа предполагается, то я бы сказал, есть несколько больших интересных тем, за которые можно взяться. Оптимизация — это первая большая тема. Вторая — это уровни изоляции транзакций, аномалии, и разные подходы к конкурентному выполнению транзакций, т.е. отсюда идут две основных «ветки» — блокировочники и версионники и Оракл как некий гибрид версионника и блокировочника. Пожалуй, оптимизация — это более обширная тема, и тут надо хорошо все взвесить, так как за год можно не осилить.
Тема с имплементацией правильной стратегии внесения изменений не должна казаться слишком простой тоже. У каждой СУБД свои подходы и свои методы решения проблем. Проблемы, с которыми можно столкнуться, хорошо видны на примере этого древнего обсуждения «скрытой фичи» Оракла:
asktom.oracle.com/...​UESTION_ID:11504247549852

Заняться серьезными вещами: оптимизация запросов с большим количеством JOIN, сэмплинг таблицы для построения статистики с нахождением наиболее точной выборки с минимальными затратами дисковых диска, machine learning для оптимизации запросов на основе статистики уже выполненных, новые типы индексов и т.д. Не тратить время на Oracle (все равно он закрытый, то есть свои разработки/идеи к нему не применишь) и заняться open-source СУБД, возможно поучаствовать в Google Summer of Code.

Начать можно, например, отсюда db.cs.berkeley.edu/...​/fntdb07-architecture.pdf.

Исходя из своей практики, какие дополнительные книги или ресурсы можете посоветовать, для освоения этих тем? Буду очень признателен.

Про JOINS есть хорошая презентация www.postgresql.eu/...​nfeu-DanielGustafsson.pdf со ссылками на статьи, описыаающие алгоритмы.

Про сэмплинг и статистику: www.postgresql.org/...​F5920.1090109@synedra.com (тоже есть ссылки на статьи)

Про адаптивную оптимизацию запросов, есть даже выложенный на Github.код: github.com/tigvarts/aqo (там тоже есть ссылка на статью в конце)

Еще недавно попалось, интересно про правила в оптимизаторе запросов, которые работают вне зависимости от cost-based optimisation: blog.jooq.org/...​depend-on-the-cost-model

Я в основном занимаюсь PostgreSQL, поэтому ссылку могут выглядеть достаточно однобоким, но с другой стороны все эти проблемы появляются и в других СУБД, просто в не open-source мире нельзя посмотреть внутрь СУБД и понять как оно работает, а в Oracle даже нельзя выкладывать результаты тестов производительности без одобрения самого Oracle, поэтому академические статьи обычно берут другие СУБД как пример. PostgreSQL в этом отношении хороший кандидат, так как сама СУБД выросла из исследовательского проекта в Калифорнийском университете в Беркли, разрабатывается сообществом по всему миру и активно использует результаты исследований (пример: статья про SSI cs.nyu.edu/...​.2434-001/p729-cahill.pdf и статья про ее реализацию в PostgreSQL: drkp.net/papers/ssi-vldb12.pdf)

Для понимания, как устроена PostgreSQL изнутри, есть множество ресурсов, например:
www.interdb.jp/pg
momjian.us/...​sentations/internals.html
momjian.us/...​ntations/performance.html

Сильная группа разработчиков есть в Москве, у них есть коммерческая компания, которая занимается разработкой и поддержкой на местном рынке, и они сотрудничают с университетами насколько я знаю (собственно ссылка на адаптивный оптимизатор запросов — это их проект). Вот список ресурсов для разработчиков PostgreSQL obartunov.livejournal.com/195274.html

Есть еще фундаментальные книги, например Weikum & Vossen, www.amazon.com/...​Concurrency/dp/1558605088

Спасибо большое, буду разбираться)

Ты смеёшься? Человеку диплом нужно написать, а не диссертацию. Диплом это две-три курсовых, а ты предлагаешь челу серьёзное исследование

Необходимая мотивационная статья: sivers.org/kimo

Здесь на самом деле достаточно места и для дипломов, и для диссертаций. Для диплома можно померять производительность существующих реализаций и найти недочеты/предложить как их улучшить/написать прототип, или реализовать какую-нибудь новую фичу из из списка по предпоследней ссылке моего прошлого сообщения.

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

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

Как-бы дипломная работа подразумевает какое-то исследование...

Привет

Если ты готов много работать и у тебя все ок с английским, то я бы написал Майку Кэри ( www.linkedin.com/in/mike-carey-801584 ). Он и его команда сейчас работают над AsterixDB.

Движек еще сыроват, так что там много работы и возможностей что-то запилить, кроме того они участвовали в гугл саммер оф код в прошлом году, так что ты можешь одним ударом убить двух зайцев.

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

Сергей

Сейчас популярны визуальные языки. Сделай маппинг из визуального языка в оракл базу. Это стильно, модно, молодежно(преподы будут кипятком ссать, передний край науки. Ты что!) при этом не сложно. Сделаешь за три недели вместе с изучением. Как делать я подскажу, пиши в личку

Знаком с оракл? Не тешь себя иллюзиями

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

учет магистров по БД :)
Дипломная работа — это что-то типа: 10 таблиц, 20 процедур, 5 триггеров и диаграммы как это работает, с привязкой к какой то задаче: вымышленной или реальной.

для получения хорошего опыта работы и знаний в данной области

это все потом, если будете этим заниматься.

Еще, наколько помню, у магистра требование проводить исследование чего-то там.

Скорее 2 селекта, 3 инсерта:)

Ну смотря какой вуз. Диплом все-таки :)

Подписаться на комментарии