Um passo a passo para criar no Oracle XE uma tabela virtual que faz cálculos para um relatório de vendas
As tabelas virtuais, também chamadas views, podem ser usadas para poupar trabalho do programador na hora de criar consultas no banco de dados. As views não existem fisicamente — são geradas pelas consultas. Mas, depois de criadas, elas se comportam exatamente como uma tabela de verdade. Assim, as alterações realizadas na view são repassadas para a tabela física envolvida no processo.
As views são muito usadas em bancos de dados complexos, com diversas tabelas que formam conjuntos de dados, relatórios e informações relevantes. São funcionalidades que podem ser encontradas em bancos de dados como PostgreSQL, MS SQL Server, MySQL 5.0 e Oracle 10g Express Edition — ou Oracle XE —, a versão gratuita do poderoso gerenciador da Oracle. Neste tutorial, utilizaremos as views para gerar um relatório de vendas no Oracle XE em sistema operacional Windows. O gerenciador de banco de dados da Oracle possui também versão para Linux, distribuições Debian, Mandriva, Novell, Red Hat e Ubuntu.
1. Instalando
Faça o download do Oracle XE em www.info.abril.com.br/download/4346.shtmle execute o instalador. Apesar de o arquivo do programa possuir 217 MB, a instalação vai consumir cerca de 1 GB de espaço no disco rígido. Um momento importante do processo é a solicitação da senha para o usuário System, que tem os direitos administrativos. Vamos colocar a senha como sendo system, para facilitar. Após a instalação, clique no atalho Goto database homepage, que será criado dentro do grupo de programas Oracle Database 10g Express Edition. O atalho abrirá uma janela de browser com a página de login do módulo de administração — é tudo feito via web. A página pode ser acessada também por meio do endereço http://127.0.0.1:8080/htmldb/htmldb na máquina em que o software foi instalado.
2. Carregando os scripts
Na página de login, entre com o nome de usuário System e a senha escolhida durante a instalação. Vamos agora criar as tabelas que serão usadas no tutorial. Faça o download dos arquivos de script em ftp://ftp.info.abril.com.br/bdoracle.zip. Depois de descompactá-los, você terá dois arquivos de script: Criar.sql e View.sql.
Na tela inicial do módulo de administração, escolha a opção SQL. Clique então em SQL Scripts. Agora, acione o botão Upload. No campo File, clique em Procurar e informe a localização do arquivo Criar.sql. No campo Script Name, digite Criar. Clique então no botão Upload, na parte superior da tela. A partir de agora, o script vai aparecer como um ícone sempre que se entrar na tela SQL Scripts.
3. Criando as tabelas
Ainda na tela SQL Scripts (Home > SQL > SQL Scripts), clique no ícone do script Criar. Será aberta a janela do Script Editor com o código referente à criação das tabelas. Clique no botão Run, que fica na parte superior da tela. Será aberta a tela Run Script, onde é necessário confirmar a operação, clicando novamente no botão Run. Após a execução do script, foram criadas as tabelas TB_CLIENTE, com informações dos clientes; TB_PEDIDO, com dados dos pedidos; TB_PRODUTO, com informações dos produtos; e TB_PEDIDO_ PRODUTO, que relacionará os produtos aos pedidos.
4. Visualizando os dados
A partir da tela inicial do módulo de administração, clique em Object Browser > Browse > Tables. À esquerda da tela estará uma lista com todas as tabelas do sistema, a maioria referente a controles internos do Oracle XE. No final da lista, você verá as tabelas do tutorial. Clique em TB_CLIENTE e, depois, na aba Data para ver os dados iniciais que foram inseridos durante a criação das tabelas.
5. Gerando o relatório
Vamos criar uma view que mostrará o total pedido por cliente do nosso banco de dados, gerando um relatório de vendas. Volte para a página inicial e escolha a opção Object > Browser > Create > View. No campo View Name, digite vw_total_pedidos_ cliente. Na janela Query, cole o conteúdo do arquivo View.sql. O código é o seguinte:
SELECT sum(total_pedido) as total, cod_cliente, nom_cliente
FROM
(
SELECT
tb_pedido.cod_pedido,
tb_pedido.cod_cliente,
tb_pedido_produto.val_preco_
produto * tb_pedido_produto. qtd_produto as total_pedido,
tb_cliente.nom_cliente
FROM
tb_pedido,
tb_pedido_produto,
tb_cliente
WHERE
tb_pedido.cod_pedido = tb_
pedido_produto.cod_pedido AND
tb_cliente.cod_cliente = tb_
pedido.cod_cliente
) total
GROUP BY cod_cliente, nom_
cliente
Clique em Next e confirme, acionando Create. Na tela de confirmação você já poderá ver o resultado, clicando na aba Data. Desta forma, a view pode ser utilizada como se fosse uma tabela, e todas as alterações que forem feitas nela serão transmitidas para as tabelas que a compõem. Para gerar um relatório a partir da view que foi criada, basta usar o comando SELECT * FROM vw_total_pedidos_cliente.
CRIE SUA VIEW
Para criar uma tabela virtual, deve ser seguida a seguinte estrutura básica de comando SQL:
CREATE VIEW vw_nome AS
SELECT colunas
FROM tabela1, tabela2
WHERE tabela1.campo = tabela2.campo
Dessa forma, você irá unir duas tabelas, criando uma tabela virtual na qual poderá fazer consultas e atualizações nos dados de forma mais simples. Uma das possibilidades de aplicação é configurar permissões diferentes para as tabelas e para as views. Por exemplo, você pode ter uma senha de usuário no banco de dados sendo usada apenas para os scripts da área aberta do seu site. O internauta só terá acesso às views, o suficiente para fazer as pesquisas que deseja. Para acessar as tabelas originais, seria criado outro usuário, aplicando assim mais uma camada de segurança no banco de dados.