Anda di halaman 1dari 13

Faculdade Anhanguera

Programao em Banco de Dados








Santa Brbara dOeste
2013



Faculdade Anhanguera








Programao em Banco de Dados


Amanda Neves RA: 4826915499
Tatiane J. Alves RA: 3730723623

Prof: Luiz Barreto




Santa Brbara dOeste
2013







SUMRIO
ETAPA 3___________________________________________________________________________1
Passo 1____________________________________________________________________ 1, 2, 3
Passo2_________________________________________________________________________ 3
Passo3_______________________________________________________________________ 3, 4
ETAPA 4________________________________________________________ ___________________ 4
Passo1_______________________________________________________________________ 4, 5
Passo 2______________________________________________________________________ 5, 6
ETAPA 5___________________________________________________________________________ 7
Passo1_____________________________________________________ __________________ 7, 8
Passo2_______________________________________________________________________ 8, 9
Concluso_______________________________________________________________________ 10
1

Etapa 3

Foram feito os comandos necessrios para a criao de Triggers para o monitoramento das
tabelas do banco de dados Estoque.

Passo 1
Foram criadas 6 Triggers, para cada tabela foram feitas Triggers que armazenassem na tabela
Ocorrencias qualquer alterao feita nas outras tabelas do banco de dados(INSERT,
UPDATE e DELETE). Para criarmos essas Triggers foram executados os seguintes
comandos:

-- TRIGGER DE INSERT DA TABELA PRODUTO
CREATE TRIGGER Insert_Produto AFTER INSERT ON Produto FOR EACH ROW
INSERT INTO Ocorrencias
(codigo_produto,descricao,unidade,categoria,valor_unit,operacao,usuario_logado,data_ocorr
ncia)
VALUES (new.codigo_produto,new.descricao, new.unidade, new.codigo_categoria,
new.valor_unit, 'I',user(),now());

-- TRIGGER DE UPDATE DA TABELA PRODUTO
CREATE TRIGGER Update_Produto AFTER UPDATE ON Produto FOR EACH ROW
INSERT INTO Ocorrencias
(codigo_produto,descricao,unidade,categoria,valor_unit,operacao,usuario_logado,data_ocorr
ncia)
2

VALUES (old.codigo_produto,old.descricao, old.unidade, old.codigo_categoria,
old.valor_unit, 'U',user(),now());

-- TRIGGER DE DELETE DA TABELA PRODUTO
CREATE TRIGGER Delete_Produto AFTER DELETE ON Produto FOR EACH ROW
INSERT INTO Ocorrencias
(codigo_produto,descricao,unidade,categoria,valor_unit,operacao,usuario_logado,data_ocorr
ncia)
VALUES (old.codigo_produto,old.descricao, old.unidade, old.codigo_categoria,
old.valor_unit, 'D',user(),now());

-- TRIGGER DE INSERT DA TABELA CATEGORIA
CREATE TRIGGER Insert_Categoria AFTER INSERT ON Categoria FOR EACH ROW
INSERT INTO Ocorrencias(categoria,descricao,operacao,usuario_logado,data_ocorrencia)
VALUES (new.codigo_categoria,new.descricao,'I',user(),now());

-- TRIGGER DE UPDATE DA TABELA CATEGORIA
CREATE TRIGGER Update_Categoria AFTER UPDATE ON Categoria FOR EACH ROW
INSERT INTO Ocorrencias(categoria,descricao,operacao,usuario_logado,data_ocorrencia)
VALUES (old.codigo_categoria,old.descricao,'U',user(),now());

-- TRIGGER DE DELETE DA TABELA CATEGORIA
CREATE TRIGGER Delete_Categoria AFTER DELETE ON Categoria FOR EACH ROW
3

INSERT INTO Ocorrencias(categoria,descricao,operacao,usuario_logado,data_ocorrencia)
VALUES (old.codigo_categoria,old.descricao,'D',user(),now());

Passo 2
Agora vai ser realizado quinze comandos aleatrios de insero, atualizao e excluso de
registros na tabela Produto, todos esses comandos devero gerar a criao de novas tuplas na
tabela Ocorrencias, que iro registrar alteraes feitas nas tabelas Produto e Categoria.
INSERT INTO Produto VALUES (202020,'Goiaba','Kg',312,2.20);
UPDATE Produto SET valor_unit = 2.50 WHERE codigo_produto = 202020;
DELETE FROM Produto WHERE codigo_produto = 202020;
INSERT INTO Produto VALUES (303030,'Frango','Kg',231,7.50);
UPDATE Produto SET valor_unit = 7.20 WHERE codigo_produto = 303030;
INSERT INTO Produto VALUES (3232321,'Creme de Leite','Unidade',123,1.70);
UPDATE Produto SET valor_unit = 7.25 WHERE codigo_produto = 303030;
DELETE FROM Produto WHERE codigo_produto = 303030;
UPDATE Produto SET valor_unit = 1.80 WHERE codigo_produto = 3232321;
DELETE FROM Produto WHERE codigo_produto = 3232321;
INSERT INTO Produto VALUES (333333,'Uva','Kg',312,4.50);
INSERT INTO Produto VALUES (1111222,'Doce de Leite','Unidade',132,5.00);
UPDATE Produto SET valor_unit = 4.30 WHERE codigo_produto = 333333;
DELETE FROM Produto WHERE codigo_produto = 333333;
DELETE FROM Produto WHERE codigo_produto = 1111222;

4

Passo 3
Agora, basta executarmos um comando SELECT na tabela Ocorrencias, e todas as
alteraes na tabela Produto podero ser visualizadas:
SELECT *FROM ocorrencias;

Etapa 4

Passo 1
Uma consulta em um banco de dados uma busca por informaes onde dados sero
retornados ao usurio de alguma forma.
Existem diversas tcnicas para realizar-se uma consulta em um banco de dados. Onde o
SGBD procura a melhor forma de recuperar as informaes trabalhando em conjunto com os
profissionais da rea, melhorando assim o desempenho da consulta, todo esse processo
chamado de otimizao de consultas.
Nesse passo do trabalho, sero estudados dois mecanismos que o SGBD possui, um deles o
scanner que identifica os cdigos da linguagem SQL, os nomes dos atributos e de relaes, e
o outro o parser que verifica toda a sintaxe de uma consulta.

-- SELECT CONFORME O PASSO 3 DA ETAPA 1
SELECT c.descricao AS 'descricao da categoria', sum(p.valor_unit) AS 'somatrio de todos
os itens de cada categoria'
FROM Produto p, Categoria c
WHERE p.codigo_categoria = c.codigo_categoria
5

GROUP BY c.descricao
ORDER BY sum(p.valor_unit) desc;

Como exemplo temos uma consulta referente ao passo 3 da etapa 1 do trabalho, nessa
consulta, o scanner ser responsvel por verificar, examinar os smbolos da linguagem
(SELECT, FROM, WHERE, GROUP BY, ORDER BY), o nome dos atributos, se eles esto
coincidindo com os nomes que constam nas tabelas, e os relacionamentos entre as tabelas
necessrios para o funcionamento da consulta. J o parser ir analisar a sintaxe da consulta,
por exemplo, se a ordem desses comandos fosse trocada, a consulta no funcionaria, ou
geraria um resultado indesejado, como inverter a ordem do GROUP BY por ORDER BY,
nesse caso isso geraria um erro, porque necessariamente o GROUP BY deve vir antes do
ORDER BY, ou at mesmo se a clusula do GROUP BY fosse omitida, isso tambm geraria
um erro, porque funes de agregao como o SUM utilizado no comando exigem a
utilizao do GROUP BY, aps essa anlise, o parser transforma esse conjunto de comandos
em um estado binrio.

Passo 2
O processo de otimizao de dados ocorre sempre que registros de um banco de dados so
recuperados, ou seja, sempre que uma consulta executada, esse processo comea com a
verificao e anlise dos comandos, essa verificao realizada pelo scanner e pelo parser,
que foram estudados no passo anterior do trabalho, depois desse processo ocorre a validao
da consulta, com a consulta validada, o SGBD deve ento planejar seu plano de execuo,
tomando como base vrios fatores como ndices de cada tabela e seus relacionamentos, com
6

isso a consulta compilada e os dados desejados so recuperados.
Dependendo da estrutura do banco de dados, esse processo de otimizao de consultas pode
diminuir consideravelmente seu tempo de resposta, melhorando o desempenho das consultas,
existem algumas regras que podem ser adotadas em um banco de dados para que essas
consultas sejam retornadas no menor tempo possvel, entre elas nosso grupo destacou
algumas como a criao de ndices nas colunas das tabelas que mais so consultadas, isso
auxilia na busca do SGBD por dados, a utilizao das chaves primrias das tabelas
relacionadas na consulta, o uso de consultas aninhadas deve ser adotado somente em situaes
onde realmente seja necessrio, alm disso, a normalizao uma tcnica fundamental em um
banco de dados bem desenvolvido e estruturado e sempre deve ser utilizada.
No banco de dados Estoque proposto no trabalho, algumas medidas poderiam ser adotadas
visando a sua melhor operao, como exemplo, a tabela Ocorrencias no possui chave
primria, ela no possui relacionamentos com as outras tabelas, ela simplesmente armazena as
alteraes feitas no banco de dados, mas futuramente, se caso essa tabela se relacionasse com
as outras tabelas, a ausncia de uma chave primria dificultaria esse relacionamento. A
criao de ndices tambm poderia ser usada em alguns casos, diminuindo o tempo de espera
do usurio por dados, pois a busca por registros em uma tabela seria mais simples com a
utilizao de ndices, enfim esses so alguns dos recursos que poderiam ser adotados nesse
banco de dados, esses recursos no melhorariam tanto o seu desempenho por se tratar de um
banco de dados pequeno, com poucos registros, mas essas atitudes em grandes organizaes
fazem a diferena.


7

Etapa 5

Passo 1
Um Data Warehouse um depsito de dados, onde a base de dados de vrios sistemas usados
em uma organizao so todos armazenados em um mesmo local, em um Data Warehousea
perspectiva e diretrizes de um banco de dados transacional so transformadas, a estrutura de
um Data Warehouse diferente e nesses depsitos de dados a redundncia permitida, e
muito utilizada.
A estrutura de um Data Warehouse basicamente composta por uma tabela principal,
chamada de tabela fato, e de vrias outras tabelas chamadas de tabelas dimensionais, a tabela
fato possui as principais informaes sobre cada tabela dimensional. E dependendo da busca,
da consulta, uma dimenso do Data Warehouse pesquisada, sempre atravs da tabela fato e
de uma ou mais tabelas dimensionais, lembrando que esses depsitos de dados possuem dados
antigos de uma empresa, e permitem somente a leitura desses dados.
A redundncia em um Data Warehouse permitida devido ao fato de que as consultas nele
devem ser rpidas, e quanto menos ligaes, relacionamentos, entre as tabelas existir, mais
rpido ser o retorno das consultas, ou seja, devemos poupar a utilizao de junes entre
tabelas para consultar determinados dados.
A grande vantagem de uma empresa utilizar esse recurso est na consulta de dados histricos
que muitas vezes podem auxiliar e muito no mercado atual. Porm a implantao de um Data
Warehouserequer alto investimento em tecnologia e segurana.
Em relao ao desafio, suponhamos que a empresa COMABEM Ltda. possua mais de um
sistema utilizando vrios bancos de dados, esses bancos de dados poderiam ser armazenados
8

em um Data Warehouse, assim todos os dados da empresa estariam juntos, isso facilitaria
possveis consultas de mercado, como por exemplo, atravs do Data Warehouse, seria mais
eficaz descobrirmos quais produtos geram mais lucros para a empresa, quais os produtos mais
vendidos, quais produtos que no esto retornando o lucro esperado, e quais produtos mais
agradam a clientela.
O Data Warehousepode ser adotado em vrias reas, por exemplo, imagine uma fbrica de
refrigerantes antiga e j consolidada no mercado, atravs do Data Warehouse, poderamos
descobrir a idade mdia de seus principais clientes, o seu nvel de satisfao no mercado, tudo
isso atravs de seus dados histricos armazenados no Data Warehouse.
Enfim, atravs desse recurso, as empresas podem ter decises apoiadas em dados consistentes,
atravs de dados histricos, estudos realizados podem gerar concluses que sirvam de
orientao para os planos de uma organizao, com investimentos nessa tecnologia os lucros
podem aumentar de forma muito maior e mais rpida.

Passo 2
Uma ferramenta utilizada em banco de dado o Data Mining, ferramenta essa que gera
padres, e estatsticas sobre bases de dados, atravs dessa ferramenta, podem ser gerados
informaes estatsticas sobre determinados dados, isso auxilia em uma viso ampliada dos
negcios de uma empresa.
No banco de dados da empresa COMABEM Ltda. poderiam ser analisados dados como:
aproximadamente 28% dos produtos cadastrados na empresa so laticnios, ou,
aproximadamente 35% dos produtos cadastrados na empresa possuem valor unitrio maior
que R$1,00 e menor que R$2,00. Atravs dessas informaes vrias idias ou conceitos
9

poderiam ser criados.
Atravs do Data Mining, as empresas podem planejar melhor seus investimentos, e
desenvolver estratgias que atraiam mais clientes.




















10

Concluso

Conclumos com esse trabalho, que um banco de dados bem organizado fundamental, tanto
no momento de interpret-lo como em um desenvolvimento de um sistema.
Atravs de diversos mecanismos, podemos facilitar a interpretao do usurio, ou at mesmo
criar um banco de dados mais seguro, com esses detalhes, o banco de dados fica mais
eficiente e confivel, e isso necessrio para qualquer sistema. O ATPS tambm tratou de
temas relacionados a otimizao de consultas, essa parte do ATPS foi muito importante, pois
atualmente, no podemos nos preocupar somente com segurana e confiabilidade de dados,
mas tambm devemos lembrar de fatores indispensveis como desempenho, pois um banco de
dados otimizado fundamental para qualquer empresa. Nesse trabalho tendncias de
tecnologias utilizadas no mercado tambm foram discutidas, como Data Warehousee Data
Mining, onde informaes importantes so geradas atravs dos dados da prpria empresa.
Alm disso, o ATPS foi uma importante ferramenta para aprendizado, com etapas prticas
que nos induziu a termos mais vontade de aprender e de executarmos tudo aquilo visto em
sala.