-
Modelar um banco de dados
-
Identificar entidades , atributos e relacionamentos
-
Aplicar a 1ª, 2ª e 3ª Forma Normal
-
Criar tabelas
-
Lidar com VIEWs
-
Alterar tabelas existentes
-
Criar reações dinâmicas com TRIGGERS
Normalizarei uma tabela na terceira forma normal e acessarei as informações desta tabela através de queries
utilizando SQL
.
Você pode ter acesso a este Projeto do seguinte modo:
- Clone o repositório
Entre na pasta do repositório que você acabou de clonar
Instale as dependências:
- npm install Pronto Você já pode ver as minhas Querys!
- Leia a pergunta e crie um arquivo na pasta raiz do projeto chamado
desafioN.sql
, em que N é o número do desafio (exemplo: desafio3.sql). Para o primeiro desafio, é preciso criar também o arquivo de configuraçõesdesafio1.json
também na pasta raiz do projeto.
Abaixo você pode visualizar e baixar uma planilha com as tabelas que deverão ser normalizadas:
Antes de tudo, você deverá modelar e normalizar essas tabelas para a 3° Forma Normal. Monte quantas planilhas e tabelas forem necessárias para criar essa versão normalizada, desde que você siga as regras de negócio. Não é necessário criar o código SQL neste momento.
Embora não seja necessário, é recomendado que você crie suas planilhas na sequência 1ª -> 2ª -> 3ª Forma Normal.
Caso haja dúvidas, consulte o material já passado até hoje para te auxiliar.
Seu 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.
- Para executar localmente os testes, é preciso escrever o seguinte no seu terminal:
MYSQL_USER=<SEU_NOME_DE_PESSOA_USUARIA> MYSQL_PASSWORD=<SUA SENHA> HOSTNAME=<NOME_DO_HOST> npm test
-
Ou seja, suponha que para poder acessar a base de dados feita neste projeto você tenha
root
como seu nome de pessoa usuária,password
como senha elocalhost
como host. Logo, você executaria:MYSQL_USER=root MYSQL_PASSWORD=password HOSTNAME=localhost npm test
-
Usando o exemplo anterior de base, suponha que você não tenha setado uma senha para
root
. Neste caso, você executaria:MYSQL_USER=root MYSQL_PASSWORD= HOSTNAME=localhost npm test