https://www.canva.com/design/DAGfaQi3DTg/vwXI9HcOaWr018FlFCC9aA/view?embed
Desafio de Modelagem de Dados e SQL com Draw.io e Supabase
Olá estudantes! Sejam bem-vindos a este desafio prático de modelagem de dados e SQL. O objetivo é aplicar os conhecimentos teóricos em um cenário real, criando um modelo de dados e implementando-o em um banco de dados usando o Supabase.
Etapas do Desafio
- Modelagem Conceitual e Lógica:
- Utilizando o Draw.io (www.draw.io ou diagrams.net), vocês irão criar um diagrama Entidade-Relacionamento (ER) para representar um sistema de sua escolha. O sistema deve conter pelo menos duas entidades com um relacionamento 1:N (um para muitos) e um relacionamento N:N (muitos para muitos).
- Exemplos de sistemas:
- Sistema de biblioteca (Livros, Autores, Empréstimos)
- Sistema de loja online (Produtos, Clientes, Pedidos)
- Sistema de gerenciamento de alunos (Alunos, Cursos, Matrículas)
- No diagrama ER, representem as entidades, seus atributos e os relacionamentos entre elas, incluindo a cardinalidade (1:N e N:N).
- Modelagem Física:
- Com base no diagrama ER, vocês irão criar o modelo físico do banco de dados, definindo as tabelas, colunas, tipos de dados e chaves primárias e estrangeiras.
- Lembrem-se de como os relacionamentos 1:N e N:N são representados no modelo físico:
- 1:N: A chave primária da tabela "um" é adicionada como chave estrangeira na tabela "muitos".
- N:N: Uma tabela intermediária é criada com as chaves primárias das duas tabelas relacionadas.
- Implementação no Supabase:
- Criem uma conta no Supabase (supabase.com).
- Criem um novo projeto e acessem o editor SQL.
- Utilizando o editor SQL, implementem o modelo físico do banco de dados, criando as tabelas e definindo as restrições (chaves primárias e estrangeiras).
- População do Banco de Dados:
- Inseram dados nas tabelas para simular o funcionamento do sistema.
- Utilizem o comando
INSERT INTO para adicionar dados às tabelas.
- Consultas SQL:
- Elaborem consultas SQL para extrair informações relevantes do banco de dados.
- Utilizem os comandos
SELECT, WHERE, JOIN, GROUP BY, ORDER BY e outras cláusulas SQL para criar consultas complexas que envolvam as tabelas com relacionamentos 1:N e N:N.
- Exemplos de consultas:
- Listar todos os livros de um determinado autor.
- Listar todos os produtos de um determinado pedido.
- Listar todos os alunos matriculados em um determinado curso.
Entrega
- Entreguem um documento contendo:
- O diagrama ER criado no Draw.io.
- O modelo físico do banco de dados, incluindo a definição das tabelas e colunas.
- O código SQL utilizado para criar as tabelas e inserir os dados no Supabase.
- As consultas SQL elaboradas e os resultados obtidos.
- Uma breve descrição do sistema escolhido e das decisões de modelagem tomadas.
Recursos
Prazo
- Definir prazo de entrega.
Avaliação
- O desafio será avaliado com base na correção do modelo de dados, na implementação do banco de dados no Supabase, na elaboração das consultas SQL e na clareza da documentação.
Observação: Este desafio é uma oportunidade para vocês aplicarem os conhecimentos em modelagem de dados e SQL de forma prática e criativa. Explorem os recursos do Draw.io e do Supabase, sejam criativos na escolha do sistema e elaborem consultas SQL desafiadoras. Em caso de dúvidas, não hesitem em perguntar!