Skip to content

Realizado durante a disciplina de Banco de Dados (2020/1) do curso Bacharelado em Sistemas de Informação (BSI) do IFES- Campus Serra.

Notifications You must be signed in to change notification settings

GodKelvin/Provisoes_de_emergencia

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Provisões de Emergência


Artista: Kazuki Takahashi
Trabalho desenvolvido durante a disciplina de Banco de Dados 1 (2020/1) do curso Bacharelado em Sistemas de Informação (BSI) do IFES - Campus Serra.

Sumário

1. COMPONENTES

Kelvin Lehrback Guilherme

2.INTRODUÇÃO E MOTIVAÇÃO

Este documento contém a especificação do projeto do banco de dados Provisões de Emergência
e motivação da escolha realizada.
O sistema “Provisões de emergência” tem como objetivo contribuir com o planejamento financeiro de famílias e ONGS, gerando relatórios de preços e/ou dos produtos realmente essenciais para cada realidade num determinado intervalo de tempo. Devido ao cenário que se encontra o ano de 2020, tornou-se ainda mais importante ter um controle financeiro, principalmente quando o assunto é alimentação e saúde. O objetivo inicial do sistema é gerar um relatório listando todos os bens de consumo para a sobrevivência num determinado intervalo de tempo, bem como os seus respectivos preços.

3.MINI-MUNDO

O sistema “Provisões de emergência” conterá as informações aqui detalhadas. É necessário o cadastro da quantidade de pessoas. Pessoas são cadastradas por meio do nome, CPF, data de nascimento, grupo familiar a qual pertence e o informe se necessitam ou não de medicamentos, se necessário medicamentos, informar o(s) nome(s) do(s) medicamento(s), a dose diária de cada um e o preço médio (se conhecido o preço) ou um previsto. É necessário também informar a quantidade de comida que as pessoas consomem por dia, bem como quais alimentos essenciais para a preparação das respectivas refeições diárias (arroz, feijão, carne, verduras) e seus respectivos preços (médio ou previsto). Há ainda os gastos com produtos de limpeza, seja ele geral(desinfetantes, sabão para roupas etc) ou pessoal (sabonetes, pasta de dente, etc), informar também o preço médio ou previsto. Para a compra dos produtos, é necessário conhecer os fornecedores. Fornecedores possuem nome e quais produtos eles entregam, podendo ter o(s) produto(s) em estoque ou não.

4.PROTOTIPAÇÃO, PERGUNTAS A SEREM RESPONDIDAS E TABELA DE DADOS

4.1 RASCUNHOS BÁSICOS DA INTERFACE (MOCKUPS)

Protótipo de telas feito para o sistema "Provisoes de Emergencia" (Arquivo .PDF)

4.2 QUAIS PERGUNTAS PODEM SER RESPONDIDAS COM O SISTEMA PROPOSTO?

O Sistema "Provisões de Emergência" precisa inicialmente dos seguintes relatórios:

  • Relatório listando todos os produtos (bens de consumo) de determinado grupo familiar.
  • Relatório listando o preço (individual e total) dos produtos de cada grupo familiar.
  • Relatório listando a quantidade de cada produto necessário de cada grupo familiar.
  • Relatório listando quais produtos estão disponíveis para ser entregues por determinado fornecedor.
  • Relatório listando qual tipo de produto está sendo mais requisitado nos grupos familiares.
  • Relatório listando qual produto está sendo mais requisitado nos grupos familiares.
  • Relatório listando as pessoas de cada grupo familiar.
  • Relatório listando quais produtos cada pessoa está consumindo.
  • Relatório listando todos os produtos cadastrados ordenando pelo tipo.

4.3 TABELA DE DADOS DO SISTEMA:

Tabela contendo exemplos de dados do sistema "Provisões de Emergência" (Arquivos .xlsx)

5.MODELO CONCEITUAL

Alt text

5.1 Validação do Modelo Conceitual

PedidON: Thiago da Costa Freitas, Eduarda Simões
Observações feitas pelos integrantes: Se o relaciomento "Consome" não deveria ser uma tabela associativa.

ATVGen: Matheus Costa
Observações feitas pelos integrantes: Não precisaria do endereço do fornecedor e da pessoa? Incluindo assim, algo com geolocalização.

Observações em análise.

5.2 Descrição dos dados

GRUPO_FAMILIAR: Tabela que armazena as informações referentes ao grupo familiar que determinada pessoa pertence.
cod_grupo-familiar: Campo do tipo inteiro que é utilizado para identificar determinado grupo familiar que a pessoa está inserida.
nome_grupo_familiar: Campo do tipo string que nomeia determinado grupo familiar.

PESSOA: Tabela que armazena as informações referentes à pessoa.
cod_pessoa: Campo do tipo inteiro que identifica determinada pessoa.
fk_cod_grupo_familiar: Chave estrangeira do tipo inteiro que identifica à qual grupo familiar essa pessoa está inserida.
nome_pessoa: Campo do tipo varchar utilizado para armazenar o nome de cada pessoa.
cpf: Campo do tipo varchar que armazena o número de cadastro de pessoa física de cada pessoa.
data_nascimento: Campo do tipo date que armazena a data de nascimento da pessoa.

PESSOA_CONSOME: Tabela que armazena as informações referentes ao consumo de cada pessoa.
cod_pessoa: Campo do tipo inteiro que identifica a tupla contendo as informações de consumo de cada pessoa.
fk_cod_produto: Chave estrangeira do tipo inteiro que identifca qual produto a pessoa está consumindo.
fk_cod_pessoa: Chave estrangeira do tipo inteiro que identifica qual pessoa está consumindo determinado produto.
quantidade_produto: Campo do tipo float que identificar o quanto aquela pessoa está consumindo determinado produto.

FORNECEDOR: Tabela que armazena as informações dos fornecedores cadastrados.
cod_fornecedor: Campo do tipo inteiro que identifica cada fornecedor no sistema.
nome_fornecedor: Campo do tipo varchar que nomeia cada fornecedor disponível no sistema.

FORNECEDOR_PRODUTO: Tabela que armazena as informações referentes a qual produto cada fornecedor fornece.
cod_fornecedor_produto: Campo do tipo inteiro que identifica a tupla contendo as informações do fornecimento de cada produto.
fk_cod_fornecedor: Chave estrangeira do tipo inteiro que identifica qual fornecedor está fornecendo determinado produto.
fk_cod_produto: chave estrangeira do tipo inteiro que identifica qual produto está sendo fornecido.

PRODUTO: Tabela que armazena as informações referentes à produto.
cod_produto: Campo do tipo inteiro que identifica cada produto no sistema.
fk_cod_tipo_produto: Chave estrangeira do tipo inteiro que identifica o tipo do produto.
preco_produto: Campo do tipo float que armazena o preco aproximado de um produto.
nome_produto: Campo do tipo varchar que nomeia cada produto.

TIPO_PRODUTO: Tabela que armazena as informações refentes ao tipo de produto.
cod_tipo_produto: Campo do tipo inteiro que identifica o tipo de produto.
nome_tipo_produto: Campo do tipo varchar que nomeia cada tipo de produto.

6 MODELO LÓGICO

Alt text

7 MODELO FÍSICO

create table GRUPO_FAMILIAR(
	cod_grupo_familiar SERIAL primary key not null,
	nome_grupo_familiar varchar(30) not null
);


create table PESSOA(
	cod_pessoa SERIAL primary key not null,
	fk_cod_grupo_familiar integer not null,
	nome_pessoa varchar(50) not null,
	cpf varchar(11) not null,
	data_nascimento date not null
);

create table PESSOA_CONSOME(
	cod_pessoa_consome SERIAL primary key not null,
	fk_cod_produto integer not null,
	fk_cod_pessoa integer not null,
	quantidade_produto float not null
);

create table FORNECEDOR(
	cod_fornecedor SERIAL primary key not null,
	nome_fornecedor varchar(30) not null
);

create table FORNECEDOR_PRODUTO(
	cod_fornecedor_produto SERIAL primary key not null,
	fk_cod_fornecedor integer not null,
	fk_cod_produto integer not null
);

create table PRODUTO(
	cod_produto SERIAL primary key not null,
	fk_cod_tipo_produto integer not null,
	preco_produto float not null,
	nome_produto varchar(40) not null
);

create table TIPO_PRODUTO(
	cod_tipo_produto SERIAL primary key not null,
	nome_tipo_produto varchar(30) not null
);

alter table PESSOA
add foreign key(fk_cod_grupo_familiar) references GRUPO_FAMILIAR(cod_grupo_familiar);

alter table PESSOA_CONSOME
add foreign key(fk_cod_produto) references PRODUTO(cod_produto),
add foreign key(fk_cod_pessoa) references PESSOA(cod_pessoa);

alter table FORNECEDOR_PRODUTO
add foreign key(fk_cod_fornecedor) references FORNECEDOR(cod_fornecedor),
add foreign key(fk_cod_produto) references PRODUTO(cod_produto);

alter table PRODUTO
add foreign key(fk_cod_tipo_produto) references TIPO_PRODUTO(cod_tipo_produto);

8 INSERT APLICADO NAS TABELAS DO BANCO DE DADOS

Script de exclusão, criação da estrutura e inserção dos dados (arquivo SQL)

9 TABELAS E PRINCIPAIS CONSULTAS

9.1 CONSULTAS DAS TABELAS COM TODOS OS DADOS INSERIDOS (Todas)

Open In Colab

SEGUNDA ENTREGA: Itens 9.2 até o 9.10

Open In Colab

10 RELATÓRIOS E GRÁFICOS

Open In Colab

11 AJUSTES DA DOCUMENTAÇÃO, CRIAÇÃO DOS SLIDES E VÍDEO PARA APRESENTAÇAO FINAL

Slides da Apresentação - Modelo Pecha Kucha

12 Utilizando banco de dados NoSQL

MongoDB

Open In Colab
Slides de Apresentação - MongoDB

ArangoDB

Open In Colab
Slides de Apresentação - ArangoDB

Comparação entre os dois bancos NoSQL

Slides de Apresentação - Comparação entre os dois bancos NoSQL

Docente da Disciplina

Moises Savedra Omena

Observações - Nota

Não apenas esse projeto recebeu nota máxima mas como também a soma das notas do semestre inteiro desse discente.
De 0 a 100, nota 100.

About

Realizado durante a disciplina de Banco de Dados (2020/1) do curso Bacharelado em Sistemas de Informação (BSI) do IFES- Campus Serra.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Jupyter Notebook 100.0%