Académique Documents
Professionnel Documents
Culture Documents
So Paulo
2014
0
So Paulo
2014
1
INTRODUO
A atividade a seguir foi desenvolvida, afim de explorar os conhecimentos
adquiridos durante o semestre, sob o carter de atividade prtica, utilizando
todos os conceitos de criao, modelagem, manuteno e administrao de
Banco de Dados Relacional.
Neste documento estaro dispostos os dados sobre os processos de
criao, desenvolvimento de programao avanada (trigger e procedure),
alimentao e testes do mesmo, assim como a query Script de Criao do
Banco de Dados PadariaSonhoMeu.
As informaes aqui dispostas so as finais consolidadas atravs do
desenvolvimento do Projeto com atualizao posterior se necessrio, visto a
necessidade de criao de uma Aplicao Comercial.
SUMRIO
INTRODUO......................................................................................................... 2
SUMRIO................................................................................................................ 3
ETAPA 3................................................................................................................... 4
1. Relatrio 03: Cdigos do BD..................................................................................4
1. 1. Create Database............................................................................................. 4
1. 2. Create Table.................................................................................................. 4
1. 3. Create Trigger............................................................................................... 7
1. 4. Create Procedure.......................................................................................... 14
1. 5. Insert Alimentao........................................................................................ 19
1. 6. Execute Procedure........................................................................................ 20
CONCLUSO......................................................................................................... 22
BIBLIOGRAFIA..................................................................................................... 23
ETAPA 3
Passo 3
1. Relatrio 03: Cdigos do BD.
1. 1. Create Database
CREATE DATABASE PadariaSonhoMeu;
GO
1. 2. Create Table
USE PadariaSonhoMeu;
GO
CREATE TABLE NivelAcesso (
CodNivelAcesso INTEGER IDENTITY NOT NULL,
DescNivelAcesso VARCHAR(20) NOT NULL,
CONSTRAINT pkNivelAcesso PRIMARY KEY (CodNivelAcesso)
);
CREATE TABLE TipoMovimentacao (
TipoMovimento CHAR(1) NOT NULL,
DescTipoMovimento VARCHAR(20) NOT NULL,
CONSTRAINT pkTipoMovimentacao PRIMARY KEY (TipoMovimento)
);
CREATE TABLE Fornecedor (
CodFornecedor INTEGER IDENTITY(1,1) NOT NULL,
NomeFornecedor VARCHAR(50) NOT NULL,
CPF_CNPJFornecedor VARCHAR(15) NOT NULL,
EndFornecedor VARCHAR(30),
NumEndFornecedor INTEGER,
FoneFornecedor NUMERIC(9,0)
CONSTRAINT pkFornecedor PRIMARY KEY (CodFornecedor)
);
CREATE TABLE Entrada (
NumEntrada INTEGER IDENTITY(1,1) NOT NULL,
DTEntrada DATE DEFAULT GETDATE(),
HREntrada TIME DEFAULT GETDATE(),
VLTotalEntrada NUMERIC(11,4) NOT NULL,
CodFornecedor INTEGER NOT NULL,
TipoMovimento CHAR(1) DEFAULT 'E',
CONSTRAINT pkEntrada PRIMARY KEY (NumEntrada),
4
1. 3. Create Trigger
USE PadariaSonhoMeu;
GO
//TABELA Entrada
CREATE TRIGGER tr_Entrada
ON Entrada
FOR INSERT, UPDATE
AS
DECLARE
@NUM INTEGER,
@DATA DATE,
@HORA TIME,
@VALOR NUMERIC(11,4),
@TIPO CHAR(1)
SELECT
@NUM = NumEntrada,
@DATA = DTEntrada,
@HORA = GETDATE(),
@VALOR = VLTotalEntrada,
@TIPO = TipoMovimento
FROM INSERTED
IF EXISTS (SELECT NumMovimentacao
FROM Movimentacao
WHERE NumMovimentacao = @NUM AND TipoMovimento = @TIPO)
UPDATE Movimentacao
SET VLTotalMovimentacao = @VALOR,
HRMovimentacao = @HORA
WHERE NumMovimentacao = @NUM AND TipoMovimento = @TIPO
ELSE
INSERT INTO Movimentacao (NumMovimentacao, DTMovimentacao, HRMovimentacao,
VLTotalMovimentacao, TipoMovimento, Movimento)
VALUES (@NUM, @DATA, @HORA, @VALOR, @TIPO, 'I')
GO
//TABELA Saida
CREATE TRIGGER tr_Saida
ON Saida
FOR INSERT, UPDATE
AS
DECLARE
@NUM INTEGER,
@DATA DATE,
@HORA TIME,
@VALOR NUMERIC(11,4),
@TIPO CHAR(1)
SELECT
@NUM = NumSaida,
@DATA = DTSaida,
@HORA = HRSaida,
@VALOR = VLTotalSaida,
@TIPO = TipoMovimento
FROM INSERTED
IF EXISTS (SELECT NumMovimentacao
FROM Movimentacao
WHERE NumMovimentacao = @NUM AND TipoMovimento = @TIPO)
UPDATE Movimentacao
SET VLTotalMovimentacao = @VALOR,
HRMovimentacao = @HORA
WHERE NumMovimentacao = @NUM AND TipoMovimento = @TIPO
ELSE
INSERT INTO Movimentacao (NumMovimentacao, DTMovimentacao, HRMovimentacao,
VLTotalMovimentacao, TipoMovimento, Movimento)
VALUES (@NUM, @DATA, @HORA, @VALOR, @TIPO, 'I')
GO
10
//TABELA ProdutosEntrada
CREATE TRIGGER tr_EntradaProduto
ON ProdutosEntrada
FOR INSERT, UPDATE
AS
DECLARE
@PRODUTO INT,
@NUM INT,
@QTD NUMERIC(11,4),
@VALORUN NUMERIC(11,4),
@VALORTOTAL NUMERIC(11,4)
SELECT
@PRODUTO = CodProduto,
@NUM = NumEntrada,
@QTD = QTDProduto,
@VALORUN = VLProdUnitario,
@VALORTOTAL = VLProdTotal
FROM INSERTED
UPDATE Entrada
SET VLTotalEntrada = (SELECT SUM(VLProdTotal) FROM ProdutosEntrada WHERE
NumEntrada = @NUM)
WHERE NumEntrada = @NUM;
UPDATE Produto
SET QTDProduto = (QTDProduto + @QTD),
VLProdCusto = @VALORUN
WHERE CodProduto = @PRODUTO
GO
11
//TABELA ProdutosSaida
CREATE TRIGGER tr_SaidaProduto
ON ProdutosSaida
FOR INSERT, UPDATE
AS
DECLARE
@PRODUTO INT,
@NUM INT,
@QTD NUMERIC(11,4),
@VALORUN NUMERIC(11,4),
@VALORTOTAL NUMERIC(11,4)
SELECT
@PRODUTO = CodProduto,
@NUM = NumSaida,
@QTD = QTDProduto,
@VALORUN = VLProdUnitario,
@VALORTOTAL = VLProdTotal
FROM INSERTED
UPDATE Saida
SET VLTotalSaida = (SELECT SUM(VLProdTotal) FROM ProdutosSaida WHERE
NumSaida = @NUM)
WHERE NumSaida = @NUM;
UPDATE Produto
SET QTDProduto = (QTDProduto - @QTD)
WHERE CodProduto = @PRODUTO
GO
12
13
1. 4. Create Procedure
USE PadariaSonhoMeu;
GO
14
15
16
17
18
1. 5. Insert Alimentao
USE PadariaSonhoMeu;
GO
--TABELA FORNECEDOR
INSERT INTO Fornecedor (NomeFornecedor, CPF_CNPJFornecedor, EndFornecedor,
NumEndFornecedor, FoneFornecedor)
VALUES ('Dona Benta', '00000000000110', 'Av do Trigo', 100, 123456789);
INSERT INTO Fornecedor (NomeFornecedor, CPF_CNPJFornecedor, EndFornecedor,
NumEndFornecedor, FoneFornecedor)
VALUES ('Parmalat', '00000000000220', 'Rua das Vacas', 200, 123456789);
INSERT INTO Fornecedor (NomeFornecedor, CPF_CNPJFornecedor, EndFornecedor,
NumEndFornecedor, FoneFornecedor)
VALUES ('Granja Galinha', '00000000000330', 'Travessa Galinha', 300, 123456789);
INSERT INTO Fornecedor (NomeFornecedor, CPF_CNPJFornecedor, EndFornecedor,
NumEndFornecedor, FoneFornecedor)
VALUES ('Unio', '00000000000440', 'Viela dos Doces', 400, 123456789);
--TABELA PRODUTO
INSERT INTO Produto (DescProduto, QTDProduto, UNProduto, VLProdCusto, VLProdVenda,
CodFornecedor)
VALUES ('Farinha de Trigo', 0, 'pct', 1.00, 2.00, 1);
INSERT INTO Produto (DescProduto, QTDProduto, UNProduto, VLProdCusto, VLProdVenda,
CodFornecedor)
VALUES ('Leite Unidade', 0, 'un', 1.00, 2.00, 2);
INSERT INTO Produto (DescProduto, QTDProduto, UNProduto, VLProdCusto, VLProdVenda,
CodFornecedor)
VALUES ('Leite Caixa 12', 0, 'cx', 11.00, 22.00, 2);
INSERT INTO Produto (DescProduto, QTDProduto, UNProduto, VLProdCusto, VLProdVenda,
CodFornecedor)
VALUES ('Ovo Unidade', 0, 'un', 0.15, 0.25, 3);
INSERT INTO Produto (DescProduto, QTDProduto, UNProduto, VLProdCusto, VLProdVenda,
CodFornecedor)
VALUES ('Aucar Unidade', 0, 'un', 1.20, 2.40, 4);
--TABELA TIPO DE MOVIMENTAO
INSERT INTO TipoMovimentacao (TipoMovimento, DescTipoMovimento) VALUES ('C', 'Caixa');
INSERT INTO TipoMovimentacao (TipoMovimento, DescTipoMovimento) VALUES ('E', 'Entrada');
INSERT INTO TipoMovimentacao (TipoMovimento, DescTipoMovimento) VALUES ('S', 'Saida');
--TABELA NIVEL DE ACESSO
INSERT INTO NivelAcesso (DescNivelAcesso) VALUES ('Administrador');
INSERT INTO NivelAcesso (DescNivelAcesso) VALUES ('Gerente');
INSERT INTO NivelAcesso (DescNivelAcesso) VALUES ('Atendente');
--TABELA USUARIO
INSERT INTO Usuario (NomeUsuario, SenhaAcesso, CodNivelAcesso) VALUES ('william', 'admin',
1);
INSERT INTO Usuario (NomeUsuario, SenhaAcesso, CodNivelAcesso) VALUES ('daniel', 'gerente',
2);
INSERT INTO Usuario (NomeUsuario, SenhaAcesso, CodNivelAcesso) VALUES ('matheus', 'super',
3);
INSERT INTO Usuario (NomeUsuario, SenhaAcesso, CodNivelAcesso) VALUES ('mari', 'atend', 3);
19
1. 6. Execute Procedure
USE PadariaSonhoMeu;
GO
/* ADICIONAR UM FORNECEDOR */
-- sp_insertFornecedor @NOME, @CPF_CNPJ, @ENDERECO, @NUMERO, @FONE -EXECUTE sp_insertFornecedor 'Fornecedor', '000000000000550', 'Rua Nova', 100, 26966969
SELECT * FROM Fornecedor
/* ADICIONAR UM PRODUTO DE UM FORNECEDOR */
-- sp_insertProduto @DESC, @QTD, @UN, @VLCUSTO, @VLVENDA, @FORNECEDOR -EXECUTE sp_insertProduto 'Produto do Fornecedor', 0, 'UN', 0.00, 0.00, 5
SELECT * FROM Produto
/* ABRIR CAIXA */
-- sp_AbreCaixa @VALOR -EXECUTE sp_AbreCaixa 1.0
SELECT * FROM Caixa
SELECT * FROM Movimentacao
/* LANAR SANGRIA NO CAIXA */
-- sp_insertSangria @DESCRICAO, @VALOR, @NUMCAIXA -EXECUTE sp_insertSangria 'GASTOS', 1.5, 1 --ENTRADA DE DINHEIRO
EXECUTE sp_insertSangria 'GASTOS', -1.5, 1 --SAIDA DE DINHEIRO
SELECT * FROM Sangria
/* FECHAR CAIXA */
-- sp_FechaCaixa @VALOR, @NUMCAIXA -EXECUTE sp_FechaCaixa 10.0, 1
SELECT * FROM Caixa
SELECT * FROM Movimentacao
/* CRIAR UMA ENTRADA */
-- sp_insertEntrada @NUMFORNECEDOR
EXECUTE sp_insertEntrada 1
SELECT * FROM Entrada
SELECT * FROM Movimentacao
/* INSERE PRODUTOS EM UMA ENTRADA */
-- sp_insertProdutosEntrada @PRODUTO, @NUMENTRADA, @QTD, @VALORUN
EXECUTE sp_insertProdutosEntrada 1, 1, 2, 1.5
SELECT * FROM Produto
SELECT * FROM ProdutosEntrada
SELECT * FROM Entrada
SELECT * FROM Movimentacao
20
21
CONCLUSO
Foram encontrados diversos empecilhos em meio ao desenvolvimento deste Trabalho,
porm com muito esforo e dedicao conseguimos conclui-lo, deste Material tiramos todos
os conceitos de Criao e Manipulao (dados) de Banco de Dados, juntamente com as suas
peculiaridades, informaes que nos auxiliaram no s neste mais em outros trabalhos
desenvolvidos neste Semestre, deste modo conclumos dizendo que o Material se tornou de
certa forma um manual para andamento de nosso aprendizado, junto ao curso.
22
BIBLIOGRAFIA
Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S.. Sistema de Banco de Dados. 6. ed.
Elsevier Campus, 2012.
Heuser, Carlos Alberto. Projeto de Banco de Dados. 4. ed. Sagra&Luzzatto, Porto Alegre,
1999.
Banco
de
Dados
Projeto
e
Programao.
em<http://www.google.com.br/#q=Banco+de+Dados+Projeto+e+Programa
%C3%A7%C3%A3o> Acesso entre. 10/09/2014 e 10/11/2014.
Disponvel
23