Академический Документы
Профессиональный Документы
Культура Документы
7 Grupo
UNIVERSIDADE ZAMBEZE
Faculdade de Cincias e Tecnologia
Base de Dados I
Docente:
Eng. Alcamate Daial Doss
Objectivo Geral
1
Estrutura bsica
Uma expresso bsica em SQL consiste em trs clusulas: select, from e where.
from r , r , ..., r
1 2 n
where P
2
Cada Ai representa um atributo e cada r , uma relao. P um predicado a ser satisfeito.
i
A , A , ..., A ( p (r x r x ... r ))
1 2 n 1 2 m
A SQL forma um produto cartesiano das relaes indicadas na clusula FROM, executa
uma seleo em AR usando o predicado da clusula WHERE e, ento, projeta o resultado
nos atributos da clusula SELECT. Na prtica, ela pode converter em outra expresso
equivalente que seja mais eficiente no processamento.
Funes Agregadas
Funes que tomam uma coleo (um conjunto ou subconjunto) de valores como entrada,
retornando um nico valor.
Sum: soma/total
avg: mdia
count: contagem
Min: mnimo
Max: Maximo
A entrada para sum e avg precisa, obrigatoriamente, ser um conjunto de nmeros, mas
as demais operaes no impem esta restrio.
Exemplo:
select A , A , ..., A
1 2 n
from r , r , ..., r
1 2 n
where P
group by A1;
3
Por vezes, precisamos aplicar uma funo agregada no apenas a um conjunto de tuplas,
mas tambm a um grupo de conjunto de tuplas. Isto feito por meio da clusula group by
(onde os seus atributos so utilizados para formar os grupos).
Em outros casos, pode ser mais interessante definir condies e aplic-las a grupos do
que aplic-las a tuplas. Isto feito pela clusula having. Como os predicados da clusula
so aplicados aps a formao dos grupos, funes agregadas podem ser usadas.
select A , A , ..., A
1 2 n
from r , r , ..., r
1 2 n
where P
group by A 1
Subconsultas Aninhadas
select A , A , ..., A
1 2 n
from r , r , ..., r
1 2 n
from r , r , ..., r
1 2 n
where P);
4
Comparaes de Conjuntos
Permite usar comparaes do tipo > some (maior que ao menos uma), <= some, = some,
etc... ou > all (maior que todas), >= all, etc.
select A , A , ..., A
1 2 n
from r , r , ..., r
1 2 n
from r , r , ..., r
1 2 n
where P);
select A , A , ..., A
1 2 n
from r , r , ..., r
1 2 n
from r , r , ..., r
1 2 n
where P);
5
Vises
Uma viso qualquer relao que no faz parte do modelo lgico do banco de dados, mas
que visvel ao usurio, como uma relao virtual. O conjunto de tuplas de uma relao
viso resultado de uma expresso de consulta que foi definido no momento de sua
execuo. Logo, se uma relao viso computada e armazenada, esta pode tornar-se
desatualizada se as relaes usadas em sua gerao sofrerem modificaes. Quando uma
viso definida, o sistema de banco de dados armazena sua definio ao invs do
resultado da expresso SQL que a definiu. Sempre que a relao viso usada, ela
sobreposta pela expresso da consulta armazenada, de maneira que, sempre que a consulta
for solicitada, a relao viso ser recomputada. Alguns sistemas de banco de dados
permitem que as relaes de vises sejam materializadas, garantindo que se ocorrerem
modificaes nas relaes reais usadas na definio da viso, tambm a viso ser
modificada. Contudo, esta abordagem pode incorrer em custos de armazenamento e
atualizaes de sistema.
Caso no necessitemos mais de uma dada viso, podemos elimin-la por meio do
comando:
6
Insero
O comando INSERT utilizado para adicionar uma nica tupla a uma relao. Para
inserirmos dados em uma relao devemos especificar a relao e uma lista de valores
para a tupla a ser inserida. Obs.: Os valores devem ser inseridos na mesma ordem na qual
os atributos correspondentes foram especificados na criao da tabela de dados.
A clusula padro :
Actualizao
UPDATE <relao>
WHERE <condio>
7
Concluso
Com o presente trabalho conclumos que expresses bsicas em SQL consistem em trs
clusulas: select, from e where. Com elas as Funes que tomam uma coleo (um
conjunto ou subconjunto) de valores como entrada, retornando um nico valor,
designamos de funes agregadas. Tambm vimos que uma expresso select-from-where
aninhada dentro de outra consulta considerada uma subconsulta. Tambm vimos que o
comando INSERT utilizado para adicionar uma nica tupla a uma relao. Viso
qualquer relao que no faz parte do modelo lgico do banco de dados, mas que visvel
ao usurio, como uma relao virtual.