Skip to content

Projeto desenvolvido durante o curso na Trybe cujo objetivo é normalizar tabelas e criar tabelas, utilizar JOIN's para realizar consultas complexas e também funções matemáticas, agregadoras, datas, etc...

Notifications You must be signed in to change notification settings

Lucas-GSS/mysql-one-for-all

Repository files navigation

MySQL - One For All

mysql-logo

mysql status badge

Descrição

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.

Tabelas não normalizadas:

non-normalized-tables

Tabelas normalizadas (Diagrama ER):

Captura de tela de 2023-08-29 17-55-39

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.

Acesso ao projeto

Pré-Requisitos

Tenha o MYSQL Workbench instalado.

Clone o projeto

  • 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

Interagindo com as funcionalidades

  • Utilizando o conteúdo do arquivo desafio1.sql para criar o banco de dados:

Gravação-de-tela-de-29-08-2023-13_55_26

  • Executando a query do arquivo desafio4.sql:

Gravação-de-tela-de-29-08-2023-14_12_49

Autor


Lucas Gabriel

About

Projeto desenvolvido durante o curso na Trybe cujo objetivo é normalizar tabelas e criar tabelas, utilizar JOIN's para realizar consultas complexas e também funções matemáticas, agregadoras, datas, etc...

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published