Вторая нормальная форма. Правила нормализации БД


Второе видео из серии о нормализации отношений баз данных. На примере понятно и доступно рассказывается о том, как спроектировать таблицу базы данных, чтобы она соответствовала условиям второй нормальной форме.

I НФ (первая нормальная форма): youtu.be/nsXV4PGMmrk
III НФ (третья нормальная форма): youtu.be/iJV8O4Vh7Vw
Первая, вторая, третья нормальные формы на практике: youtu.be/nW6k5ojUAAU

Нормальная форма Бойса-Кодда (BCNF): youtu.be/4Q1rXfVUaY8
Четвертая нормальная форма, правила нормализации отношений: youtu.be/xSPd6atE40o

Присоединяйтесь к нам!
Наша группа в контакте: vk.com/excellentprogrammer

Желаю вам успехов обучении!

Денис Колесников. Кровь, пот, микрофронтенды и монолит


Очевидно, что обновлять технологический стек в проекте с долгой историей — это как перебирать двигатель самолета на лету. Подобная ситуация и у нас в Авито. В докладе я расскажу как итеративно, поступательно мы меняем фронтенд в Авито, внедрили серверный рендеринг, менеджмент зависимостей микрофронтендов, а так же какие грабли встретили и какие выводы из всего этого сделали.

Этот доклад для разработчиков middle и senior уровня, работающих с большой централизованной кодовой базой (и желающих эту кодовую базу распилить).

Григорий Петров. Общение микросервисов: REST, JSON, GraphQL или gRPC?


Большинство backend программ начинает свое сетевое общение с REST. По мере развития разработчику приходится отвечать на мелкие, но важные вопросы: как передавать дату и время, большие объемы данных, обеспечивать авторизацию и так далее.

Сетевые коммуникации в современном бэкенде — это множество конкурирующих протоколов, стандартов и подходов. У нас есть «REST», который каждый разработчик реализует по-своему, есть пересекающиеся JSON Schema и Open API, есть JSON API, GraphQL, gRPC, из-за угла выглядывает RAML.

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

Алмаз Мустакимов. Мой путь к секционированию в PostgresQL или как избежать долгого ожидания данных


Секционирование в PostgreSQL.

Краткий обзор. Какие проблемы решает, а какие создает? Что выбрать, реализацию через наследование или декларативный подход? Рассмотрим возможности СУБД в этих направлениях, историю развития и тенденции. Разберем более подробно декларативный подход и реализацию секционирования в своем проекте.
Спойлер: 100 500 строк кода остается между документацией и внедрением в проекте.

Никита Соболев. Инструменты и практики хорошего код-ревью (с автоматикой!)


Чтобы делать хороший код-ревью мало просто смотреть на код и писать свое мнение о нем

Необходимо определиться с целью: зачем мы вообще ревьим код? Каждый вкладывает в процесс что-то свое: от обучения до дизайн-ревью
Нужно подготовить кучу всего: размер кода, размер задачи и ее постановку, описание проблемы и ее решения

Затем очистить код от примесей и ошибок, которые не должен проверять человек: от архитектурных до пропущенных пробелов

Проверить оформление и следование регламенту: конечно, автоматически

Правильно выбрать ревьюера: конечно, автоматически

Затем совершить сам акт общения и ревью: по делу, жестко, но без агрессии

Собрать обратную связь: ощущения и факты

И последний шаг: проревьюить ревью!

Тимофей Кулин. Анализ логов с помощью баз данных" на примере логов активности github.com


Краткий обзор принципов работы строковых и колоночных баз данных

Краткий обзор реализаций: postgres, postgres-ctore, clickhouse, memsql
Место, занимаемое логами

Сравнение скорости работы строчной и колоночных баз данных для задачи анализа логов.

Григорий Кошелев. Нельзя просто так взять и отправить все логи в Elastic


Рассмотрим особенности использования REST API Elastic:

Как повысить утилизацию ресурсов кластера Elastic, что и как влияет на производительность
Особенности хранения логов в Elastic

Детальный разбор высоконагруженного пайплайна с логами поможет лучше понять, как устроен кластер Elastic. А практические советы по индексации больших объёмов данных — не наступать на грабли.

Алексей Колесников. Нет сервера, нет проблем. Как мы делали DataScience на AWS Lambda


AWS Lambda от Amazon достаточно новая, но интересная и перспективная технология, впервые увидевшая свет чуть менее 5 лет назад. В своем докладе я расскажу как мы разрабатывали с нуля и докатили до прода в достаточно короткие сроки систему на базе AWS Lambda.

Основная задача системы — запуск ML моделей для генерации предсказаний по заданным гипотезам. Однако архитектура получилась достаточно гибкая и позволяет расширять набор моделей практически «на лету».
Я расскажу о некоторых особенностях работы с AWS Lambda, а также немного ближе познакомлю с облачными сервисами Amazon (SQS, SNS, EC2, S3, etc.)

Юрий Кербицков. Enterprise Object Storage


Эта история о том, как мы храним документы. О том, как мы прошли путь от кастомного файлового хранилища до объектного хранилища. О том, на какие грабли и вилы мы наступили и какое светлое будущее с объектным хранилищем мы видим и ждём.

А приправлена эта история аспектами эволюции нашей технологической архитектуры, включающей такие технологии как OpenShift, GlusterFS, NFS и другие.

Виктор Еремченко. Отказоустойчивый кластер PostgreSQL Patroni


Я расскажу, как мы комплексно подошли к проблеме отказоустойчивости PostgreSQL, какие варианты мы рассматривали и как остановились на Patroni.

Доклад содержит этапы тестирования этого решения, как мы обеспечили быстрое внедрение на production и с какими проблемами мы столкнулись и как их решали.