Практикум на ЭВМ (417)/2019

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
(Практические задания)
(13 промежуточных версий не показаны.)
Строка 108: Строка 108:
| rowspan=4| 4 сентября 2019 || rowspan=4 align="center"| 1 || Предисловие || - || rowspan=4| Проверить доступ к стенду
| rowspan=4| 4 сентября 2019 || rowspan=4 align="center"| 1 || Предисловие || - || rowspan=4| Проверить доступ к стенду
|-
|-
-
| Введение в бизнес-анализ данных. SQL и его роль в анализе данных || - ||
+
| Введение в бизнес-анализ данных. SQL и его роль в анализе данных || [https://docs.google.com/presentation/d/e/2PACX-1vRSSEl_S6vx73DD7CAvyRthDJ5RhhWAcMeQH42e36zERLSRx_Ztgzi8vq3mBnHtipyv8juOx5onGuoB/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
-
| Моделирование предметной области || - ||
+
| Моделирование предметной области || [https://docs.google.com/presentation/d/e/2PACX-1vTq6CPs1h_rJtFmuXv7dyOsUYZpOjLv6o0McKlhzSA_S1eCuETk_F_fXlm50e3IeEtxxpVtOVEc-tNP/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
| Информация о курсе || [https://docs.google.com/presentation/d/e/2PACX-1vRadrX2i3Qe2_zKD4nTNmAZWIbCRclKVDLQz4UYyW_h6X-coxx3gPHS2rfRXLZ3BpN9cC5rnMZRXsPu/pub?start=false&loop=false&delayms=3000 слайды]
| Информация о курсе || [https://docs.google.com/presentation/d/e/2PACX-1vRadrX2i3Qe2_zKD4nTNmAZWIbCRclKVDLQz4UYyW_h6X-coxx3gPHS2rfRXLZ3BpN9cC5rnMZRXsPu/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
-
| rowspan=1| 11 сентября 2019 || rowspan=1 align="center"| 2 || Основы || [https://docs.google.com/presentation/d/1qbGIv8xqDdoDb9dNSEyRaPev0-25Rdio1XfPjBZhWl8/edit#slide=id.p слайды] ||
+
| rowspan=1| 11 сентября 2019 || rowspan=1 align="center"| 2 || Основы SQL || [https://docs.google.com/presentation/d/e/2PACX-1vTajJnVFA2SRi4WmJGWmIwc6bP_FzyDv8qwbdcABRVwJM-11YFbQcR8dE_dQ60wvjDNK7qlHLdEsrja/pub?start=false&loop=false&delayms=3000 слайды] ||
|-
|-
-
| rowspan=1| 19 сентября 2016 || rowspan=1 align="center"|3 || Основы + подзапросы + GROUP BY || [https://docs.google.com/presentation/d/1lqLKVVpNyUsohM58HZfd6zV1jIpOqyDtzK1ZWUhYqiY/edit#slide=id.p слайды] || Задачи на последних слайдах
+
| rowspan=2| 18 сентября 2019 || rowspan=2 align="center"| 3 || Значения атрибутов и NULL || [https://docs.google.com/presentation/d/e/2PACX-1vQLyfkvO7v-_wL4KS62gjWRvEKIDcD4ry3gynI6_KeQhHArSJj2E29vamLH_6wca8CxPAIufUX11ivG/pub?start=false&loop=false&delayms=3000 слайды] || rowspan=2| [https://docs.google.com/presentation/d/e/2PACX-1vREydAsh-XzoT16zOpMLcVYd60Gk19jdUnqoWpTdRPiXzFbMzf_5Me1v1tpKs2RO5IjZMOxnTtlBo7M/pub?start=false&loop=false&delayms=3000 Задание 1]
|-
|-
-
| rowspan=1| 26 сентября 2016 || rowspan=1 align="center"|4 || Закрепление пройденного (разбор первого домашнего задания) || [https://docs.google.com/presentation/d/197GUn3SCyjIcP7uElZ_gEXl9eCP_BDjiwN2nN-O5plU/edit#slide=id.p слайды] ||
+
| Фильтрация (WHERE), сортировка, удаление дубликатов || [https://docs.google.com/presentation/d/e/2PACX-1vS_3LdAXks2AlVkLh1ORGF_B-nKfsAM55NfQje_fT9PwblGtLH-C5B6c8IwmzaXT8DH4-twfDa5AnR7/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
-
| rowspan=1| 3 октября 2016 || rowspan=1 align="center"|5 || JOIN || [https://docs.google.com/presentation/d/1xi1AJqqt-9oZnnCA19mu2lJ01-9P5HEsqrIv8rVMXYw/edit#slide=id.p слайды] || Задачи на последних слайдах
+
| rowspan=2| 18 сентября 2019 || rowspan=2 align="center"|4 || Агрегирование (без групп) || [https://docs.google.com/presentation/d/e/2PACX-1vTDvQIEBLt_Oxi90aID_4VgHuPiZ0BRksZJBysTfFKg4x97Quw1fhQ1eTO4QhiV-KC6KU4rPp0P8XM7/pub?start=false&loop=false&delayms=3000 слайды] || rowspan=2| [https://docs.google.com/presentation/d/e/2PACX-1vTipIHg0wEZR7bRMI_FpaWBvQwG_s7vgha6TLhU6WAbUYXDH-Ice199129o6Dv8ffNc4ocEVKGsY7tX/pub?start=false&loop=false&delayms=3000 Задание 2]
|-
|-
-
| rowspan=1| 10 октября 2016 || rowspan=1 align="center"|6 || Подзапросы || [https://docs.google.com/presentation/d/1OIXrs30hTWW4Tzg08R1sd31k1iJYwTUpUaBCFz3cQmI/edit#slide=id.g17340f7805_0_0 слайды] || Задачи на последних слайдах
+
| Подзапросы, группирование (GROUP BY) || [https://docs.google.com/presentation/d/e/2PACX-1vTXNyMRj9TDL0mxFAiO70B0c3WM1S82HHKuNl7NWOWQkVdSA4z_vHyVXLnOKr9Cz5U5Bouvyykd481X/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
-
| rowspan=1| 17 октября 2016 || rowspan=1 align="center"|7 || MPP || [https://docs.google.com/presentation/d/1u1GHQJ86Ek_XGGn02T42CetOp2aWCcOUTk7oqG6698g/edit#slide=id.g17340f7805_0_0 слайды] || Задачи на последних слайдах
+
| rowspan=1| 25 сентября 2019 || rowspan=1 align="center"|5 || Произведения и Соединения (JOIN) || [https://docs.google.com/presentation/d/e/2PACX-1vSo1uMlLktuQS27qlU24yiPHqjKEfd1W4E4vYNdiK6uzdyEQ3Ds8EiCTer3vc9xHdZ3bKRseVkp5bwD/pub?start=false&loop=false&delayms=3000 слайды] || [https://docs.google.com/presentation/d/e/2PACX-1vRCoUr_QIUPG4k52Yzh_3nk86jCAmTuFUjU7iJG4B_gwrcGQdtI0IAAu_BtxIwLlJrvSSGzt-8C1JM9/pub?start=false&loop=false&delayms=3000 Задание 3]
|-
|-
-
| rowspan=1| 24 октября 2016 || rowspan=1 align="center"|8 || Разбор задания и оконные функции || ||
+
| rowspan=2| 25 сентября 2019 || rowspan=2 align="center"|6 || Подзапросы || [https://docs.google.com/presentation/d/e/2PACX-1vTURIIvW_l1lIIXpQ89qojiLJuQd8qtdmb_9fSJlj0o4c9RtQASEcWn59dgdlDwGIfH3jqjFZnK48PW/pub?start=false&loop=false&delayms=3000 слайды] || rowspan=2| [https://docs.google.com/presentation/d/e/2PACX-1vR1bW9uvE6QSb5u5q7jzTC_TiVts654K0_lY6FB7VCgOiBRf45x-01LG7S23WWSjA_UwBX8P3RDodlN/pub?start=false&loop=false&delayms=3000 Задание 4]
|-
|-
-
| rowspan=1| 31 октября 2016 || rowspan=1 align="center"|9 || Оконные функции || [https://docs.google.com/presentation/d/1zbm7PYY_Q74f7ki2XmcN_nTY4ueQPAEQKw_0m1psySI/edit#slide=id.g17340f7805_0_0 слайды] || Задачи на последних слайдах
+
| Синтаксис операций || [https://docs.google.com/presentation/d/e/2PACX-1vR7-rUubkZv-Hw67ca_TqfFnGVOCaufdCBz48bkHWFKGai7rIDX1wofPosW3V7EHGeAXXlyDIAESKVF/pub?start=false&loop=false&delayms=3000 слайды]
|-
|-
-
| rowspan=1| 14 ноября 2016 || rowspan=1 align="center"|10 || Модели данных || [https://docs.google.com/presentation/d/1ngff01qA2o4W0WgjwbwuyhgQYtmxM0d25X56i87hYH0/edit#slide=id.g1b102ba956649a55_0 слайды] ||
+
| rowspan=1| ?? октября 2019 || rowspan=1 align="center"|7 || Advanced Pandas 1 || [https://docs.google.com слайды] || [http://www.example.com Задание 5]
 +
|-
 +
| rowspan=1| ?? октября 2019 || rowspan=1 align="center"|8 || Advanced Pandas 2 || [https://docs.google.com слайды] || [http://www.example.com Задание 6]
 +
|-
 +
| rowspan=1| 31 октября 2016 || rowspan=1 align="center"|9 || Оконные функции || [https://docs.google.com слайды] || Задачи на последних слайдах
 +
|-
 +
| rowspan=1| 14 ноября 2016 || rowspan=1 align="center"|10 || Модели данных || [https://docs.google.com слайды] ||
|-
|-
| rowspan=1| 28 ноября 2016 || rowspan=1 align="center"|11 || Проектная работа || ||
| rowspan=1| 28 ноября 2016 || rowspan=1 align="center"|11 || Проектная работа || ||
|-
|-
-
| rowspan=1| 5 декабря 2016 || rowspan=1 align="center"|12 || Проектная работа || [https://docs.google.com/presentation/d/1NZjGOZcK7XJizpmVSasL4ZYjkaCE_T9vw_FqMMXZaJE/edit#slide=id.p слайды] || Задание на слайдах
+
| rowspan=1| 5 декабря 2016 || rowspan=1 align="center"|12 || Проектная работа || [https://docs.google.com слайды] || Задание на слайдах
|-
|-
-
| rowspan=1| 12 декабря 2016 || rowspan=1 align="center"|13 || Проектная работа || [https://docs.google.com/presentation/d/1NZjGOZcK7XJizpmVSasL4ZYjkaCE_T9vw_FqMMXZaJE/edit#slide=id.p слайды] || Задание на слайдах
+
| rowspan=1| 12 декабря 2016 || rowspan=1 align="center"|13 || Проектная работа || [https://docs.google.com слайды] || Задание на слайдах
|-
|-
| rowspan=1| 19 декабря 2016 || rowspan=1 align="center"|14 || Проектная работа и подведение итогов || ||
| rowspan=1| 19 декабря 2016 || rowspan=1 align="center"|14 || Проектная работа и подведение итогов || ||
Строка 144: Строка 150:
== Практические задания ==
== Практические задания ==
Задания указаны в расписании занятий. Срок сдачи заданий (если не оговорено иное) — начало ближайшего занятия.
Задания указаны в расписании занятий. Срок сдачи заданий (если не оговорено иное) — начало ближайшего занятия.
 +
 +
Задания вроде решили закидывать [https://github.com/CrafterKolyan/mmp-practicum-sql-fall-2019 на Github]. В необходимую дату староста (Дмитрий Попов) засылает zip архив.<br /> В архиве находятся файлы в формате "<Surname>_<task number>_<subtask number>.sql", например "Petrov_2_1.sql". В файле находится один select запрос. Точка с запятой в конце запроса не принципиальна. Все ключевые слова написаны в верхнем регистре. Названия столбцов в нижнем регистре.
 +
 +
 +
Сроки заданий:
 +
 +
Задание 1 - 2 октября
 +
 +
Задание 2 - 9 октября
 +
 +
Задание 3 - 16 октября
 +
 +
Задание 4 - 23 октября
 +
 +
Задание 5 - 30 октября
 +
 +
Задание 6 - 6 ноября
== Система оценивания ==
== Система оценивания ==
Строка 151: Строка 174:
[[Категория:Учебные курсы]]
[[Категория:Учебные курсы]]
[[Категория:МГУ]]
[[Категория:МГУ]]
 +
[[Категория:ВМК]]
 +
[[Категория:ММП]]

Версия 07:44, 27 сентября 2019

Внимание! 18 и 25 сентября назначаются дополнительные занятия по средам на четвертой паре в аудитории 524.


  • Обязательный курс для студентов кафедры ММП 4 курса, читается в 7 семестре.
  • Зачёт с оценкой.
  • Преподаватели: Майсурадзе Арчил Ивериевич.
  • Осенью 2019 года занятия проходят по средам с 10:30 до 12:05 в аудитории 612.

Содержание

План занятий

Занятие 1

Знакомство. Предисловие.

Введение в бизнес-анализ данных. Хранение и анализ данных в бизнесе. SQL, его роль в информационно-аналитических системах. Основные виды моделей в аналитической деятельности. Модели в науке и ИТ.

Информация о курсе. Используемые технологии. Полезные ссылки.

Занятие 2

Основы SQL. Реляционное моделирование. Целостность базы данных. SQL как язык работы с данными: запросы, Data Definition Language, Data Manipulation Language, Data Query Language.

Модель «таблица данных» (data table) в реляционном моделировании. Интерпретация модели. Атрибуты. Первичный ключ. Учебная таблица CD_CUSTOMERS. Пример изменяющегося словаря.

Модель «результат запроса» (result set) в реляционном моделировании. Понятие о курсоре. Понятие о классе RecordSet в объектно-ориентированных системах доступа к данным.

Основные сущности при взаимодействии с СУБД: база данных, объекты БД, пользователь, сессия, права доступа к объектам и схемы. Смена текущей схемы. Квалифицированные имена.

Основы работы в клиенте MySQL Workbench: каталог схем и таблиц, просмотр для таблиц модели и данных, создание таблиц из интерфейса, уничтожение таблиц из интерфейса. Создание запроса данных из таблицы. Запуск запроса, остановка слишком долгого запроса.

Первое определение таблицы (CREATE TABLE), соответствие такого запроса модели «таблица данных». Создание новой таблицы по результату запроса данных (CREATE TABLE as SELECT). Добавление новых строк в существующую таблицу (INSERT).

Основные типы данных и базовые операции с ними. Числовые типы, разные размеры. Дата и время. Строки, разные виды. Неявное преобразование типов.

Базовый запрос SELECT. Запрос всех столбцов входящей таблицы (SELECT *). Запрос части столбцов входящей таблицы. Именование столбцов результата (AS). Ограничение размера ответа (LIMIT, TOP).

Занятие 3

Пользовательские типы как ограничения на базовые типы СУБД. Понятие о NULL.

Фильтрация (WHERE).

Функции над значениями одной записи. Условный оператор (CASE). Операции с датами. Операции со строками.

Упорядочивание (ORDER BY).

Отбрасывание дубликатов (DISTINCT).

Общий вид SELECT от одной таблицы (без агрегирования, без группирования).

Задание 1.

Занятие 4

Функции агрегации (без групп).

Задача о числе возвращаемых строк.

Подзапросы в IN (множество). Подзапросы в FROM (таблица). Подзапросы в WHERE (скаляр).

Группирование по категориям (GROUP BY). Фильтрация по категориям (HAVING). Общий вид SELECT от одной таблицы.

Домашнее задание 2.

Занятие 5

Закрепление пройденного материала. Разбор условий задач из задания 1. Разбор типичных ошибок при решении задач из задания 1.

Занятие 6

Начинаем изучать отношения между несколькими таблицами. Описание новых таблиц в учебной БД. Логическая модель данных в учебной БД. Декартово произведение множеств. Декартово произведение таблиц. Сравнение декартова произведения множеств и таблиц. Соединение двух таблиц: общий взгляд. Соединение таблиц в SQL. Соединение CROSS JOIN. Соединение с фильтром INNER JOIN. Соединение LEFT JOIN. Соединение RIGHT JOIN. Соединение FULL JOIN. Домашнее задание 3.

Занятие 7

Объединение множеств. Оператор UNION. Арифметическая сумма мультимножеств. Оператор UNION ALL. Разность множеств. Реализация разности множеств через IN. Реализация разности множеств через JOIN. Условия ANY и ALL. Связанные подзапросы. Условие EXISTS. Домашнее задание 4.

Занятие 8

Аналитическая ценность информации. Рост объёма ценной информации. Параллельные вычислительные системы, типы систем (ASMP, SMP, MPP). Массивно-параллельная архитектура. Ключ распределения таблицы. Redistribute Motion, Broadcast Motion. Отказоустойчивая архитектура. Различия синтаксиса PostgreSQL и MySQL. Особенности DDL для MPP системы (distributed by, partition by). Домашнее задание 5.

Занятие 9

Разбор задач и решений задания 3.

Занятие 10

Понятие оконной функции. Синтаксис выражений с оконными функциями. Сравнение с GROUP BY. Ранжирующие функции. Агрегатные функции. Аналитические функции. Домашнее задание 5.

Занятие 11

Разбор задач и решений задания 4.

Занятие 12

Разбор задач и решений задания 5.

Занятие 13

Виды моделей данных. Модель «сущность-связь» (ER-модель). Виды отношений (связей). Crow’s foot notation. Концептуальная модель данных. Пример для сети ресторанов. Логическая модель данных. Внешний ключ. Развязочная таблица (таблица-связь). Физическая модель данных. Подходы к проектированию логической модели. Модель нормализованная (нормальные формы). Модели Звезда и Снежинка. Slowly Changing Dimension. Модель Data Vault.

Занятие 14

Описание продаж в розничной сети. Проектирование моделей Нормализованная, Звезда, Data Vault. Постановка задания 7.

Занятие 15

Доклады групп. Защита задания 7.

Занятие 16

Загрузка данных. Интеграция данных. Архитектуры систем интеграции: консолидация, федерализация, распространение, сервисный подход. // Примечание. У одних авторов консолидация - это разновидность интеграции. У других авторов интеграция - это этап консолидации.. Data fusion («слияние данных», «соединение данных»), Duplicate Record Detection (Identity resolution, Record linkage, Data Deduplication) («сопоставление записей», «вероятностное соединение», «нестрогое соединение», «нестрогое соответствие»). Проблемы интеграции: несоответствие схем данных, несоответствие собственно данных. Update (обновление данных). Аудит. Staging Area (плацдарм). Постановка задания 8.

Занятие 17

Доклады групп. Защита задания 8. Подведение итогов.

Занятия

Дата № занятия Темы Материалы Задания
4 сентября 2019 1 Предисловие - Проверить доступ к стенду
Введение в бизнес-анализ данных. SQL и его роль в анализе данных слайды
Моделирование предметной области слайды
Информация о курсе слайды
11 сентября 2019 2 Основы SQL слайды
18 сентября 2019 3 Значения атрибутов и NULL слайды Задание 1
Фильтрация (WHERE), сортировка, удаление дубликатов слайды
18 сентября 2019 4 Агрегирование (без групп) слайды Задание 2
Подзапросы, группирование (GROUP BY) слайды
25 сентября 2019 5 Произведения и Соединения (JOIN) слайды Задание 3
25 сентября 2019 6 Подзапросы слайды Задание 4
Синтаксис операций слайды
 ?? октября 2019 7 Advanced Pandas 1 слайды Задание 5
 ?? октября 2019 8 Advanced Pandas 2 слайды Задание 6
31 октября 2016 9 Оконные функции слайды Задачи на последних слайдах
14 ноября 2016 10 Модели данных слайды
28 ноября 2016 11 Проектная работа
5 декабря 2016 12 Проектная работа слайды Задание на слайдах
12 декабря 2016 13 Проектная работа слайды Задание на слайдах
19 декабря 2016 14 Проектная работа и подведение итогов

Практические задания

Задания указаны в расписании занятий. Срок сдачи заданий (если не оговорено иное) — начало ближайшего занятия.

Задания вроде решили закидывать на Github. В необходимую дату староста (Дмитрий Попов) засылает zip архив.
В архиве находятся файлы в формате "<Surname>_<task number>_<subtask number>.sql", например "Petrov_2_1.sql". В файле находится один select запрос. Точка с запятой в конце запроса не принципиальна. Все ключевые слова написаны в верхнем регистре. Названия столбцов в нижнем регистре.


Сроки заданий:

Задание 1 - 2 октября

Задание 2 - 9 октября

Задание 3 - 16 октября

Задание 4 - 23 октября

Задание 5 - 30 октября

Задание 6 - 6 ноября

Система оценивания

Каждая задача должна быть сдана не позднее указанного срока, после истечения срока задачи не принимаются. Каждая задача сдаётся на проверку только один раз, хотя до этого студенты могут сколько угодно раз самостоятельно проверять своё решение. Каждая сданная задача оценивается как решенная верно или неверно. Задачи в сумме дают 75% баллов (задания 1-6), ещё 25% отводится на проектную работу в группах (задания 7 и 8). Финальная оценка зависит от количества набранных баллов.

Личные инструменты