Реалізуйте базу даних, схема якої містить:
- Таблиця студентів;
- Таблицю груп;
- Таблицю викладачів;
- Таблицю предметів із вказівкою викладача, який читає предмет;
- Таблицю, де у кожного студента є оцінки з предметів із зазначенням коли оцінку отримано;
Технiчний опис завдання
-
Реалізуйте свої моделі SQLAlchemy, для таблиць.
- Таблиця студентів;
- Таблиця груп;
- Таблиця викладачів;
- Таблиця предметів із вказівкою викладача, який читає предмет;
- Таблиця де кожен студент має оцінки з предметів із зазначенням коли оцінку отримано;
-
Використовуйте alembic для створення міграцій у базі даних.
-
Напишіть скрипт seed.py та заповніть отриману базу даних випадковими даними (~30-50 студентів, 3 групи, 5-8 предметів, 3-5 викладачів, до 20 оцінок у кожного студента з усіх предметів). Використовуйте пакет Faker для наповнення. При заповненні використовуємо механізм сесій SQLAlchemy.
-
Зробити наступні вибірки з отриманої бази даних:
- Знайти 5 студентів із найбільшим середнім балом з усіх предметів.
- Знайти студента із найвищим середнім балом з певного предмета.
- Знайти середній бал у групах з певного предмета.
- Знайти середній бал на потоці (по всій таблиці оцінок).
- Знайти які курси читає певний викладач.
- Знайти список студентів у певній групі.
- Знайти оцінки студентів у окремій групі з певного предмета.
- Знайти середній бал, який ставить певний викладач зі своїх предметів.
- Знайти список курсів, які відвідує певний студент.
- Список курсів, які певному студенту читає певний викладач.
Для запитів оформити окремий файл my_select.py, де будуть 10 функцій від select_1 до select_10. При запитах використовуємо механізм сесій SQLAlchemy.