SQL от начального до продвинутого уровня для анализа данных
Подробнее о курсе
Краткое описание курса
Задача курса погрузить слушателей в архитектуру базы данных и научить писать запросы к реляционным данным
Целевая аудитория курса
Бизнес аналитики, не знакомые с базами данных, но желающие получить эти знания для успешной работы
Получаемые знания и навыки
По окончании курса слушатели смогут создавать SQL запросы в базу данных Postgresql, получат основные понятия о структуре и реляционной модели базы данных
Краткое содержание курса
Модуль 1 — Основы реляционной базы данных
- Вычисления — Файл — сервер, Клиент — Сервер, Трехзвенная Архитектура
- Управление бизнес-аналитикой — типичный пример трехзвенной архитектуры
- Технология Клиент -Сервер и доступ к данным
- Что такое сервер базы данных и база данных. Тонкие и толстые клиенты.
- Нормализованная форма реляционных отношений
- Понимание таблиц, полей, связей между реляционными отношениями. Построение ER-диаграмм (обзор инструментов)
- Язык описания структур и отношений в базе данных. Краткое введение в язык UML.
- Ограничения целостности в базе данных. Объекты базы данных и их иерархия. Словарь базы данных. Метаданные
- Обзор инструментов для работы с различными базами данных — (DBEaver, DBNavigator, OpenIDE, язык программирования Python (pandas), Java). Выбор инструмента для конкретной задачи
Модуль 2 — Язык структурированных запросов — SQL. Группы команд (DDL, DML, DCL, SELECT)
- Базовый синтаксис команды SELECT. Ключевые фразы
- Обзор основных типов данных в базе данных
- Особенности работы с текстовыми типами данных (огромные данные), типы и подтипы DATE
- Использование однострочных и многострочных функций в команде SELECT
- Агрегатные функции. Коррелированные запросы
- Выделение представления фразой WITH, многоуровневые виртуальные представления
- Рекурсивные запросы. Построение древовидных запросов. Сортировка в древовидных запросах
Модуль 3 — Аналитические запросы
- Аналитические функции в команде SELECT. Цели введения аналитических функций.
- Лаконичность и перенос вычислений на сервер. Классификация видов аналитических функций в сравнении с обычными функциями агрегирования
- Разбиение данных на группы для вычисления
- Упорядочение в границах отдельной группы
- Выполнение вычислений для строк в группе по плавающему окну (интервалу)
- Формирование интервалов агрегирования по строкам и по значениям
- Поиск первых и последних значений в интервалах агрегирования, особенности работы с интервалами времени
- Нетрадиционные преобразования SQL запросов — списки агрегатов, вложенные курсоры, группировки по кубам
Модуль 4 — DML команды в SQL
- Транзакции и уровни изоляции транзакций. Стандарты и их нарушения.
- Введение в ACID
- Блокировки на уровне строк, таблиц, словаря метаданных
- Взаимные блокировки
- Особенности построения долгоиграющих запросов и уровни изоляции транзакций.
- Использование временных транзакционных и сессионных таблиц для генерации отчетов
Модуль 5 — Оптимизация запросов
- Улучшение производительности выполнения запросов — основные понятия
- Оценка стоимости запроса — два уровня — (до выполнения, после выполнения)
- Кто и как строит план запроса
- Искусство читать планы выполнения. Введение в оптимизацию
- Зачем нужна статистика в базе данных. Кто ее собирает. Стоимостные параметры
- Построение и чтение плана выполнения запроса
- Влияние параметров конфигурации сессии пользователя на стоимостные показатели и план выполнения запроса
- Три алгоритма связывания таблиц и планирование запроса
- Поиск проблемных мест при выполнении запроса и их оптимизация
- Использование индексов и два алгоритма доступа к данным по индексам
- Партиционирование данных для улучшения производительности выполнения запросов
- Введение в логические и физические репликации для улучшения запросов — на примерах
Модуль 6 — Использование расширений языка SQL
- Использование расширений языка SQL (plsql, plpgsql) для автоматизации генерации отчетов
- Быстрая выгрузка результатов запросов во внешние приложения (PDF и прочее) с использованием механизмов среды разработки запросов DBEaver или подобных
- Использование аналитических возможностей языка Python для построения анализа данных, на примерах библиотек NumPy, Pandas
- Генерация отчетов в Excel и PDF форматах, на примерах аналитики Python