Фестиваль РИТ++ 2017 завершён. Ждем вас на РИТ++ следующего года!

Database First! О распространённых ошибках использования РСУБДАнтипаттерны, ошибки проектирования

Доклад принят в программу конференции
Николай Самохвалов
Postila

ФУПМ МФТИ, ИСП РАН, специализация «Базы данных»

Более 15 лет работы с различными СУБД, более 10 — с PostgreSQL.

Соснователь Postila.ru, RuPostgres.org (российское PostgreSQL-сообщество, вторая крупнейшая в мире митап-группа о Postgres), MirTesen.ru, MoiKrug.ru.

Twitter: @postgresmen (много всего о Postgres, БД и около).

Тезисы

Любой Full Stack Developer сегодня обязан иметь в своём арсенале опыт и умение работы хотя бы с одной популярной РСУБД. Но без понимания основ — того, какие задачи решают СУБД, как происходит работа с данными, какие есть базовые возможности для этой работы, — такие умения превращаются в воздушный замок, быстро разрушающийся при росте проекта.



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

Мы обсудим несколько фундаментальных ситуаций использования РСУБД (каждая из которых неоднократно встречалась автору), попутно разбирая возможные ошибки:
- элементарная модификация данных;
- работа с датой, временем и временными зонами;

- проверка ограничений целостности;
- очередь заданий;
- пакетная работа с данными (например, удаление пачки записей в таблице);
- полнотекстовый поиск;
- относительно новые задачи (создание API, machine learning).

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

Ну и, наконец, представим чеклист знаний (с перечнем полезных ссылок!), которые, по мнению автора, необходимо иметь, чтобы чувствовать себя увереннее при работе с РСУБД.

Бэкенд / другое
,
PostgreSQL
,
Базы данных / другое
,
Организация доступа к базам данных, ORM, собственные драйвера
,
Архитектуры / другое
,
Администрирование баз данных

Другие доклады секции Антипаттерны, ошибки проектирования