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

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

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

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

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

👍НравитсяПонравилось0
В избранноеВ избранном0
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

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

Вот еще хороший очень видео-курс
www.youtube.com/...​1e9r6c-j8aW1JuETSyCBp9iAg

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

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

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

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

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

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

Привет

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

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

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

Сергей

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

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

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

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

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

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

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

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

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