- PVSM.RU - https://www.pvsm.ru -
Продолжаем публикацию наших образовательных материалов. Этот курс посвящен изучению основ языка SQL с учетом особенностей объектно-реляционной базы данных PostgreSQL. Программа предусматривает комплексный подход к изучению стандартизованного языка SQL на платформе PostgreSQL, включая некоторые минимальные возможности администрирования пользователей, ролей, схем, базовых таблиц и других объектов базы данных. Мы рассмотрим основы работы с базой данных PostgreSQL и некоторые особенности SQL применительно к ней. Более подробно — под катом.
Курс ведут Елена Шишкина (руководитель группы разработки платформы, Mail.Ru Group) и Данил Вагапов (программист группы внутренней информационной разработки, Mail.Ru Group).
Список лекций:
Это вводная лекция, на которой объясняются базовые понятия в сфере проектирования СУБД. Вы узнаете, что такое «реляционная модель данных», какие операции с данными выполняются. Рассматриваются основные задачи проектирования СУБД и его ключевые этапы: концептуальное, логическое и физическое проектирование.
В лекции рассматриваются ключевые понятия при работе с SQL: какие типы данных поддерживаются этим языком и чем они отличаются друг от друга, как создать SQL-таблицу, как её видоизменять. Также в ней рассказывается об основных операциях с данными в таблице: вставка, выбор, обновление, удаление.
Рассматриваем создания подзапросов и агрегатные функции, в частности, UNION. Разберём операции объединения таблиц, а также объединение с подзапросом. Узнаем суть терминов «вид» и «материализованный вид», и в конце лекции будет рассмотрена такая вещь, как транзакции.
В основе этого занятия две темы. В первой части рассмотрим основы индексирования, выбор оптимальных типов данных, стратегии индексирования, нормализацию и денормализацию. Познакомимся с понятиями функциональных и частичных индексов, а также с индексацией JSON. В конце первой части мы коснёмся рекомендуемых регламентных работ и проблем приложения и кэширования.
Вторая часть посвящена планированию запросов, сбору статистики запросов и их профилирования. Рассмотрим подсказки планировщику и форсирование использования индекса. Поговорим о физических аспектах оптимизации выборок, о мониторинге медленных запросов и процессе тестирования SQL-приложения.
Эта лекция посвящена хранимым процедурам и функциям, как и где они применяются. Рассмотрим простые функции на SQL, а также неизменяемые, стабильные и волатильные функции. Познакомимся с языком pl/pgSQL. Далее рассмотрим аргументы и возвращаемые значения, написание циклов и их условий. Поймем, как работать с ошибками. Получим общее представление о триггерах и их применении, узнаем, какие существуют виды триггеров.
Познакомимся с важными понятиями — конфигурирование и безопасность. Рассмотрим основы конфигурирования и выполнение настройки с учётом рабочей нагрузки. Познакомимся с репликацией и её настройкой, узнаем, как она устроена, получим представление о её топологии. Затем поговорим об администрировании и обслуживании репликации, а также о возможных проблемах с репликацией и их решении. Далее мы перейдём к вопросу обеспечения безопасности данных. Обсудим организацию резервного копирования и восстановления, поговорим о привилегиях и ролях, коснёмся безопасности на уровне ОС, и в конце узнаем, что такое SQL-инъекции и как с ними бороться.
Начнём мы лекцию с изучения оптимизации доступа к данным. Затем поговорим о материализованных представлениях, о масштабировании баз данных. Познакомимся с теоремой САР. Обсудим партиционирование таблиц, распределённые транзакции и двухфазный коммит, а в завершении лекции рассмотрим репликацию и кластеризацию.
Из этой лекции вы узнаете, что такое NoSQL-базы данных, какие существуют NoSQL-решения для работы с высоконагруженными системами. Затронем теоретические основы NoSQL, а затем достоинства и недостатки таких баз данных, как Tarantool и MongoDB.
В завершение курса познакомимся с хранением деревьев в РСУБД. Рассмотрим список смежности, вложенные наборы, материализованный путь, таблицу связей и смешанные структуры. Под занавес рассмотрим расширение PostgreSQL Itree. Далее мы перейдём к оптимизации запросов с помощью with clause. Ознакомимся с рекурсивными запросами и динамической сборкой материализованного пути в рекурсивном запросе. Затем оконные функции, агрегатные функции в окнах, и в конце затронем аналитику.
Плейлист всех лекций находится по ссылке [10]. Напомним, что актуальные лекции и мастер-классы о программировании от наших IT-специалистов в проектах Технопарк, Техносфера и Технотрек по-прежнему публикуются на канале Технострим [11].
Другие курсы Технотрека на Хабре:
Автор: Mail.Ru Group
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/postgresql/252503
Ссылки в тексте:
[1] Лекция 1. Введение: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-1-proektirovanie-subd-vvedenie
[2] Лекция 2. SQL: начало: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-2-proektirovanie-subd-sql-nachalo
[3] Лекция 3. SQL: выборка данных: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-3-proektirovanie-subd-sql-vyborka-dannyh
[4] Лекция 4. Оптимизация запросов и индексирование: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-4-proektirovanie-subd-optimizaciya-zaprosov-i-indeksirovanie
[5] Лекция 5. Функции и триггеры: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-5-proektirovanie-subd-funkcii-i-triggery
[6] Лекция 6. Конфигурирование и Безопасность: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-6-proektirovanie-subd-konfigurirovanie-i-bezopasnost
[7] Лекция 7. Масштабирование данных БД: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-7-proektirovanie-subd-masshtabirovanie-dannyh-bd
[8] Лекция 8. Обзор NoSQL-решений: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-8-proektirovanie-subd-obzor-nosql-resheniy
[9] Лекция 9. Продвинутый SQL: https://habrahabr.ru/company/mailru/blog/326126/#lekciya-9-proektirovanie-subd-prodvinutyy-sql
[10] по ссылке: https://www.youtube.com/playlist?list=PLrCZzMib1e9pq_sbw7ZEcEU3Yyz1AvE--
[11] Технострим: https://www.youtube.com/user/tpmgtu/videos
[12] Основы веб-разработки (весна 2016): https://habrahabr.ru/company/mailru/blog/315080/
[13] Разработка на Java (весна 2016): https://habrahabr.ru/company/mailru/blog/313880/
[14] Источник: https://habrahabr.ru/post/326126/
Нажмите здесь для печати.