Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andy-messer/ballroom-database
Project MIPT, Data Base course.
https://github.com/andy-messer/ballroom-database
database mipt-homeworks pgsql sql sql-server
Last synced: 23 days ago
JSON representation
Project MIPT, Data Base course.
- Host: GitHub
- URL: https://github.com/andy-messer/ballroom-database
- Owner: Andy-Messer
- License: mit
- Created: 2022-05-22T18:38:51.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-05-22T18:42:43.000Z (over 2 years ago)
- Last Synced: 2024-11-18T05:12:34.644Z (2 months ago)
- Topics: database, mipt-homeworks, pgsql, sql, sql-server
- Language: Python
- Homepage:
- Size: 503 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# База данных ballroom_database
## Таблицы
1) Dancer - хранит в себе информацию о танцоре, его рост, вес и информацию, связанную с бальными танцами.
2) Club - отвечает за информацию о клубах (местоположение, рейтинг, название).
3) Couple - привязана к двум танцорам одновременно, хранит информацию о паре, так же достпуна **версионность** в
формате, актуальный ли состав пары.
4) Coach - хранит информацию о тренерах, тренера привязаны к клубам, но при этом могут тренеровать пары с других клубов.
5) Couple_x_Coach - таблица связка между тренерами и парами, кто кого тренерует, по какой программе.
6) Competition - описывает турниры, где они проходят, какая плата за вход.
7) Competition_Category - описывает категории, достпуные для пар.
8) Registered_Couples - список зарегестрированных пар, относительно категорий.
9) Scores - Информация о парах, участвоваших в категориях, их места и кол-во набранных очков по каждому танцу.
10) Judging_Panel - судейская панель, список тренеров, судящих определенную категорию.## Модели
### Концептуальная
![](images/img.png)
### Логическая
![](images/img_1.png)
### Физическая
![](images/img_2.png)
> Рассмотреть модели в хорошем качестве, [здесь](./docs/models.pdf).
## CRUD
> CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: создание (англ. create), чтение (read), модификация (update), удаление (delete). Введён Джеймсом Мартином в 1983 году как стандартная классификация функций по манипуляции данными.На crud запросы можно посмотреть вот [здесь](./sql/crud.sql).
## Сложные SELECT-запросы
1) Задача:
Вывести количество соревнований каждого уровня,
среднюю стоимость зрительского билета,
средняя стоимость которого меньше 900.
>
> P.s. Use GROUP BY + HAVING
- [Ответ](./sql/select-1.sql)
2) Задача:
Вывести топ-5 номера пар в категории Молодежь С класс Латина,
в соревновании 'Весенний бал Терпсихоры', по танцy Самба (S).
>
> P.s. Use ORDER BY
- [Ответ](./sql/select-2.sql)
3) Задача:
Вывести сводную таблицу с названиями соревнований,
уровнем соревнований, ценой зрительского билета
и средней ценой зрительского билета для этого уровня соревнований.
>
>P.s. Use func(...) OVER(...): PARTITION BY
- [Ответ](./sql/select-3.sql)
4) Задача:
Вывести антитоп судей, по очкам грязного судейства, в формате:
Ранг судьи, имя Фамилия, категория, кол-во очков грязного судейства.
>
> P.s. Use func(...) OVER(...): ORDER BY
- [Ответ](./sql/select-4.sql)
5) Задача:
Вывести топ пар, по каждому из танцев по Латине независимо от категории,
в которой участвовала пара, в формате: место, номер категории, номер пары, танец.
>
> P.s. Use func(...) OVER(...): PARTITION BY + ORDER BY
- [Ответ](./sql/select-5.sql)
6) Задача:
Для Регины Абрамовой посчитать, как долго она не стояла в паре(в днях), начиная с '2020-11-02' по '2022-12-30',
построить топ перерывов по длительности.
>
> P.s. Use func(...) OVER(...): все 3 типа функций
- [Ответ](./sql/select-6.sql)
## Приятные дополнения
- [VIEW](./sql/view.sql)
- [INDEX](./sql/index.sql)
- [PROCEDURE](./sql/procedure.sql)
- [TRIGGERS](./sql/trigger.sql)