Зачем изучать SQL и базы данных?
-На наш взгляд, это странный вопрос для тех, кто пытается построить для себя научную картину мира, предпочитает заниматься интеллектуальным трудом и считает, что не чужд современным достижениям прогресса, науки и техники.
Информация переходит в цифровой вид, мощность компьютеров растет, объем винчестеров даже в домашних "персоналках" уже может превышать терабайты... Как ориентироваться в этом многообразии данных?
Одно из средств работы с данными это структурирование информации в реляционной базе данных и дальнейший анализ с помощью SQL-запросов. Чем бы Вы ни занимались научными исследованиями, повышением производительности труда на производстве, поиском статистических закономерностей на бирже или в торговле, программированием современного программного комплекса если Вы сторонник научного анализа, Вам никуда не деться от необходимости работать с базами данных.
Мы не ставим себе задачу заставить Вас сделать выбор именно в пользу T-SQL от MS SQL Server, отказавшись от, допустим, PL/SQL от Oracle.
Мы не ставим себе задачу выдрессировать Вас, как считать какие-то конкретные задачи, полезные именно нам условно говоря, писать запрос для определения дохода с учетом ставки дисконтирования. Это частности, которые любой, прошедший через наш курс, сможет, как мы надеемся, легко освоить самостоятельно.
Мы постараемся научить, как осознанно применять теорию реляционных баз данных и языка структурированных запросов к обработке больших массивов информации в любой области, показав, в том числе, основные ошибки интерпретации статистических данных и наиболее часто встречавшиеся в нашей практике незаметные ошибки в написании запросов, приводившие к неприятным последствиям. Для этого придется ознакомиться с азами теории и потренироваться на конкретных примерах, которые мы собирали из самых разных областей статистического анализа, торговли, производства, внешнеэкономической деятельности, обобщенных бизнес-задач контроля и планирования, управления проектами, математического анализа и аналитической геометрии...
А где применять полученные навыки и инструментом какого производителя после этого пользоваться (Microsoft, Oracle, IBM, ...) решите Вы сами.
P.S. Идти ли после этого курса в Никс на работу опять же, решите Вы сами. Очевидно, что даже если каждый десятый, успешно прослушавший курс, после этого успешно устроится к нам на работу и хорошо себя зарекомендует, то это уже будет большой удачей для Никса именно в плане сиюминутной, а не общечеловеческой отдачи от начинания "учить физтехов использовать SQL".
Занятия по курсу «Занятия по курсу «Парадигмы бизнес-программирования: Базы данных и SQL» будут проходить в дистанционном формате каждый вторник с 20:05 до 21:25. Первое занятие по курсу состоится во вторник 11.02.25 в 20:05. Ссылка на конференцию
Идентификатор конференции: 961 4992 8485
Код доступа: 1111
Ссылки на чаты для контрольной работы:
Задать вопрос можно по почте nixlab@nix.ru
Программа курса “Парадигмы бизнес программирования: Базы данных и SQL”
1. Введение в реляционные базы данных. Математические основы БД. Основы проектирования баз данных.
- Актуальность изучения SQL и баз данных.
- Сущности и связи. Создание ER-диаграммы («сущность – связь») на примере устройства реальной торговой системы.
- Понятия первичного и потенциального ключей. Примеры.
- Реляционная модель данных. Понятие домена, атрибута, кортежа, отношения. Свойства отношений.
- Понятие реляционной базы данных, схемы данных. Создание схемы данных на примере сущностей торговой системы. Типы связей, примеры различных типов связей.
- Обеспечение целостности данных. Понятие внешних ключей.
- Понятие индекса.
- Типы данных в MS SQL Server.
2. Нормализация.
- Определение нормализации.
- Аномалии в ненормализованных базах данных: добавления, удаления, обновления.
- Нормальные формы: 1НФ, 2НФ, 3НФ. Процесс нормализации на примере базы данных документооборота торговой системы. Декомпозиция без потерь.
- Денормализация данных: OLAP кубы.
3. Синтаксис языка SQL.
- Понятие запроса. Инструкция SELECT для одной таблицы. Сортировка ORDER BY и фильтрация данных. Операторы и предикаты в WHERE: LIKE, IN, BETWEEN. Приоритет операций. Предикаты в предложении SELECT: DISTINCT, TOP. Параметрические запросы.
- Статистическая обработка информации в SQL: запросы с группировкой: GROUP BY. Агрегатные функции: MIN, MAX, COUNT, SUM, AVG и прочие. Фильтрация по групповым значениям: HAVING.
- Типы соединений таблиц: INNER, LEFT, RIGHT, FULL JOIN. Псевдонимы. Объединение таблиц UNION. Прочие операции над множествами: EXCEPT, INTERSECT.
- Трехзначная логика. Работа с NULL значениями. Функции CASE, ISNULL, COALESCE. Предикат IS NULL. Особенности статистической обработки информации в случае наличия NULL значений.
- Подзапросы. Правильная работа с подзапросами. Предикат EXISTS.
- Операторы определения данных (DDL). Запросы на создание и изменение структуры таблиц: CREATE, ALTER. Создание и использование временных таблиц.
- Операторы манипулирования данными (DML). Инструкции: INSERT, DELETE, UPDATE, TRUNCATE.
- Создание и использование функций и процедур.
- Работа со строками и датами. Преобразование типов данных. Полезные функции: CAST, CONVERT, LEN, SUBSTRING, PATINDEX, CHARINDEX, DATEPART, DATEDIFF, DATEADD.
- Использование циклов WHILE. Блоки IF ELSE END.
- Анализ плана выполнения запроса.
4. Дополнительные возможности SQL. Применение БД к задачам обработки, хранения и представления данных.
- Применение SQL для решения задач по аналитической геометрии, математическому анализу и квантовой механике: хранение и работа с полиномами, матрицами, векторами состояний.
- Использование SQL для подзадач машинного обучения, например, для получения сингулярного разложения матрицы (SVD).
- Понятия иерархической структуры данных. Разработка структуры базы данных для хранения иерархии. Работа с деревьями: поиск корней, листьев, заданных уровней деревьев.
- Построение полного графа. Использование рекурсивных CTE.
- Управление проектами при помощи БД. Поиск критического пути при помощи SQL.
- Использование SQL для решения задач поиска объединения множеств: вычисление длительности эффективной работы сотрудника в случае пересекающихся по времени заданий. Применение курсоров.
- Создание доменной структуры хранения данных. Организация хранения логов. Получение информации на любой момент времени при помощи запросов.
- Задачи на получение интегральной статистики: ранжирование данных, получение накопительной статистики. Использование RANKING FUNCTION. Создание перекрестных (сводных) таблиц. Использование информационной энтропии в аналитических задачах.
--
Материалы занятий и домашние задания
|