domingo, 29 de novembro de 2009

Algebra 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 poderá 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 seqüência de operações na base de dados, para calcular o resultado esperado.

Operações sobre conjunto
União (U)
Intersecção(∩)
Diferença ( - )
Produto Cartesiano ( x )

Específicos de Álgebra Relacional
Seleção (σ)
Projeção (π)
Junção( x )

Divisão (÷)

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

Seleção (σ): O operador de seleção σ serve para selecionar um subconjunto de tuplas de uma relação baseado numa condição de seleção. Esta condição nos diz se uma tupla t deve ser incluída ou não na relação resultante. A operação SELECT é denotada por σ (). Na condição de seleção podemos colocar qualquer expressão booleana que envolva constantes, nomes de atributo da relação e comparações com >, < e = e podemos juntar expressões com OR, AND e NOT. Note que o operador é unário e que a relação resultante tem sempre um número menor ou igual de tuplas que a relação original. SELECT é um operador comutativo.

Projeção (π): O operador de projeção π é usado para selecionar atributos de uma relação e construir uma nova relação, "projetando" a relação antiga sobre os atributos escolhidos. A operação é denotada por πatributos (relação) e constrói uma relação nova que contém somente os atributos selecionados da antiga. Todo operador da álgebra relacional sempre gera como resposta uma relação válida. Assim, se não existirem chaves na lista de atributos, todas as ocorrências de tuplas duplicadas são excluídas, sobrando somente uma de cada tipo. A operação PROJECT não é comutativa.

3) Explique a Operação UNION, INTERSECTION e DIFFERENCE. Quando usar, Para que usar, Como usar, etc.

Union – União. Simbologia: - é realizada sobre dois ou mais conjuntos para se criar um outro conjunto que contenha todas as tuplas não comuns entre os conjuntos e as tuplas comuns entre os conjuntos, sem repeti-las.
Intersection - Intersecção. Simbologia: - é realizada sobre dois ou mais conjuntos tendo como resultado um outro conjunto que possuirá os valores que sejam comuns a todos os conjuntos da relação.
Difference - Diferença, Subtração. Simbologia: - - esta operação tem como resultados os valores que, entre dois conjuntos, existem em um, mas não existem no outro conjunto envolvido ;


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

Produto cartesiano

O resultado do produto cartesiano de duas tabelas é uma terceira tabela contendo todas as combinações possíveis entre os elementos das tabelas originais. Essa tabela resultante possuirá um número de colunas que é igual à soma das quantidades de colunas das duas tabelas iniciais, e um número de linhas igual ao produto do número de suas linhas. Portanto, se fizermos o produto cartesiano de uma tabela A que possua 4 colunas e 10 linhas com uma tabela B onde existem 3 colunas e 7 linhas, a tabela resultante terá 4+3= 7 colunas e 10*7= 70 linhas. Assim, cada linha dessa tabela corresponderá à concatenação de uma linha da primeira tabela com uma linha da segunda. O produto cartesiano não é muito usado como um fim em si mesmo, ou seja, dificilmente estaremos interessados em saber quais são todas as combinações possíveis entre as linhas de duas tabelas, pois a utilidade prática desse tipo de conhecimento é muito discutível. Entretanto, é a única forma primitiva de que dispomos para fundir informações de duas tabelas heterogêneas para posterior processamento. Nesse caso, tipicamente será necessário executar uma Seleção sobre o resultado do Produto Cartesiano, de maneira a descartar as combinações inválidas entre as linhas das tabelas originais


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

A operação JOIN x é um produto cartesiano seguido de uma operação e é capaz de processar relacionamentos entre relações, pois combina tuplas de mais de uma relação.
R=R1 x condição R2

A condição de seleção do JOIN é sobre ambas as relações e, no final da operação sobram somente as tuplas do produto cartesiano que obedecem a esta condição em uma relação com m+n atributos e no máximo mn tuplas.

DIVISÃO( )

A operação de divisão é bem mais complicada do que a de JOIN, pois envolve mais operações. Quando divido uma tabela R1 por outra R2, desejo selecionar conjuntos de tuplas que sejam iguais exceto pelos atributos de R2 e que cada grupo contenha todas as tuplas de R2. Se a explicação parece confusa, é por que é mesmo. A operação de divisão gera muitas dúvidas (uma aula praticamente só para ela.) e olhar alguns exemplos ajuda bastante. Se facilitar, ela é equivalente a seguinte sequência de operações (R ÷ S:
T1 = π y(R)
T2= π y(S x T1) – R
T= T1 – T2

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

Funções de agregação são aquelas que, quando aplicadas, tomam uma coleção de
valores e retornam um valor simples como resultado.
• SUM, AVERAGE, MAXIMUM, MINIMUM,
COUNT


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 dos empregados de cada departamento.

atributos_agrupados> Agreg (R)
- atributos_agrupados>
Lista de atributos de R

Lista de pares

SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT

Atributo de R




Nenhum comentário:

Postar um comentário