up
  • Russian

    course language

  • 16 weeks

    course duration

  • from 5 to 6 hours per week

    needed to educate

  • 3 credit points

    for credit at your university

В этом курсе программист может узнать о деталях реализации внутреннего устройства систем управления базами данных. Курс раскрывает основы профессии разработчика ядра систем управления базами данных, может быть также полезен разработчикам операционных систем, системным архитекторам и широкому кругу инженеров-программистов, заинтересованных в освоении внутреннего устройства РСУБД.

About

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

PostgreSQL является наиболее развитой открытой свободной реляционной системой управления базами данных (РСУБД). Она разрабатывается заинтересованными инженерами со всего мира, широко используется коммерческими компаниями (например, Yandex.Почта) и государственными структурами (ФСБ, ФСО, МО). В дисциплине рассматривается применение индексов PostgreSQL, детали их реализации и возможности развития.

Format

Теоретическая часть представлена видеолекциями с тестами для самоконтроля уровня усвоения содержания видеолекции. Каждой теоретической части соответствует практическое занятие, в котором необходимо внести изменения в алгоритмы доступа к данным в исходном коде PostgreSQL и описать полученные эффекты. Для выполнения заданий необходим компьютер или виртуальная машина с ОС Ubuntu Linux 16 LTS.

Информационные ресурсы

  1. Большие данные. Принципы и практика построения масштабируемых систем обработки данных в реальном времени /       Натан Марц, Джеймс Уоррен // ISBN        978-5-8459-2075-1, 978-1-617-29034-3, -2016.
  2. Структуры данных и алгоритмы / Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман // ISBN 978-5-8459-1610-5, 0-201-00023-7 -2016.
  3. PostgreSQL 9.5 Vol1: The SQL Language (Volume 1) / PostgreSQL Development Group // ISBN-13: 978-9888406319 -2016.
  4. PostgreSQL 9.5 Vol4: Server Programming (Volume 4) / PostgreSQL Development Group // ISBN-13: 978-9888406340 -2016.
  5. PostgreSQL 9.5 Vol6: Internals (Volume 6)) / PostgreSQL Development Group // ISBN-13: 978-9888406364 -2016.

https://wiki.postgresql.org/wiki/Main_Page - wiki PostgreSQL

https://postgrespro.ru/docs/postgrespro/9.5 - документация Postgres Pro на русском языке

http://www.sai.msu.su/~megera/postgres/ - Ресурсы О.Бартунов и Ф.Сигаева

Requirements

Знание языков программирования SQL и ANSI C, системы контроля версий git

Course program

Раздел 1. Концепции архитектуры СУБД и общие алгоритмы
Тема 1. Введение в PostgreSQL. Основные идеи и организация исходного кода
Тема 2. Средства разработки запросов и ядра
Тема 3. Страничная организация памяти

Раздел 2. Распространённые алгоритмы и структуры данных
Тема 1. B-дерево. Концепция, код и анализ запросов
Тема 2. Write-ahead log. Концепция восстановления после сбоя
Тема 3. Обобщённый древовидный индекс (GiST)

Раздел 3. Специфические алгоритмы, характерные для PostgreSQL
Тема 1. Расширения PostgreSQL. сube и smlar
Тема 2. Полнотекстовый поиск. Инверсный индекс (GIN)
Тема 3. Цикл разработки PostgreSQL. Листы рассылки, коммитфесты

Education results

В результате освоения дисциплины студент должен:

Знать:

  • основные существующие методы доступа к данным и методы информационного поиска;
  • структуру и организацию исходного кода PostgreSQL;
  • цикла разработки сообществом PostgreSQL.

Уметь:

  • анализировать и исправлять дефекты исходного кода PostgreSQL;
  • реализовать идеи по совершенствованию методов доступа к данным в РСУБД;
  • представлять свои разработки сообществам открытых программных продуктов.

Владеть:

  • знаниями и навыками из предыдущих пунктов.

Formed competencies

 

Результатом обучения в рамках дисциплины является формирование у
студента следующих компетенций:

  • способность к самостоятельной модификации кода ядра PostgreSQL и его расширений;
  • способность к анализу проблем производительности РСУБД;
  • способность к участию в разработке сообществом окрытых программных продуктов.

Education directions

05.13.17 Теоретические основы информатики

05.13.01 Системный анализ

Отзывы о курсе

Бородин Андрей Михайлович

Кандидат технических наук
Position: доцент Уральского федерального университета