Curso de sql

Disponível somente no TrabalhosFeitos
  • Páginas : 14 (3253 palavras )
  • Download(s) : 0
  • Publicado : 8 de outubro de 2012
Ler documento completo
Amostra do texto
VISUAL FOXPRO e
Construçăo de Comandos SQL com boa performance
Em bancos de dados relacionais as informaçőes săo guardadas em tabelas. Para recuperar uma informaçăo necessaria ao usuário, deve-se buscá-la em várias tabelas diferentes, estabelecendo-se um relacionamento entre elas.
Esta é a origem do nome deste paradigma de banco de dados. Tabelas săo na verdade conjuntos. Porexemplo, quando em um sistema existe uma tabela de vendas, esta tabela corresponde ao conjunto de todas as vendas feitas por uma empresa. A tabela de vendedores corresponde ao conjunto de vendedores que trabalham em uma empresa. Cada linha ou registro da tabela corresponde a um elemento do conjunto.
Consultas e alteraçőes na base de dados correspondem a operaçőes realizadas sobre conjuntos. Estasoperaçőes săo definidas pela álgebra relacional.
Por exemplo, determinar quais os vendedores com tempo de casa maior que um determinado patamar, significa determinar um subconjunto do conjunto de vendedores, onde todos os elementos possuam uma determinada propriedade. Para determinar as vendas destes vendedores, é necessário realizar a operaçăo já citada e depois, para cada elemento dosubconjunto "vendedores veteranos" é necessário determinar o subconjunto do conjunto de vendas, contendo a propriedade de ter sido realizada pelo vendedor em questăo. O resultado final da consulta será a uniăo de todos estes subconjuntos.
O problema apresentado possuí também outra forma de soluçăo. Podemos, em um primeiro momento, determinar para cada vendedor, quais as suas vendas.Teríamos entăo vários subconjuntos, cada um contendo as vendas de um vendedor. Feito isto,podemos verficar quais os vendedores săo veteranos,
formando o resultado final a partir da uniăo dos subconjuntos associados a cada um.
Consultas em banco de dados năo passam de problemas de álgebra relacional. Assim como acontece com a álgebra "tradicional", os operadores possuem algumas propriedades.Sabemos que 2 x 3 = 3 x 2. Isto significa que, quando precisamos contar uma expressăo de álgebra relacional para chegar a um determinado resultado,podemos faze-lo de mais de uma forma, pois várias expressőes levam ao mesmo resultado. Em outras palavras, quando o banco de dados precisa montar uma expressăo algébrica para encontrar um resultado, ele deve escolher uma entre várias. Apesar deapresentarem o mesmo resultado, as expressőes săo diferentes, e a diferença fará com que o banco de dados adote um diferente caminho para resolver cada uma. Escolher o caminho mais curto é uma das grandes atribuiçőes do banco de dados. Está é a missăo do otimizador, um subsistema do banco da dados, responsável por determinar o plano de execuçăo para uma consulta.
A linguagem SQL (Searchand Query Language) é um grande padrăo de banco de dados. Isto decorre da sua simplicidade e facilidade de uso. Ela se opőe a outras linguagens no sentido em que uma consulta SQL especifica a forma do resultado e năo o caminho para chegar a ele. Ela é um linguagem declarativa em oposiçăo a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam nalinguagem.
Vamos comparar:
descriçăo declarativa:
"quero saber todas as vendas feitas por vendedores com mais de 10 anos de casa."
descriçăo procedural:
"Para cada um dos vendedores, da tabela vendedores, com mais de 10 anos de casa, determine na tabela de vendas todas as vendas destes vendedores. A uniăo de todas estas vendas será o resultado final do problema."
Na verdade, fui bem poucohonesto na comparaçăo. Minha declaraçăo procedural tem muito de declarativa, o que a torna mais simples. Se ela fosse realmente
procedural, seria ainda mais complicada.
O fato é que, ter que informar o como fazer, torna as coisas mais difíceis. Neste
sentido, SQL facilitou muito as coisas.
Porém, a partir do nosso "o que queremos", o banco de dados vai determinar o "como fazer". No...
tracking img