Álgebra
Relacional
1) Quantos
e Quais são os grupos nos quais a álgebra relacional está dividida? Identifique
quais operações pertencem a cada um deles.
R:
Pode ser definida como o conjunto de operações que são necessárias efetuar para
manipular relações. Qualquer operação em álgebra relacional dará origem a uma
nova relação, que poderá ser novamente manipulada. A álgebra relacional é uma
linguagem de interrogação procedimental, dado que o utilizador dá instruções
para o sistema executar uma sequência de operações na base de dados, para
calcular o resultado esperado.
Específicos de Álgebra Relacional
Seleção (σ)
Projeção (π)
Junção( x )
Divisão (÷)
Seleção (σ)
Projeção (π)
Junção( x )
Divisão (÷)
Operações sobre
conjunto
União (U)
Intersecção(∩)
Diferença ( - )
Produto Cartesiano ( x )
União (U)
Intersecção(∩)
Diferença ( - )
Produto Cartesiano ( x )
2) Explique
a Operação SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças,
etc.
R: A operação SELECT é usada para selecionar um subconjunto de tuplas de uma relação. Estas tuplas devem satisfazer uma condição de seleção. Por exemplo, a seleção de um subconjunto de tuplas da relação EMPREGADOS que trabalham para o departamento 4 ou que tenham salário maior que 3000. Cada uma dessas condições é especificada individualmente.
Operação SELECT como segue: NDEP = 4 (EMPREGADO)
SALÁRIO > 3000 (EMPREGADO)
Em geral, a operação SELECT é denotada por: () onde o
símbolo é usado para denotar o operador SELECT, e a condição de seleção é uma expressão
Booleana especificada sobre atributos da relação especificada.
A relação resultante da operação SELECT tem os mesmos
atributos da relação especificada em. A expressão Booleana especificada em é construída
a partir de cláusulas da forma: ou O
Operador PROJECT: Pensando na relação como uma tabela, então 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 relação pode-se usar o PROJECT
para “projetar” a relação sobre esses atributos. Por exemplo, suponha a
necessidade de listar, para cada empregado, os atributos PNOME, SNOME e
SALÁRIO; então pode-se usar o PROJECT como segue: SNOME, PNOME, SALÁRIO
(EMPREGADO).
3) Explique
a Operação UNION, INTERSECTION e DIFFERENCE. Quando usar, Para que usar, Como
usar, etc.
R: Estas operações são
binárias; isto é, elas necessitam de dois conjuntos. Quando essas operações são
adaptadas para a base de dados relacional deve-se assegurar que essas operações
resultem sempre em relações válidas.
Podem-se definir as três operações UNION, INTERSECTION
e DIFFERENCE sobre duas relações que sejam união compatível R e S:
· UNION ¾ O resultado da operação, denotado por R È S,
é uma relação que inclui todas as tuplas de R e todas as tuplas de S. Tuplas
duplicadas são eliminadas.
· INTERSECTION ¾ O resultado desta operação, denotado por
R Ç S, é a relação que inclui todas as tuplas que são comuns a R e S.
· DIFFERENCE ¾ O resultado desta operação, denotado
por R - S, é a relação que inclui todas as tuplas de R, mas que não estão em S.
4) Explique
a Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.
R: O CARTESIAN
PRODUCT cria tuplas com atributos combinados de duas relações. Pode-se então
selecionar apenas as tuplas que estejam relacionadas especificando uma condição
de seleção apropriada, como foi feita no exemplo. Devido à sequência: CARTESIAN
PRODUCT seguido de SELECT, ser muito comum para se identificar tuplas relacionadas
de duas relações, uma operação especial JOIN foi criada para especificar esta sequência
como uma única operação. Assim, a operação CARTESIAN PRODUCT é raramente
utilizada isoladamente.
É também uma operação de conjunto binária, mas as
relações sobre as quais são aplicadas não necessitam ser união compatível. Esta
operação é usada para combinar tuplas de duas relações tal que tuplas
relacionadas possam ser identificadas.
5) Explique
as Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar,
Como usar, etc.
R: A operação DIVISION
é útil para um tipo especial de consulta que ocorre frequentemente em
aplicações de base de dados. Esta requisição pode ser ilustrada pela seguinte consulta:
“Recupere os nomes dos empregados que trabalham em todos os projetos em que
‘John Smith’ trabalha”. Para expressar esta consulta usando DIVISION deve-se
fazer o seguinte: primeiro recuperar a lista de números de projetos em que
‘John Smith’ trabalha em uma relação intermediária SMITH_PNOS:
SMITH¬s PNOME = ‘John’ AND
SNOME = ‘Smith’ (EMPREGADO)
SMITH_PNOS¬p PNRO (TRABALHA_EM * NSSEMP = NSS SMITH)
Depois, criar uma relação que inclua tuplas da forma
que lista todos os
empregados, cujo número do segura social é NSSEMP, que
trabalham num determinado
projeto PNRO:
NSS_PNRO¬p PNRO, NSSEMP (TRABALHA_EM)
Finalmente, aplicar a operação DIVISION para as
relações obtidas a fim de obter os números dos seguros sociais desejados:
NSS_DESEJADO (NSS)¬NSS_PNRO ¸ SIMTH_PNOS
RESULT¬p PNOME, SNOME (NSS_DESEJADO * EMPREGADO)
A operação JOIN é usada para combinar tuplas
relacionadas de relações em
uma única tupla. Esta operação é muito importante para
quaisquer bases de dados relacionais, pois permite processar relacionamentos
entre relações. Para ilustrar a operação JOIN, suponha que se deseja recuperar os nomes dos gerentes de cada departamento.
Para obter-se o nome dos gerentes, é necessário combinar cada tupla de
departamento com tuplas de empregados cujo valor NSS seja igual ao valor de
SNNGER na tupla departamento. Isto é feito usando a operação JOIN, então
projeta-se o resultado sobre aqueles atributos necessários: 55
DEPT_GER¬DEPARTAMENTO xSNNGER=NSS EMPREGADO
RESULT¬pDNOME, SNOME, PNOME
(DEPT_GER).
6) Explique
as Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.
R: O primeiro tipo de consulta que não pode ser
expressa na álgebra relacional é conhecido como funções agregadas sobre
coleções de valores da base de dados. Por exemplo, pode-se querer recuperar a
média ou total salarial de todos os empregados ou o número de tuplas de empregados.
As funções normalmente aplicadas para coleções de valores numéricos são:
SUM, AVERAGE, MAXIMUM e MINIMUM. A função de contagem
de tuplas é normalmente chamada COUNT. Cada uma destas funções pode ser
aplicada a todas as tuplas de uma relação.
Nenhum comentário:
Postar um comentário