Este projeto foi desenvolvido no módulo de BackEnd do curso da Trybe. Durante este módulo estudei sobre recursos úteis do SQL, com: funções matemáticas, funções agregadoras, funções de datas, filtros com GROUP BY e HAVING. Além disso aprendi sobre JOIN's(INNER JOIN, LEFT JOIN, RIGHT JOIN...) e sobre o processo de normalização de tabelas, desde a 1ª até a 3ª forma normal.
O desafio do projeto foi aplicar todos esses conhecimentos para normalizar as tabelas necessárias para criar um banco de dados que armazena músicas, baseado no Spotify. Além da normalização até a 3ª forma normal. Foi exigido a criação do banco de dados SpotifyClone
e a inserção das tabelas normalizadas nele, além de também inserir dados nessas tabelas e realizar várias queries no banco de dados, utilizando os conhecimentos adquiridos no módulo.
Regras de negócio
O banco de dados deve seguir as regras de negócio e ser capaz de recuperar:-
Informações sobre quais planos estão disponíveis e seus detalhes;
- Cada pessoa usuária pode possuir apenas um plano.
-
Informações sobre todas as pessoas artistas;
- Uma pessoa artista pode ter vários álbuns;
- Uma pessoa artista pode ser seguida por várias pessoas usuárias.
-
Informações sobre todos os álbuns de cada artista;
- Para fins deste projeto, considere que cada álbum possui apenas uma pessoa artista como principal;
- Cada álbum possui várias canções.
-
Informações sobre todas as canções de cada álbum;
- Para fins deste projeto, considere que cada canção está contida em apenas um álbum.
-
Informações sobre todas as pessoas usuárias, seus planos, seu histórico de reprodução e pessoas artistas seguidas.
- Uma pessoa usuária pode possuir apenas um plano;
- Cada música do histórico de reprodução pode aparecer uma única vez por pessoa (para simplificar, considere que o objetivo do histórico é saber quais canções já foram reproduzidas e não quantas vezes foram reproduzidas);
- Uma pessoa usuária pode seguir várias pessoas artistas, mas cada pessoa artista pode ser seguida apenas uma vez por pessoa usuária.
Tenha o MYSQL Workbench instalado.
- Faça o clone do projeto para sua máquina:
git clone git@github.com:Lucas-GSS/mysql-one-for-all.git
- Entre na pasta do projeto:
cd mysql-one-for-all
- Utilizando o conteúdo do arquivo
desafio1.sql
para criar o banco de dados:
- Executando a query do arquivo
desafio4.sql
: