quinta-feira, 24 de novembro de 2011

Á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.

A Álgebra Relacional é um conjunto de operações sobre modelos relacionais de dados e podem ser divididas em dois grupos, que são eles:

Operadores Tradicionais:
 União
 Intersecção
 Diferença
 Produto Cartesiano

Operadores Relacionais:
 Seleção
 Projeção
 Junção
 Divisão

  
2) Explique a Operação SELECT e PROJECT. Quando usar, Para que usar, Como usar, diferenças, etc.
  
SELECT

É usada para construir um subconjunto na horizontal e para selecionar 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 5 ou que tenham salário maior que 5000, cada uma dessas condições é especificada individualmente usando a operação SELECT:

NDEP = 5 (EMPREGADO)
SALÁRIO > 5000 (EMPREGADO)


PROJECT

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, para cada empregado, os atributos PNOME, SNOME e SALÁRIO; pode-se usar o PROJECT:

SNOME, PNOME, SALÁRIO (EMPREGADO)



3) Explique a Operação UNION, INTERSECTION E DIFFERENCE. Quando usar, para que usar, como usar, etc.

A operaçao UNION tem a finalidade de unir tuplas. Devemos usa-lo quando por exemplo desejadas unir R U S esta operação vai unir todas as tuplas de R e S e excluir as tuplas duplicadas.

INTERSECTION diferente de union vai incluir somente as tuplas comuns entre as entidades. Esta operação é utilizada quando por exemplo desejamos unir por exemplo as tuplas iguais de R ... S .

DIFFERENCE por sua vez vai incluir as tuplas que não estão na outra entidade, por exemplo R - S esta operação vai incluir as tuplas de R que não estão em S.


4) Explique a Operação CARTESIAN PRODUCT. Quando usar, Para que usar, Como usar, etc.

A operação CARTESIAN PRODUCT, denotada por c, é 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.
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 seqüência como uma única operação. Assim, a operação CARTESIAN PRODUCT é raramente utilizada isoladamente. Em geral, o resultado de R(A1, A2, ..., An) x S(B1, B2, ..., Bm) é a relação Q com n + m atributos Q(A1, A2, ..., An, B1, B2, ..., Bm) nesta ordem.
A relação resultante Q tem uma tupla para cada combinação de tuplas. Assim, se R tem nR tuplas e S tem nS tuplas, então RxS terá nR*nS tuplas. Para ilustrar, considere que se deseja recuperar para cada empregado do sexo feminino uma lista de nomes de seus dependentes.


5) Explique as Operações de junção (JOIN) e divisão (DIVISION). Quando usar, Para que usar, Como usar, etc.

Operações de Junção (JOIN)

A combinação de uma operação de seleção aplicada sobre uma operação de produto cartesiano é usual em aplicações de BD. É através dela que dados de tabelas relacionadas são associados. Por isso, foi criada a operação de junção, que corresponde exatamente à seqüência de operações em questão.

A operação JOIN, denotada por , é 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

É uma operação que produz uma combinação entre as linhas de uma tabela com as linhas correspondentes de outra tabela, sendo em princípio correspondente a uma seleção pelos atributos de relacionamento sobre um produto cartesiano dessas tabelas:

A |x| B = A.chave1 = B.chave2 ( A x B )

A operação de junção foi criada justamente porque esse tipo de combinação de tabelas é de uso muito comum, facilitando com isso a escrita de expressões. A tabela resultante de uma junção tem todas as colunas da primeira tabela e todas da segunda tabela. Isso faz com que os valores dos campos utilizados como critério para a correspondência entre as linhas apareça duplicado, já que um vem da primeira tabela e outro da segunda. Existe uma variação da junção, chamada junção natural, que fornece o mesmo resultado, mas sem essa repetição de valores, uma das colunas correspondentes aos atributos de relacionamento é descartada.

Operações de Divisão (Division)

É uma operação adicional que produz como resultado a projeção de todos os elementos da primeira tabela que se relacionam com todos os elementos da segunda tabela.

Ex.: queremos saber os nomes dos departamentos que possuem todos os cargos:

NmDepto, CdCargo ( depto |x| funcionário ) CdCargo ( cargo )


6) Explique as Operações de AGREGAÇÃO. Quando usar, Para que usar, Como usar, etc.

Operações de Agregação

São aquelas que, quando aplicadas, tomam uma coleção de valores e retornam um valor simples como resultado.
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.
Um outro tipo comum de consulta envolve o agrupamento de tuplas de uma relação pelo valor de alguns de seus atributos e então a aplicação de alguma função agregada independente para cada grupo de tuplas.
Um tipo de requisição comum envolve o agrupamento de tuplas em uma relação pelo valor de alguns atributos e depois pela aplicação de uma função de agregação neste grupo.
Ex. Agrupar os empregados pelo número de seu departamento, e aplicar a função média no atributo salário em cada grupo. Desta forma saberemos a média dos salários.
É importante destacar que o resultado da aplicação de qualquer função de agregação sempre será uma relação e não um número.


TABELA DOS SÍMBOLOS:



Nenhum comentário:

Postar um comentário