company_banner

Лекции Технотрека. Проектирование СУБД (осень 2016)

    image


    Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка SQL с учетом особенностей объектно-реляционной базы данных PostgreSQL. Программа предусматривает комплексный подход к изучению стандартизованного языка SQL на платформе PostgreSQL, включая некоторые минимальные возможности администрирования пользователей, ролей, схем, базовых таблиц и других объектов базы данных. Мы рассмотрим основы работы с базой данных PostgreSQL и некоторые особенности SQL применительно к ней. Более подробно — под катом.


    Курс ведут Елена Шишкина (руководитель группы разработки платформы, Mail.Ru Group) и Данил Вагапов (программист группы внутренней информационной разработки, Mail.Ru Group).


    Список лекций:



    Лекция 1. Проектирование СУБД. Введение



    Это вводная лекция, на которой объясняются базовые понятия в сфере проектирования СУБД. Вы узнаете, что такое «реляционная модель данных», какие операции с данными выполняются. Рассматриваются основные задачи проектирования СУБД и его ключевые этапы: концептуальное, логическое и физическое проектирование.


    Лекция 2. Проектирование СУБД. SQL: начало



    В лекции рассматриваются ключевые понятия при работе с SQL: какие типы данных поддерживаются этим языком и чем они отличаются друг от друга, как создать SQL-таблицу, как её видоизменять. Также в ней рассказывается об основных операциях с данными в таблице: вставка, выбор, обновление, удаление.


    Лекция 3. Проектирование СУБД. SQL: выборка данных



    Рассматриваем создания подзапросов и агрегатные функции, в частности, UNION. Разберём операции объединения таблиц, а также объединение с подзапросом. Узнаем суть терминов «вид» и «материализованный вид», и в конце лекции будет рассмотрена такая вещь, как транзакции.


    Лекция 4. Проектирование СУБД. Оптимизация запросов и индексирование



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


    Вторая часть посвящена планированию запросов, сбору статистики запросов и их профилирования. Рассмотрим подсказки планировщику и форсирование использования индекса. Поговорим о физических аспектах оптимизации выборок, о мониторинге медленных запросов и процессе тестирования SQL-приложения.


    Лекция 5. Проектирование СУБД. Функции и триггеры



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


    Лекция 6. Проектирование СУБД. Конфигурирование и Безопасность



    Познакомимся с важными понятиями — конфигурирование и безопасность. Рассмотрим основы конфигурирования и выполнение настройки с учётом рабочей нагрузки. Познакомимся с репликацией и её настройкой, узнаем, как она устроена, получим представление о её топологии. Затем поговорим об администрировании и обслуживании репликации, а также о возможных проблемах с репликацией и их решении. Далее мы перейдём к вопросу обеспечения безопасности данных. Обсудим организацию резервного копирования и восстановления, поговорим о привилегиях и ролях, коснёмся безопасности на уровне ОС, и в конце узнаем, что такое SQL-инъекции и как с ними бороться.


    Лекция 7. Проектирование СУБД. Масштабирование данных БД



    Начнём мы лекцию с изучения оптимизации доступа к данным. Затем поговорим о материализованных представлениях, о масштабировании баз данных. Познакомимся с теоремой САР. Обсудим партиционирование таблиц, распределённые транзакции и двухфазный коммит, а в завершении лекции рассмотрим репликацию и кластеризацию.


    Лекция 8. Проектирование СУБД. Обзор NoSQL-решений



    Из этой лекции вы узнаете, что такое NoSQL-базы данных, какие существуют NoSQL-решения для работы с высоконагруженными системами. Затронем теоретические основы NoSQL, а затем достоинства и недостатки таких баз данных, как Tarantool и MongoDB.


    Лекция 9. Проектирование СУБД. Продвинутый SQL



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




    Плейлист всех лекций находится по ссылке. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим.


    Другие курсы Технотрека на Хабре:


    • +37
    • 25,6k
    • 8
    Mail.ru Group
    400,00
    Строим Интернет
    Поделиться публикацией

    Похожие публикации

    Комментарии 8

      +2
      Какие замечательные курсы пошли!!! Обязательно пройдём! Благодарю!

      Пару вопросов по этому и другим курсам:
      • А задания в видео есть или они отдельно?
      • Планируется ли это всё организовать и на Stepic.org?
        0
        Задания доступны только для студентов очных программ — этот курс читается в МФТИ.
        На степик пока не планируем добавлять — преподаватели очень загружены.
          0
          Очень жаль, без практики знания плохо усваиваются. А можно их как-то выложить отдельным файлом в будущем? Благодарю!
        +2
        Я думаю будет супер, если будет еще курс по PostgreSQL, и желательно чтоб углубленно это все рассматривать.
        Спасибо.
          +3
          Прочитал заголовок
          Проектирование СУБД
          Подумал, речь пойдет о проектировании СУБД таких как MySQL, SQLite.
          Предположил будет код на C/C++.
          Но кажется речь идет исключительно о "Проектирование БД", а значит вероятно только код на языке SQL.
          Или кто то (я) путает терминологию.
            0
            Конечно же проектирование БД, Olga_ol, это же не курс о том, как написать PostgreSQL. В видео БД написано, нужно заголовки править и в ютюбчике тоже.
            0

            Поправьте уже заголовки. Зашел почитать, как написать свою СУБД.

              0
              Первая лекция похоже не целиком — 58 минут.

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

              Самое читаемое