Data Engineering 24/25 (МОВС23) — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Контакты)
(Домашние задания)
Строка 42: Строка 42:
 
'''UPD2:''' начиная с 3 ДЗ снимаем до 1 балла за неаккуратное оформление кода (не следует общеизвестным sql style guides)
 
'''UPD2:''' начиная с 3 ДЗ снимаем до 1 балла за неаккуратное оформление кода (не следует общеизвестным sql style guides)
 
== Домашние задания ==
 
== Домашние задания ==
#
+
'''ДЗ 1 состоит из 2х частей:'''
#  
+
 
#  
+
'''Часть 1'''
 +
 
 +
Создайте структуру базы данных по выбранной вами тематике из списка ниже.
 +
 
 +
Предметные области (выберите одну):
 +
1. Продажа автомобилей.
 +
2. Приют для животных.
 +
3.  Железнодорожные перевозки.
 +
4.  Служба доставки.
 +
5.  Организация марафона.
 +
 
 +
Требования к базе данных:
 +
•  Должно быть не менее 4 сущностей (включая технические объекты).
 +
•  Должна быть хотя бы одна связь один-ко-многим.
 +
•  Должна быть хотя бы одна связь многие-ко-многим.
 +
•  Все отношения приведены к третьей нормальной форме (3НФ).
 +
 
 +
Требования к оформлению:
 +
•  ER-диаграмму необходимо составить на app.dbdesigner.net. На проверку нужно прислать ссылку на диаграмму.
 +
•  Также необходимо подготовить SQL-скрипт с DDL для создания таблиц (обратите внимание на ограничения) и заполнения примерами данных.
 +
 
 +
'''Часть 2'''
 +
 
 +
1.  Создайте таблицу ****_SALARY_HIST, где **** — ваш уникальный идентификатор.
 +
В таблице должна быть SCD2 версия таблицы de.histgroup с полями:
 +
•  PERSON
 +
•  CLASS
 +
•  SALARY
 +
•  EFFECTIVE_FROM
 +
•  EFFECTIVE_TO
 +
 
 +
2.  Используя таблицы ****_SALARY_HIST и de.salary_payments, напишите SQL-скрипт, выводящий таблицу платежей сотрудникам.
 +
Таблица должна содержать поля:
 +
•  PAYMENT_DT — дата выплаты
 +
•  PERSON
 +
•  PAYMENT
 +
•  MONTH_PAID — суммарно выплачено в месяце на дату последней выплаты
 +
•  MONTH_REST — осталось выплатить за месяц
 +
 
 +
Результат выполнения сохраните в таблицу ****_SALARY_LOG
 +
 
 +
'''В ответе приложите SQL-скрипты, ссылку на ER-диаграмму'''
 +
 
 +
#
 +
#
  
 
== Литература ==
 
== Литература ==

Версия 13:40, 26 ноября 2024

О курсе

Занятия проводятся в Zoom по вторникам в 19:40 - 21:00

Контакты

Канал курса в TG: [channel]

Чат курса в TG: [chat]

Преподаватель: 1) Сайков Александр 2) Анатолий Бардуков

Занятие Тема Дата Материалы для самоподготовки к семинарам
1 Запись Введение инженер данных 06.11.2024
2 Запись PostgreSQL, Схема данных, Slowly Changing Dimensions 12.11.2024
3 [Запись] Агрегатные функции, SCD 23.11.2024
4 [Запись] Регулярные выражения 26.11.2024
5 [Запись] Оптимизация запросов и CDC 03.12.2024
6 [Запись] Пример ETL процесса 10.12.2024
7 [Запись] Оптимизация производительности 17.12.2024

Записи консультаций

(Если они будут)

Формула оценивания

Запланированы 3 дз (2 дз на 1 неделю, проект на 2 недели), тесты к каждой неделе курса

Оценка = 0.3*проект + 0.5*практические задания + 0.2*тесты

UPD1: начиная со второго домашнего задания, снимаем 1 балл раз в три дня за сдачу после deadline, но ниже 4 не снимаем.

UPD2: начиная с 3 ДЗ снимаем до 1 балла за неаккуратное оформление кода (не следует общеизвестным sql style guides)

Домашние задания

ДЗ 1 состоит из 2х частей:

Часть 1

Создайте структуру базы данных по выбранной вами тематике из списка ниже.

Предметные области (выберите одну): 1. Продажа автомобилей. 2. Приют для животных. 3. Железнодорожные перевозки. 4. Служба доставки. 5. Организация марафона.

Требования к базе данных: • Должно быть не менее 4 сущностей (включая технические объекты). • Должна быть хотя бы одна связь один-ко-многим. • Должна быть хотя бы одна связь многие-ко-многим. • Все отношения приведены к третьей нормальной форме (3НФ).

Требования к оформлению:

•  ER-диаграмму необходимо составить на app.dbdesigner.net. На проверку нужно прислать ссылку на диаграмму.
•  Также необходимо подготовить SQL-скрипт с DDL для создания таблиц (обратите внимание на ограничения) и заполнения примерами данных.

Часть 2

1. Создайте таблицу ****_SALARY_HIST, где **** — ваш уникальный идентификатор. В таблице должна быть SCD2 версия таблицы de.histgroup с полями:

•  PERSON
•   CLASS
•   SALARY
•   EFFECTIVE_FROM
•   EFFECTIVE_TO

2. Используя таблицы ****_SALARY_HIST и de.salary_payments, напишите SQL-скрипт, выводящий таблицу платежей сотрудникам. Таблица должна содержать поля:

•   PAYMENT_DT — дата выплаты
•   PERSON
•   PAYMENT
•   MONTH_PAID — суммарно выплачено в месяце на дату последней выплаты
•   MONTH_REST — осталось выплатить за месяц

Результат выполнения сохраните в таблицу ****_SALARY_LOG

В ответе приложите SQL-скрипты, ссылку на ER-диаграмму

Литература

  • Kimball, R. and M. Ross. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (Second Edition), 2002
  • Inmon, W. H., Teradata, and Corporation. (2016). Building the Data Warehouse. John Wiley & Sons.
    Redman, T. C. (1996). Data Quality: The Field Guide. Digital Press.
  • "Медленно меняющееся измерение (SCD)"
  • Connelly, J. Asynchronous Data Dependencies in Distributed Systems. ACM Digital Library.
    Ousterhout, J. A. (2013). A Philosophy of Software Design. Addison-Wesley.
    Martin, R. C. (2017). Clean Architecture: A Craftsman's Guide to Software Structure and Design. Pearson Education.
    Fowler, M. (2012). Patterns of Enterprise Application Architecture. Addison-Wesley.
    Смит, М., & Дэвидсон, Р. (2015). Разработка эффективных алгоритмов и программ. Вильямс.
    Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
  • "SQL Performance Explained" by Markus Winand.
    "High Performance MySQL" by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko.
    "Designing Data-Intensive Applications" by Martin Kleppmann.
    "The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling" by Ralph Kimball and Margy Ross.
    "Practical ETL Design: Building High-Performance Data Integration Systems" by Jordan Tigani and Christopher Jones.

...

  • Jay Kreps - "I Heart Logs: Event Data, Stream Processing, and Data Integration"
    Nathan Marz, James Warren - "Big Data: Principles and best practices of scalable real-time data systems"