Skip to content

viniciuscdes/mestredoscodigos

Repository files navigation

mestre dos códigos Território SQL

O game Mestre dos Códigos é um projeto interno da DB1 Global Software, que vai levar os desenvolvedores a uma jornada épica. Saiba Mais.

Entregas Exercícios
Entrega I 1, 2, 3, 4, 5, 8, 9
Entrega II 7, 11, 12
Entrega III 6, 10, 13, 14, 15

Exercícios

[01] Crie um modelo de dados contendo pelo menos 10 tabelas, sendo que pelo menos uma tabela deve conter chave composta; Criar ligações entre as tabelas com relacionamentos MxN e 1xN, mencionando no relacionamento o tipo de tratamento que será tomado quando um registro da tabela mestre for excluido. Mencione tambem no DDL os cuidados tomados com normalização e com a criação de indices;

[02] Realize 5 consultas no modelo de dados criado no item 1, realizando pelo menos uma das seguintes operações: Union, Intersect, Minus, e utilizando pelo menos 3 tipos diferentes de joins;

[03] Criar uma query hierarquica, ordenando os registros por uma coluna específica;

[04] Extrair um relatório do modelo de dados criado no item 1, utilizando 3 funções de agregação diferentes, e filtrando por pelo menos uma função agregadora;

[05] Sintetize o relatório criado no item 4 dentro de uma View Materializada;

[08] Criar uma função que valide um tipo de dado comparando o formato com uma Expressão Regular; Crie uma trigger que não permita a inserção/alteração do registro com base na validação da função criada;

[09] Criar uma JOB que execute diariamente uma procedure que atualize os dados de uma visão materializada com base nas informações do dia anterior;


[07] Criar um trigger que, ao realizar um INSERT em uma view composta por pelo menos 3 tabelas, realize inserção em uma outra tabela dentro do banco de dados;

[011] Crie uma query analítica extraindo informações relevantes dentro modelo do criado no item 1;

[012] Crie um tipo de dado, composto por pelo menos 2 atributos, e crie o DDL que altere o modelo de dados do item 1 para utiliza-lo;


[06] Otimize a consulta do item 4, detalhando as analises do plano de execução inicial e a cada modificação, e utilizando hints caso o banco de dados suportar; EXPLAIN SELECT ...

[010] Crie uma package que armazene as informações do usuário logado, e que registre as operações que o mesmo realizou na sessão;

[013] Realize a carga de pelo menos 500.000 registros, utilizando bulk operations, gerando a massa de dados através do cross join entre algumas tabelas do modelo do criado no item 1, utilizando o tipo de dados criado no item 12;

[014] Crie uma tabela utilizando particionamento de dados, e explique no DDL a motivação e beneficios do particionamento realizado;

[015] Utilize paralelismo para otimizar a criação de um indice na tabela criada no item 13;

--

Para testar os exercícios

Foi utilizado no desenvolvimento dos exercícios o banco de dados MySQL 5.7.12.

Criar o banco de dados

$> CREATE DATABASE mestrecodigos;

Tabelas

A criação das tabelas pode ser feito através das seguintes opções:

Popular o banco

Para realizar os testes é possivel utilizar os scripts do arquivo: popula_inicial.sql. Ou também pode utilizar o backup do banco completo com os registros backup_completo_registros.sql

Quer aprender SQL?

Casa do Código Confira meus livros sobre MySQL e PostgreSQL na Editora Casa do Código.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published