CAMPUS DE ALEGRE
DEPARTAMENTO DE COMPUTAO DCOMP
Disciplina de Banco de Dados 2015/2
Professor: Leandro Fernandes dos Santos
1 O operador de SELEO
A operao SELECT usada para selecionar um subconjunto de tuplas de uma
relao as quais devem satisfazer uma condio de seleo. Por exemplo, a seleo
de um subconjunto de tuplas da relao EMPREGADOS que trabalham para o
departamento 4 ou que tenham salrio maior que 3000. Cada uma dessas condies
especificada individualmente usando a operao SELECT como segue:
Onde:
O smbolo usado para denotar o operador SELECT e a condio de seleo
uma expresso Booleana especificada sobre atributos da relao especificada.
A relao resultante da operao SELECT tem os mesmos atributos da relao
especificada em <nome da relao>. A expresso booleana especificada em
<condio de seleo> construda a partir de clusulas da forma:
o <nome de atributo> <operador de comparao> <valor constante>, ou
o <nome de atributo> <operador de comparao> <nome de atributo>
Onde:
O operador SELECT unrio; isto , ele aplicado somente a uma relao. Assim, o
SELECT no pode ser usado para selecionar tuplas de mais de uma relao. Observe
tambm que a operao de seleo aplicada individualmente para cada tupla. Assim,
as condies de seleo no podem ser aplicadas a mais que uma tupla. O grau da
relao resultante a mesma que a relao original. O nmero de tuplas da
relao resultante sempre menor ou igual ao nmero de tuplas da relao
original.
Assim, uma seqncia de SELECTs pode ser aplicada em qualquer ordem. Alm disso,
pode-se sempre trocar operadores SELECT em cascata com a conjuntiva AND; isto :
2 O operador de PROJEO
Pensando na relao como uma tabela, o operador SELECT seleciona algumas linhas
da tabela enquanto descarta outras. O operador PROJECT, por outro lado, seleciona
certas colunas da tabela e descarta outras. Se existir o interesse sobre certos atributos
da relao, pode-se usar o PROJECT para projetar a relao sobre esses atributos.
Por exemplo, suponha a necessidade de listar, para cada empregado, os atributos
PNOME, SNOME e SALRIO; ento pode-se usar o PROJECT como segue:
Onde:
o smbolo usado para representar o operador PROJECT
<lista de atributos> uma lista de atributos da relao especificada por <nome
da relao>
A relao resultante tem apenas os atributos especificados em <lista de atributos> e
estes atributos aparecem na mesma ordem em que foram especificados. Assim, o
grau igual ao nmero de atributos em <lista de atributos>.
Note-se que:
3 A operao de UNIO
O resultado da operao, denotado por R S, uma relao que inclui todas as tuplas
de R e todas as tuplas de S. Tuplas duplicadas so eliminadas.
4 A operao de INTERSEO
O resultado desta operao, denotado por R S, a relao que inclui todas as tuplas
que so comuns a R e S.
5 A operao de DIFERENA
O resultado desta operao, denotado por R - S, a relao que inclui todas as tuplas
de R, mas que no esto em S.
Observaes importantes em relao s operaes de UNIO, INTERSEO e
DIFERENA
Isso significa que as duas relaes tm o mesmo nmero de atributos e que cada par
de atributos correspondentes tem o mesmo domnio.
Em geral, o resultado de R(A1, A2, ..., An) S(B1, B2, ..., Bm) a relao Q com n + m
atributos Q(A1, A2, ..., An, B1, B2, ..., Bm) nesta ordem. A relao resultante Q tem
uma tupla para cada combinao de tuplas. Assim, se R tem nR tuplas e S tem nS
tuplas, ento RS ter nR*nS tuplas.
O CARTESIAN PRODUCT cria tuplas com atributos combinados de duas
relaes. Pode-se ento selecionar apenas as tuplas que estejam relacionadas
especificando uma condio de seleo apropriada. Devido seqncia: CARTESIAN
PRODUCT seguido de SELECT, ser muito comum para se identificar tuplas
relacionadas de duas relaes, uma operao especial JOIN foi criada para especificar
esta seqncia como uma nica operao. Assim, a operao CARTESIAN PRODUCT
raramente utilizada isoladamente.
A juno natural ou natural join uma operao binria que permite combinar selees
e um produto cartesiano em uma s operao.
Esta operao muito importante para quaisquer bases de dados relacionais, pois
permite processar relacionamentos entre relaes.
Pode-se utilizar o smbolo de juno natural para especificar o natural JOIN.
Smbolo:
Note que, se nenhuma combinao de tuplas satisfizer a condio join, ento o
resultado ser uma relao vazia. Em geral, se R tiver nR tuplas e S tiver nS tuplas, o
resultado de uma operao JOIN R <condio join> S ter entre zero e nR*nS tuplas.
Se no existir <condio join> para satisfazer, ento todas as combinaes de
tuplas sero includas. Nestes casos, JOIN torna-se um CARTESIAN PRODUCT.
8 A operao de DIVISO
A diviso de duas relaes R S, onde os atributos de S esto contidos nos
atributos de R, A(R) A(S), resulta na relao T, onde A(T) = { A(R) A(S) }, onde
para cada tupla t que aparece no resultado, os valores de t devem aparecer em R,
combinando com cada tupla de S. Esta operao utilizada nas consultas em que
se emprega a frase para todos;
Depois, criar uma relao que inclua tuplas da forma <PNRO, NSSEMP> que lista
todos os empregados, cujo nmero do seguro social NSSEMP, que trabalham num
determinado projeto PNRO:
Outro tipo comum de consulta envolve o agrupamento de tuplas de uma relao pelo
valor de alguns de seus atributos e ento a aplicao de alguma funo agregada
independente para cada grupo de tuplas.
Pode-se definir uma operao FUNCTION, que pode ser usada para especificar estes
tipos de consultas.
Onde:
<atributos de agrupamento> uma lista de atributos da relao especificada em
<nome da relao>
<lista de funes> uma lista de pares (<funo><atributo>). Em cada par,
Referncias