Pesquisar este blog

quarta-feira, 7 de novembro de 2012

Álgebra Relacional


Á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 (÷)

Operações sobre conjunto
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