Banco de Dados
Professor: Fernando
Modelo Relacional; Banco de dados Relacional; Padrão SQL; Insert, Update, Delete e Select; Joins; Índices; Domínios; Triggers; Procedures; ACID; Bancos de dados Não relacionais; MongoDB; Estrutura de dados não relacionais;
Assuntos abordados
- Banco de dados relacional;
- Banco de dados não relacional;
Calendário
- 31/07/2021 - Aula 01
- Revisão Modelagem e conceitos fundamentais (Projeto, MER, DER, chaves, atributos, tipos)
- SQL (DDL, DML)
- JOINS (Inner, Cross, Left, Right e Full joins)
- 14/08/2021 - Aula 02
- DML
- INSERT, UPDATE e DELETE.
- 28/08/2021 - Aula 03
- Domínios
- Transações
- Conversão de tipos
- Views
- Funções
- Triggers
Materiais utilizados na disciplina
- 31/07/2021
- Máterial em PDF - Slide 01 da Aula 1
- Máterial em PDF - Slide 02 da Aula 1
- 14/08/2021
- Máterial em PDF - Slide 01 da Aula 2
- Máterial em PDF - Slide 02 da Aula 2
- 28/08/2021
- Máterial em PDF - Slide 01 da Aula 3
- Máterial em PDF - Slide 02 da Aula 3
- Material complementar
- Guia Disciplina - Guia com todas as orientacoes da disciplina.
- Arquivo.sql - Atividade05 - CORRECAO.sql
- Máterial em PDF 01 - ARTIGO_TRADUCAO_RelationalModel.pdf
- Máterial em PDF 02 - ARTIGO_TRADUCAO-A_Comparative_Analysis_of_Entity-Relationship_Diagrams.pdf
- Máterial em PDF 03 - ARTIGO-A_Comparative_Analysis_of_Entity-Relationship_Diagrams.pdf
- Máterial em PDF 04 - ARTIGO-Codd1970_RelationalModel.pdf
Atividades solicitadas para serem entregues
Atividade 1
Transcrição
A partir dos conceitos estudados, com base no material de apoio e consultas, pede-se a elaboração de um modelo físico (entidades, atributos, tipos e relacionamentos) de um banco de dados com tema livre.
A atividade pode ser feita em grupos de até 5 pessoas.
Defina um tema no grupo, ou seja um “Minimundo”, descreva esse minimundo e implemente usando o StarUML (New File From Template -> Data Model) o modelo físico adequado.
Como não teremos os modelos conceituais nem o lógico para auxiliar, escolha um tema que vocês tenham domínio para permitir a construção adequada do modelo.
Entregue durante a aula
Download do projeto entregue: Grupo-03.zip
Atividade 2
Transcrição
INSTRUÇÕES:
CONSIDERE O SEGUINTE MINIMUNDO:
A empresa de agronegócio AgriTray deseja construir um sistema para que os funcionários de campo registrem internamente relatos positivos ou de aprendizados obtidos em atendimento aos agricultores. A ideia é criar uma base de conhecimento com base nas experiências de campo dos seus veterinários, agrônomos e técnicos. O sistema deve funcionar como uma rede social onde o usuário terá um perfil com nome e função (ex: José - Agrônomo). Esse perfil poderá fazer posts de textos, fotos e vídeos curtos, sempre identificando o local do registro, área ou segmento dentro da empresa (suíno, aves, grãos, etc) e definindo tags sobre o conteúdo, como por exemplo #ração, #tratamento_virose, #gripe, #aumento_produção, etc. Um usuário poderá ver todos os posts e marcar os seus preferidos para ver depois.
A partir do minimundo acima, faça: 1 - Construa um projeto físico de banco de dados relacional que atenda os requisitos. Dados não apresentados podem ser complementados com seu conhecimento sobre o tema ou pesquisas complementares. Implemente as principais entidades envolvido para resolver o problema principal.
2 - Escreva o código DDL para a construção do banco, criando as restrições de Chave primária, Chave estrangeira e Checks para cada campo necessário
3 - Escreva um código e entregue em um arquivo único, identificando cada item:
3.1 - Drope (exclua) e construa novamente ao menos uma tabela
3.2 - Altere o tipo de dado de três campos em quaisquer tabelas
3.3 - Altere/adicione a restrição (CHECK) de outros três campos em quaisquer tabelas
3.4 - Altere o nome das colunas que são PK para "ID_nome da coluna"
3.5 - Adicione duas colunas em quaisquer tabelas
Use a documentação do PostgreSQL 13 e os materiais da aula. https://www.postgresql.org/docs/13/ddl.html
Obs: alguns itens 3 não vimos em sala. Irei colocar no slide SQL ao longo da semana. Porém podem usar a documentação a fim de sanar dúvidas.
Obs2: Para fazer a modelagem e o como resolver o desafio proposto, utilize a criatividade sobre como a melhor forma de organizar os dados, pensando na recuperação das informações ali contidas.
Entregue até 14/08/2021
Download do projeto entregue: Grupo-03-Atividade02-1.DDL.zip
Download do projeto entregue: Grupo-03-Atividade02-2.DDL.sql
Download do projeto entregue: Grupo-03-Atividade02-3.DDL.sql
Atividade 3
Transcrição
INSTRUÇÕES:
A partir dos modelos criados nas atividades anteriores, escolha um deles e crie os comandos DML para:
- Inserir dados
- Alterar dados
- Excluir dados
Busque utilizar variações na clausula WHERE, Sub Consultas, etc, conforme os exemplos em sala.
Para entregar, Anexo o script ou scripts no formulário
Entregue durante a aula
Download do projeto entregue: Grupo-03-Atividade03.DDL.sql
Atividade 4
Transcrição
A partir do banco criado na atividade anterior, execute as tarefas abaixo. .
Para entregar, Respondo no próprio formulário as questões iniciais e anexe o script ou scripts na questão relacionada ao banco criado.
Entregue até 28/08/2021
Download do projeto entregue: Grupo-03-Atividade04.DDL.sql
Atividade 5
Transcrição
CRIE AS SEGUINTES CONSULTAS (QUERIES):
1 - Liste a data do pedido, data de entrega, nome do cliente e id dos produtos realizados empresa 01 no ano de 2021.
2 - Liste o Id do pedido, id do produto, data do pedido e o nome do produto, dos pedidos realizados entre 01/07/2021 e 31/07/2021.
3 - Liste os pedidos sem data de entrega definida, indicando id, data do pedido, nome do cliente e há quantos dias foi realizado.
4 - A equipe do marketing solicitou uma listagem dos 100 clientes com mais quantidade de pedidos, listando as informações do cliente disponíveis no banco.
5 - Em seguida, a equipe do marketing solicitou quais os produtos esses 100 clientes (questão 4) compraram nos últimos 730 dias.
6 - O gerente de compras da empresa precisa conferir algumas informações de produtos para corrigir os relatórios de compras. Ele solicitou uma listagem com os produtos sem categoria e as categorias que não estão sendo utilizada em nenhum produto.
7 - A empresa deseja fazer uma ação de recuperação dos clientes. O setor de marketing solicitou uma listagem com os dados disponíveis no sistema dos clientes que nunca compraram e os que já compraram porém a última compra foi a mais de 365 dias.
8 - A equipe do marketing solicitou ao departamento uma listagem com os produtos mais vendidos por categoria.
Pessoal da gestão de clientes e crediário esta fazendo uma análise da base de clientes, e solicitou as seguintes informações:
9 - Quantos clientes existem na base por categoria
10 - Quantos clientes existem na base por estado e exiba os 5 primeiros
11 - Quantos clientes existem na base por cidade e exiba somente as que tiverem mais de 10 clientes
12 - Quantos clientes existem na base por categoria e destes quantos nunca compraram
13 - Quantos clientes existem na base por cidade e destes, quantos nunca compraram
14 - A gerência de loja solicitou uma tela que trouxesse as informações principais dos produtos e seu preço atual.
15 - Crie uma consulta que retorne o id do pedido, data que foi feito, produto, quantidade, o valor praticado nessa época e o valor total do pedido
Entregue até 29/08/2021
Download do arquivo entregue: DDL_banco_Atividade05.sql
Download do arquivo entregue: DML_INSERT_banco_Atividade05.sql
Download do arquivo entregue: Atividade05.DML.sql
Trabalho final
Transcrição
INSTRUÇÕES:
Para finalizarmos nossa disciplina, vamos fazer um projeto que envolva praticamente todos os conceitos vistos.
A Atividade pode ser em grupo até 4 pessoas. Busquem organizar entre o grupos as tarefas.
Deve-se entregar:
- Modelo Físico do banco (mínimo 5 tabelas, focar nas principais)
- Criação de ao menos 2 domínios e uso deles na criação do DDL, sendo UM com tipo e UM com constraint (CHECK)
- Script DDL para criação
- Script DML com os dados populados no banco (Pode gerar via backup do banco no PG_ADMIN)
- Ao menos 1 VIEW
- Ao menos 1 FUNÇÃO que envolva consulta em banco
- Ao menos 1 TRIGGER/gatilho que modifique ou faça inserção em uma tabela.
- 10 consultas que utilizem os recursos estudados, como Inner Join, Left e right join, Group By, Having, Subconsulta, etc ou as funções e views criadas pelo grupo. Escreva o que se espera retornar antes da consulta.
Os temas para o projeto são LIVRES. Sugestão é que busquem algo novo e diferente do que já estão habituados ou que seja um possível projeto novo na empresa ou para desenvolver durante o curso nas demais disciplinas. Algumas sugestões:
- Controle de estatísticas de times de futebol
- Pet Shop
- Controle de assinaturas de bebidas
- Portal de cursos on-line (informações administrativas ou as pedagógicas)
- Portal de medalhas olímpicas
- Gerenciar rotas de transporte
Façam uma entrega por grupo, anexando os artefatos conforme o indicado em cada campo abaixo.
Entregar até o dia 11/09/2021
Download do arquivo entregue: Trabalho.zip