DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Linguagem SQL: geração de relatórios - Revista SQL Magazine 95 - Parte 2

Uso de linguagem SQL para criação de relatórios, desde recursos básicos até os mais avançados. Este é o segundo artigo de uma série e neste texto apresento técnicas de uso de visões e consultas aninhadas, que dão às consultas um grande poder de





SQL Magazine 95

[Artigo disponível no Leitor Digital DevMedia. Clique aqui para acessá-lo]

> Clique aqui para ler todos os artigos da SQL Magazine 95


Este é o segundo artigo de uma série que pretende apresentar recursos da linguagem SQL que ajudam na criação de relatórios. Repetindo o que escrevi no primeiro artigo:

 “É consenso entre os especialistas que SQL não é a melhor linguagem para criação de consultas complexas. Apesar de esta ser uma verdade inegável, é muito comum nos depararmos com situações em que ele, o SQL, é a única ferramenta que temos à mão para criação de um relatório. Isso ocorre muitas vezes por questão de custos, já que nem sempre é economicamente viável optar pela compra de uma solução especializada. Este cenário é muito comum no dia-a-dia das empresas e, no fim das contas, somos forçados a usá-lo.

Por esta razão, eu considero importante que todo profissional de banco de dados conheça os principais recursos do SQL para atender as solicitações dos seus usuários”.

Neste sentido, é importante relembrarmos uma definição básica ao se trabalhar com consultas SQL que é a definição de expressão SQL. A definição que temos para o termo expressão é bastante simples: uma expressão retorna um valor. Os tipos utilizados em uma expressão variam bastante, cobrindo diferentes tipos de dados como string, numeric e boolean. Na verdade, quase tudo que inserirmos depois do SELECT ou FROM em um comando SQL pode ser considerado uma expressão. Caso você queria encontrar um item ou grupo de itens em particular em seu banco de dados, você precisará fazer uso de uma ou mais condições em suas queries. Podemos definir condições em consultas SQL utilizando a cláusula where.

Vimos no artigo anterior vários recursos úteis da linguagem SQL que nos ajudam na criação de relatórios. Neste texto atual, apresentaremos recursos da linguagem SQL para geração de objetos especiais para manipulação dos dados, como visões e consultas aninhadas. O leitor com alguma familiaridade com SQL já deve ter visto tais recursos, por isso acrescentaremos aqui um estudo de performance para auxiliá-lo a explorar estas técnicas de forma otimizada.

Este material foi extraído de uma palestra sobre recursos oferecidos pelo DB2, porém iremos priorizar nestes artigos os recursos e as sintaxes que sejam padrão ANSI SQL, ou seja, que estão ou deveriam estar disponíveis em qualquer sistema gerenciador de bancos de dados (SGBD).

Neste artigo, vamos falar do uso dos seguintes recursos SQL:

·         Visões;

·         Consultas aninhadas na cláusula WHERE;

·         Consultas aninhadas na cláusula FROM;

·         Consultas aninhadas na cláusula SELECT.

 

Na teoria de banco de dados, uma visão (view) consiste de uma consulta armazenada acessível como uma tabela virtual em um banco de dados relacional ou um conjunto de documentos em um banco de dados orientado a documentos, composto pelo conjunto de resultados de uma consulta. Ao contrário de tabelas comuns (tabelas base) em um banco de dados relacional, uma visão não faz parte do esquema físico: é uma tabela virtual dinâmica computada a partir de dados no banco de dados. Alterar os dados em uma tabela altera os dados mostrados nas invocações subsequentes da visão. Em alguns bancos de dados NoSQL as visões são a única forma de consulta a dados.

Visões podem oferecer vantagens sobre tabelas nos seguintes aspectos:

·         Visões podem representar apenas um subconjunto dos dados contidos em uma tabela;

·         Visões podem juntar e simplificar várias tabelas em uma tabela virtual única;

·         Visões podem funcionar como tabelas agregadas, através dos mecanismos de agregação do banco de dados (sum, average, etc.) e apresenta os resultados calculados como parte dos dados;

·         Visões podem esconder a complexidade dos dados, por exemplo, uma visão poderia se chamar Vendas2000 ou Vendas2001, particionando transparentemente a tabela básica real;

·         Visões ocupam muito pouco espaço de armazenamento, o banco de dados contém apenas a definição de uma visão e não uma cópia de todos os dados que ele apresenta;

·         Dependendo do SGBD utilizado, visões podem fornecer a segurança extra;

·         Visões podem limitar o grau de exposição de uma ou mais tabelas para o mundo exterior.

 

Assim como funções (function, na programação) podem fornecer abstração, usuários do banco de dados podem criar abstrações usando visões. Em outro paralelo com as funções, os usuários do banco de dados podem manipular visões aninhadas, assim, uma visão pode agregar dados de outras visões. Sem o uso de visões a normalização de bases de dados além da segunda forma normal se tornaria muito mais difícil. Visões podem tornar mais fácil a criação de junções sem perdas de decomposição.

Assim como as linhas em uma tabela base não têm qualquer ordem definida, as linhas disponíveis através de uma visão não aparecem com qualquer classificação padrão.

"

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Wagner Crivelini
Atua a mais de 15 anos na área TI, particularmente com Business Intelligence. Engenheiro formado pela UNICAMP, trabalha na IBM na unidade de IBM Global Account onde atua como DBA DB2 e SQL SERVER em projetos internacionais. Profissional com várias certificações em DB2, entre elas IBM Certified Sol...
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03