You are on page 1of 7

Introduo

Neste trabalho, veremos vrios conceitos utilizados em banco de dados, desde simples consultas, at estruturas mais complexas, como foi pedido no ATPS, criaremos um banco de dados com suas devidas tabelas, e trabalharemos com a manipulao de seus registros, alm de abordarmos vrios recursos utilizados no processo de otimizao de consultas e conceitos como Data Warehouse e Data Mining.

Desenvolvimento Etapa 1

Nessa primeira etapa do trabalho o grupo criou as tabelas, inseriu dados nessas tabelas e fez algumas consultas no banco de dados conforme foi pedido no ATPS, o software MySQL Workbench foi utilizado para executar todas as instrues pedidas. Primeiramente, criamos um novo banco de dados com o nome Estoque, e j o definimos como o banco de dados que ser usado ao longo do ATPS, atravs de dois comandos:

-- BANCO DE DADOS DO ATPS CREATE DATABASE Estoque; USE Estoque; Aps definirmos o banco de dados Estoque como o banco de dados que seria usado, comeamos a criar as tabelas, a seguir temos o cdigo de criao das trs tabelas que sero utilizadas no ATPS. -- CRIANDO A TABELA CATEGORIA PRIMEIRO PORQUE NAO TEM CHAVE ESTRANGEIRA CREATE TABLE Categoria( codigo_categoria INTEGER(3)PK NOT NULL, descricao VARCHAR(50) NOT NULL,

PRIMARY KEY (codigo_categoria));

-- CRIANDO A TABELA PRODUTO CREATE TABLE Produto(codigo_produto VARCHAR(10)PK, descricao VARCHAR(50) NOT NULL, unidade VARCHAR(10) NOT NULL, codigo_categoria INTEGER(3)PK NOT NULL, valor_unit DECIMAL(10,2) NOT NULL, PRIMARY KEY (codigo_produto), FOREIGN KEY (codigo_categoria) REFERENCES Categoria(codigo_categoria));

Observe que o nosso grupo optou pela criao da tabela categoria, primeiro, porque ela no tem chave estrangeira, e logo depois criamos as demais tabelas com os devidos relacionamentos. Atravs do comando DESC <nome_tabela> podemos mostrar como ficou a estrutura das duas tabelas criadas:

DESC categoria;

DESC produto;

Passo 1 Com as tabelas criadas, fizemos o que o primeiro passo da primeira etapa diz, inserimos 6 registros ou tuplas na tabela Categoria sendo que desses 6 registros um deveria ser da categoria Laticnios, e depois inserimos 15 tuplas de produtos, cada produto pertencendo a sua respectiva categoria, sendo que desses 15 registros, 5 so da categoria Laticnios. Logo abaixo esto os cdigos necessrios para a insero desses registros nas tabelas: -- INSERINDO 6 TUPLAS NA TABELA CATEGORIA.

INSERT INTO categoria VALUES (100, 'Laticinios'); INSERT INTO categoria VALUES (200, 'Doces'); INSERT INTO categoria VALUES (300, 'Carne'); INSERT INTO categoria VALUES (400, 'Cereais'); INSERT INTO categoria VALUES (500, 'Bebidas'); INSERT INTO categoria VALUES (600, 'Frutas');

Para comprovar que esses 6 registros foram realmente inseridos na tabela Categoria, fizemos um SELECT *FROM categoria: select * from categoria;

-- INSERINDO 15 TUPLAS, DESSAS 5 SAO DA CATEGORIA LATICNIOS. INSERT INTO produto VALUES (7898000000001, 'Manteiga','Unidade',100, 5,49); INSERT INTO produto VALUES (7898000000002, 'Mussarela','Unidade',100, 15,50);

INSERT INTO produto VALUES (7898000003, 'Queijo prato','Unidade',100, 13,00); INSERT INTO produto VALUES (7898000004, 'Requeijao','Unidade',100, 5,00); INSERT INTO produto VALUES (7898000005, 'Leite','Unidade',100, 4,00); INSERT INTO produto VALUES (7898000006, Chocolate','Unidade',200, 1,49); INSERT INTO produto VALUES (7898000007, 'Sonho de Valsa','Unidade',200, 0,49); INSERT INTO produto VALUES (7898000008, 'Picanha','Unidade',300, 13,50); INSERT INTO produto VALUES (7898000009, 'Patinho','Unidade',300, 8,99); INSERT INTO produto VALUES (7898000010, 'Amendoin','Unidade',400, 5,00); INSERT INTO produto VALUES (7898000011, 'Farelo de Aveia','Unidade',400, 2,99); INSERT INTO produto VALUES (7898000012, 'Coca-Cola','Unidade',500, 3,00); INSERT INTO produto VALUES (7898000013, 'Agua Mineral','Unidade',500, 2,00); INSERT INTO produto VALUES (7898000014, 'Manga','Unidade',600, 2,50); INSERT INTO produto VALUES (7898000015, 'Banana','Unidade',600, 1,50); Para comprovar que esses 15 registros foram realmente inseridos na tabela Produto, fizemos um SELECT *FROM produto: select *from produto; Observe que como foi pedido, dos 15 registros, 5 pertencem a categoria Laticnios .

Passo 2 Nessa parte do ATPS foi pedido um comando que gere uma lista de todos os produtos, com as colunas cdigo_produto, descricao, unidade e categoria, sendo que o cdigo da categoria no deve ser mostrado, mas sim o nome da categoria que o produto est cadastrado.

-- SELECT CONFORME O PASSO2 DA ETAPA1 SELECT p.codigo_produto, p.descricao, p.unidade, c.descricao AS 'descricao categoria' FROM Produto p, Categoria c WHERE p.codigo_categoria = c.codigo_categoria ORDER BY p.descricao;

Como resposta ao comando SELECT descrito, foi gerada uma consulta com os campos pedidos, alm de informar a categoria de cada produto.

Passo 3 Nesse passo, so pedidos dois comandos, o primeiro deve realizar o somatrio de todos os produtos de determinada categoria e agrup-los por categoria, listando esses valores em ordem decrescente.

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 GROUP BY c.descricao ORDER BY sum(p.valor_unit) desc;

Como resposta ao comando SELECT descrito, foi gerada uma consulta com os campos descricao da categoria e somatrio de todos os itens de cada categoria, sendo que os registros so ordenados em ordem decrescente de acordo com o somatrio.

Passo 4 O comando pedido nesse passo consiste em uma consulta que lista a quantidade de produtos cadastrados agrupados por categoria.

SELECT c.descricao AS 'descricao da categoria', count(p.codigo_categoria) AS 'quantidade de produtos cadastrados' FROM Produto p, Categoria c WHERE p.codigo_categoria = c.codigo_categoria GROUP BY c.descricao;

Como resposta ao comando SELECT descrito, foi gerada uma consulta com as colunas descricao da categoria e quantidade de produtos cadastrados.

Etapa 2

Nessa etapa, a equipe aplicou alguns comandos de manipulao de dados, como atualizaes de registros nas tabelas (UPDATE) e tambm excluso de registros (DELETE), alm de criarmos uma View, nos passos seguintes do ATPS descreveremos o cdigo necessrio para a execuo desses comandos.

Passo 1 Crie e execute uma instruo SQL que atualize o valor unitrio dos produtos pertencentes a categoria Laticnios, reajustando-os em 10% do valor atual. O primeiro passo dessa etapa requer a execuo de um comando que atualize o valor unitrio de todos os produtos da categoria Laticnios, com um aumento de 10% sobre o valor atual. Podemos fazer isso atravs do seguinte comando:

UPDATE Produto SET valor_unit = valor_unit + (valor_unit * (10/100)) WHERE codigo_categoria = 123;

Aps a execuo do comando UPDATE descrito acima e com um comando de seleo de dados na tabela produto, teremos o seguinte resultado:

SELECT p.codigo_produto, p.descricao AS produto, p.valor_unit, c.descricao AS categoria FROM produto p, categoria c WHERE p.codigo_categoria = c.codigo_categoria AND c.descricao = 'Laticnios';

Passo 2 Crie e execute uma instruo SQL que remova o produto de maior valor da categoria Laticnios constante na tabela Produto do banco de dados Estoque. Agora iremos remover o produto de maior valor unitrio da categoria Laticnios da prpria tabela Produto. Para executarmos essa tarefa, utilizamos o seguinte cdigo:

DELETE FROM Produto WHERE codigo_categoria = 123

ORDER BY valor_unit DESC LIMIT 1; Atravs desse comando, o produto Queijo da categoria Laticnios deveria ser eliminado, para comprovarmos isso executamos um SELECT na tabela produto:

SELECT *FROM Produto;

Passo 3 Crie uma instruo SQL que cria uma View chamada Ver_Produto que apresente os campos codigo_produto, descricao e unidade da tabela Produto do banco de dados Estoque, de todos os produtos cadastrados. Nesse passo, criaremos uma View chamada Ver_Produto, que dever conter os campos cdigo_produto, derscricao e unidade da tabela Produto, para criar essa View, ns executamos o seguinte comando:

CREATE VIEW Ver_Produto AS SELECT codigo_produto, descricao , unidade FROM Produto;

Aps a criao dessa View, basta executarmos o comando SELECT da prpria View, para conseguirmos visualizar o que foi pedido:

SELECT *FROM Ver_Produto;

Passo 4 Execute a View chamada Ver_Produto criada no passo anterior. Aps a execuo da View, descreva a diferena em relao execuo de uma instruo simples. Com a criao de uma View, o comando de SELECT ficou muito mais simples para o usurio, com uma instruo qualquer, um pouco mais complexa, a possibilidade de erros seria muito maior, j com o uso da View, em poucas palavras foi feita uma consulta eficiente, prtica e simples.

You might also like