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
-- 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.