An open API service indexing awesome lists of open source software.

https://github.com/ynazymko12/goit-rdb-fp

Home task for Relational Databases: Фінальний проєкт
https://github.com/ynazymko12/goit-rdb-fp

mysql sql

Last synced: 11 months ago
JSON representation

Home task for Relational Databases: Фінальний проєкт

Awesome Lists containing this project

README

          

# Покрокова інструкція виконання фінального проєкту

### Підготовка та завантаження фінального проєкту

1. Створіть публічний репозиторій `goit-rdb-fp`.
2. Виконайте завдання та відправте у свій репозиторій скриншоти створених
таблиць, запитів і результатів, а також текст SQL-коду в текстовому файлі.
3. Завантажте скриншоти і текстовий файл на свій комп’ютер та прикріпіть їх в
LMS архівом. Назва архіву повинна бути у форматі ФП_ПІБ.
4. Прикріпіть посилання на репозиторій `goit-rdb-fp` та відправте на перевірку.

### Формат здачі

- Прикріплені файли репозиторію архівом із назвою ФП_ПІБ.
- Посилання на репозиторій.

### Формат оцінювання

Оцінка від 0 до 100.

- Завдання 1 оцінюється в 10 балів.
- Завдання 2 оцінюється в 30 балів.
- Завдання 3 оцінюється у 20 балів.
- Завдання 4 оцінюється у 20 балів.
- Завдання 5 оцінюється у 20 балів.

> [!TIP] Якщо є помилки або недоліки виконання, кількість балів на кожному етапі
> зменшується пропорційно наявних помилок на розсуд ментора.

## Опис фінального проєкту

1. Завантажте дані:

- Створіть схему pandemic у базі даних за допомогою SQL-команди.
- Оберіть її як схему за замовчуванням за допомогою SQL-команди.
- Імпортуйте
[**дані**](https://drive.google.com/file/d/1lHEXJvu2omYRgvSek6mHq-iQ3RmGAQ7e/view)
за допомогою Import wizard так, як ви вже робили це у темі 3.
[**infectious_cases.csv**](https://prod-files-secure.s3.us-west-2.amazonaws.com/89fec302-e51c-45d8-a968-db8bdab456d2/74d1694c-7c06-403a-b8fa-301608033701/infectious_cases.csv)
- Продивіться дані, щоб бути у контексті.

> [!TIP] Як бачите, атрибути Entity та Code постійно повторюються. Позбудьтеся
> цього за допомогою нормалізації даних.

2. Нормалізуйте таблицю infectious_cases. Збережіть у цій же схемі дві таблиці з
нормалізованими даними.

3. Проаналізуйте дані:

- Для кожної унікальної комбінації Entity та Code або їх id порахуйте середнє,
мінімальне, максимальне значення та суму для атрибута Number_rabies.

> [!TIP] Врахуйте, що атрибут Number_rabies може містити порожні значення ‘’ —
> вам попередньо необхідно їх відфільтрувати.

- Результат відсортуйте за порахованим середнім значенням у порядку спадання.
- Оберіть тільки 10 рядків для виведення на екран.

4. Побудуйте колонку різниці в роках.

Для оригінальної або нормованої таблиці для колонки Year побудуйте з
використанням вбудованих SQL-функцій:

- атрибут, що створює дату першого січня відповідного року,

> [!TIP] Наприклад, якщо атрибут містить значення ’1996’, то значення нового
> атрибута має бути ‘1996-01-01’.

- атрибут, що дорівнює поточній даті,
- атрибут, що дорівнює різниці в роках двох вищезгаданих колонок.

> [!TIP] Перераховувати всі інші атрибути, такі як Number_malaria, не потрібно.

👉🏼 Для пошуку необхідних вбудованих функцій вам може знадобитися матеріал до
теми 7.

5. Побудуйте власну функцію.

- Створіть і використайте функцію, що будує такий же атрибут, як і в
попередньому завданні: функція має приймати на вхід значення року, а повертати
різницю в роках між поточною датою та датою, створеною з атрибута року (1996
рік → ‘1996-01-01’).

> [!TIP] Якщо ви не виконали попереднє завдання, то можете побудувати іншу
> функцію — функцію, що рахує кількість захворювань за певний період. Для цього
> треба поділити кількість захворювань на рік на певне число: 12 — для отримання
> середньої кількості захворювань на місяць, 4 — на квартал або 2 — на півріччя.
> Таким чином, функція буде приймати два параметри: кількість захворювань на рік
> та довільний дільник. Ви також маєте використати її — запустити на даних.
> Оскільки не всі рядки містять число захворювань, вам необхідно буде відсіяти
> ті, що не мають чисельного значення (≠ ‘’).

## Критерії прийняття фінального проєкту

1. Прикріплені посилання на репозиторій goit-rdb-fp та безпосередньо самі файли
репозиторію архівом.
2. Створено схему в базі даних. Імпортовано дані.
3. Таблицю нормалізовано.
4. Правильно написано SQL-запити відповідно до заданих умов виконання. Запити
виконуються й дають очікуваний результат, а саме:

- середнє, мінімальне, максимальне значення та суму для атрибута Number_rabies.
Виведення відбувається згідно із зазначеними вище вимогами за сортуванням та
кількістю рядків;
- колонку різниці в роках за допомогою вбудованих SQL-функцій;
- функцію розрахунку різниці в роках або кількості захворювань за певний період.
Функція повертає необхідні дані.