Professor: Elias Ferreira
Alunos: Luis Henrique, Edy Laus, Igor Pereira, Waldir Junior
Gestão da Tecnologia da Informação - Módulo IV - Matutino
Especificação dos Requisitos de Dados
I.
Introdução
Esse documento exibe todas as especificações necessárias para o banco de
dados da aplicação como entidades, campos e tipos dos atributos, os quais
foram analisados para que a especificação dos requisitos de dados
contemplasse a possibilidade de análise do nível de depreciação dos ativos
no decorrer do tempo.
O documento Contém:

Modelo Conceitual

Modelo Lógico

Scripts SQL

Consultas utilizadas
II.
Modelo Conceitual
III.
Modelo Lógico
Produto
Atributo
id_prod
uto
nome
Tipo
SERIAL
VARCH
AR
Taman
ho
30
Decim
ais
Restriç
ões
NOT
NULL
NOT
NULL
1
descric
ao
TEXT
Movimentacao
Taman
Atributo Tipo
ho
id_mov
id_prod
uto
tipo_mo
v
SERIAL
INTEG
ER
data
quantid
ade
DATE
INTEG
ER
NUME
RIC
INTEG
ER
valor_u
saldo
CHAR
1
10
Decim
ais
Restriç
ões
NOT
NULL
NOT
NULL
NOT
NULL
NOT
NULL
NOT
2 NULL
IV.
Modelo Físico
V.
SQL's Utilizadas nas Aplicação

Salvar Entrada de produtos
2
INSERT INTO produto(nome,descricao) VALUES(?,?);
INSERT INTO movimentacao(id_produto) SELECT id_produto FROM produto
WHERE id_produto = (SELECT MAX(id_produto) FROM produto);
UPDATE movimentacao SET tipo_mov = ?, data = ?, quantidade = ?, valor_u
= ?, saldo = ? WHERE id_mov = (SELECT MAX(id_mov) FROM
movimentacao);

Salvar Saida de produtos
INSERT INTO movimentacao (id_produto,tipo_mov,data,quantidade,valor_u)
VALUES ((SELECT MAX(produto.id_produto) FROM produto INNER JOI
movimentacao ON produto.id_produto = movimentacao.id_produto WHERE
nome LIKE ?AND movimentacao.saldo > 0 ), ?, ?, ?, (SELECT valor_u FROM
movimentacao WHERE id_produto = (SELECT
MAX(produto.id_produto)
FROM produto INNER JOIN movimentacao ON produto.id_produto =
movimentacao.id_produto WHERE nome LIKE ? AND saldo > 0 AND tipo_mov
= 'E') AND tipo_mov = 'E'));
UPDATE movimentacao SET saldo = (SELECT saldo FROM movimentacao
WHERE id_produto = (SELECT MAX(produto.id_produto) FROM produto
INNER JOIN movimentacao ON movimentacao.id_produto =
produto.id_produto WHERE produto.nome LIKE ? AND
movimentacao.tipo_mov = 'E' AND movimentacao.saldo > 0)AND tipo_mov
= 'E' AND saldo > 0) - (SELECT quantidade FROM movimentacao WHERE
id_mov = (SELECT MAX(id_mov) FROM movimentacao)) WHERE tipo_mov =
'E' AND id_produto =(SELECT MAX(produto.id_produto) FROM produto INNER
JOIN movimentacao ON movimentacao.id_produto = produto.id_produto
WHERE produto.nome LIKE ?AND movimentacao.tipo_mov = 'E' AND
movimentacao.saldo > 0);

Tabela de Entrada
SELECT id_mov, produto.nome, movimentacao.id_produto, tipo_mov, data,
quantidade, valor_u, saldo FROM movimentacao INNER JOIN produto ON
produto.id_produto = movimentacao.id_produto WHERE produto.nome
LIKE ? AND tipo_mov = 'E' ORDER BY id_mov ASC;

Tabela de Saída
SELECT id_mov, produto.nome, movimentacao.id_produto, tipo_mov, data,
quantidade, valor_u, saldo FROM movimentacao INNER JOIN produto ON
produto.id_produto = movimentacao.id_produto WHERE produto.nome
LIKE ? AND tipo_mov = 'S' ORDER BY id_mov ASC;

Tabela de Saldo
SELECT produto.nome, quantidade,saldo, valor_u FROM movimentacao
INNER JOIN produto ON produto.id_produto = movimentacao.id_produto
WHERE tipo_mov = 'E' AND produto.nome LIKE ? ORDER BY id_mov ASC;

Tabela de Total de Entrada
3
SELECT SUM(quantidade) quantidade, SUM(valor_u) valor_u, SUM(total) total
FROM totalEntrada WHERE nome LIKE ?;

Tabela de Total de Saída
SELECT SUM(quantidade) quantidade, SUM(valor_u) valor_u, SUM(total) total
FROM totalSaida WHERE nome LIKE ?

Tabela de Total de Saldo
SELECT SUM(saldo) saldo, SUM(total) total FROM totalSaldo WHERE nome
LIKE ?;

Verificar qual é o ultimo valor
SELECT saldo FROM estoque_entrada WHERE nome LIKE ? AND saldo > 0
AND id_produto = (SELECT MAX(id_produto) FROM estoque_entrada WHERE
nome LIKE ? AND saldo > 0);

Somar o estoque total do produto
SELECT SUM(saldo) FROM movimentacao INNER JOIN produto ON
produto.id_produto = movimentacao.id_produto WHERE tipo_mov = 'E' AND
produto.nome = ?;

View para estoque de entrada
CREATE OR REPLACE VIEW estoque_entrada AS SELECT
movimentacao.id_mov, produto.id_produto, movimentacao.data,
movimentacao.tipo_mov, produto.nome, movimentacao.valor_u,
movimentacao.quantidade, movimentacao.saldo FROM produto JOIN
movimentacao ON produto.id_produto = movimentacao.id_produto WHERE
movimentacao.tipo_mov = 'E' ORDER BY movimentacao.id_mov;

View para estoque de saída
CREATE OR REPLACE VIEW estoque_saida AS SELECT movimentacao.id_mov,
produto.id_produto, movimentacao.data, movimentacao.tipo_mov,
produto.nome, movimentacao.valor_u, movimentacao.quantidade,
movimentacao.saldo FROM produto JOIN movimentacao ON
produto.id_produto = movimentacao.id_produto WHERE
movimentacao.tipo_mov = 'S' ORDER BY movimentacao.id_mov;

View para Total da Tabela Entrada
CREATE OR REPLACE VIEW totalentrada AS SELECT produto.id_produto,
produto.nome, movimentacao.quantidade, movimentacao.valor_u,
movimentacao.quantidade * movimentacao.valor_u AS total FROM
movimentacao JOIN produto ON produto.id_produto =
movimentacao.id_produto WHERE movimentacao.tipo_mov = 'E' ORDER BY
produto.id_produto;

View para Total da Tabela Saída
CREATE OR REPLACE VIEW totalsaida AS SELECT produto.id_produto,
produto.nome, movimentacao.quantidade, movimentacao.valor_u,
4
movimentacao.quantidade * movimentacao.valor_u AS total FROM
movimentacao JOIN produto ON produto.id_produto =
movimentacao.id_produto WHERE movimentacao.tipo_mov = 'S' ORDER BY
produto.id_produto;

View para Total da Tabela Saldo
CREATE OR REPLACE VIEW totalsaldo AS SELECT produto.id_produto,
produto.nome, movimentacao.valor_u, movimentacao.saldo,
movimentacao.saldo * movimentacao.valor_u AS total FROM
movimentacao JOIN produto ON produto.id_produto =
movimentacao.id_produto WHERE movimentacao.tipo_mov = 'E' ORDER BY
produto.id_produto;
5
Download

Professor: Elias Ferreira Alunos: Luis Henrique, Edy Laus, Igor