Будем развивать схему для музыкального сервиса.
Ранее существовало ограничение, что каждый исполнитель поёт строго в одном жанре, пора его убрать. Исполнители могут петь в разных жанрах, как и одному жанру могут принадлежать несколько исполнителей.
Аналогичное ограничение было и с альбомами у исполнителей — альбом мог выпустить только один исполнитель. Теперь альбом могут выпустить несколько исполнителей вместе. Как и исполнитель может принимать участие во множестве альбомов.
С треками ничего не меняем, всё так же трек принадлежит строго одному альбому.
Но появилась новая сущность — сборник. Сборник имеет название и год выпуска. В него входят различные треки из разных альбомов.
Обратите внимание: один и тот же трек может присутствовать в разных сборниках.
Задание состоит из двух частей
- Спроектировать и нарисовать схему, как в первой домашней работе. Прислать изображение со схемой.
- Написать SQL-запросы, создающие спроектированную БД. Прислать ссылку на файл, содержащий SQL-запросы.
Примечание: можно прислать сначала схему, получить подтверждение, что схема верная, и после этого браться за написание запросов.
Спроектировать отношение или схему из нескольких отношений «Сотрудник». У каждого сотрудника есть следующие параметры:
- Имя.
- Отдел.
- Начальник (ссылка на начальника).
Примечание: начальник — тоже сотрудник. Отдел можно хранить строкой, можно идентификатором — не принципиально.
Необходимо написать SQL-запрос, создающий таблицу «Сотрудник», и прислать ссылку на файл с этим запросом.
Продолжаем работать со своей базой данных. В этом задании заполните базу данных из домашнего задания к занятию "Работа с SQL. Создание БД". В ней должно быть:
- не менее 4 исполнителей,
- не менее 3 жанров,
- не менее 3 альбомов,
- не менее 6 треков,
- не менее 4 сборников.
Внимание: должны быть заполнены все поля каждой таблицы, в том числе таблицы связей исполнителей с жанрами, исполнителей с альбомами, сборников с треками.
Написать SELECT-запросы, которые выведут информацию согласно инструкциям ниже.
Внимание: результаты запросов не должны быть пустыми, учтите это при заполнении таблиц.
- Название и продолжительность самого длительного трека.
- Название треков, продолжительность которых не менее 3,5 минут.
- Названия сборников, вышедших в период с 2018 по 2020 год включительно.
- Исполнители, чьё имя состоит из одного слова.
- Название треков, которые содержат слово «мой» или «my».
Написать SELECT-запросы, которые выведут информацию согласно инструкциям ниже.
Внимание: результаты запросов не должны быть пустыми, при необходимости добавьте данные в таблицы.
- Количество исполнителей в каждом жанре.
- Количество треков, вошедших в альбомы 2019–2020 годов.
- Средняя продолжительность треков по каждому альбому.
- Все исполнители, которые не выпустили альбомы в 2020 году.
- Названия сборников, в которых присутствует конкретный исполнитель (выберите его сами).
Написать SELECT-запросы, которые выведут информацию согласно инструкциям ниже.
Внимание: результаты запросов не должны быть пустыми, при необходимости добавьте данные в таблицы.
- Названия альбомов, в которых присутствуют исполнители более чем одного жанра.
- Наименования треков, которые не входят в сборники.
- Исполнитель или исполнители, написавшие самый короткий по продолжительности трек, — теоретически таких треков может быть несколько.
- Названия альбомов, содержащих наименьшее количество треков.
Результатом работы будет три файла в формате '.sql':
- с INSERT-запросами (задание 1),
- с SELECT-запросами (задание 2,3,4),
- с CREATE-запросами (из предыдущей домашней работы).