A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

Apresentações semelhantes


Apresentação em tema: "Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN"— Transcrição da apresentação:

1 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Álgebra Relacional Conjunto de Operações usadas para manipular relações O resultado de cada operação é uma nova relação Existem 2 grupos de operações da álgebra relacional: operações de conjunto (teoria de conjunto) - união, interseção, diferença e produto cartesiano operações relacionais - seleção, projeção e junção Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

2 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operação Select Seleciona um sub-conjunto de tuplas de uma relação que satisfaça uma condição <condição de seleção> (nome da relação) condição de seleção é uma expressão booleana. é feita a partir de claúsulas na forma: <nome do atributo> operação de comparação <valor constante> <nome do atributo> operação de comparação <nome do atributo> O valor constante é uma constante que pertença ao domínio do referido atributo O resultado da seleção possui o mesmo número de atributos Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

3 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operação Select - cont. As cláusulas podem estar conectadas por operadores booleanos (And, OR e NOT) (numDep = 100 and salario > 2000) or (numDep=5 and salario > 3000) (EMPREGADO) Todas as tuplas selecionadas aparecem na relação resultante A Operação é unário e comutativa Referindo-se a relação resultante: seu grau é o mesmo que o da relação original Número de tuplas é igual ou menor que a relação original Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

4 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operação Project Seleciona algumas “colunas” da relação da tabela <lista de atributos> (Relação) O grau da relação resultante é igual ao número de atributos Se a lista é um conjunto de atributos não chave a relação resultante poderá ter tuplas duplicadas - Eliminação de duplicações O número de tuplas da relação resultante é sempre menor ou igual à relação original <list1> (<list2> (R)) = <list1 (R) é verdade se list2 conter list1 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

5 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operações de Conjunto União, Diferença e Interseção Relações precisam estar compatíveis (união compatível) 2 relações R(A1, A2 .. A n) e S(B1, B2 .. Bn) são ditas em compatível união se elas possuem o mesmo grau n e se o dom(Ai)= dom(Bi) para 1<i<n Ex.: recuperar os cpfs dos empregados que tanto trabalham no dep. 10 ou supervisiona quem trabalha no dep. 10 Para este caso podemos usar a operação UNION (U) União: R U S - tuplas duplicadas são eliminadas Interseção: R  S Diferença: R - S Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

6 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operações de Conjunto Resultados da União, Interseção e Diferença tem o mesmo nome dos atributos Para duas Relações Estudante e Instrutor, faça a União, Interseção e a Diferença - as relações precisam ser compatíveis na união Estutante: | Pn | Sn | Instrutor: | Pnome| Snome | Quais são destas operações comutativas ? Quais são associativas ? Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

7 Operações de Conjunto Produto Cartesiano
Operação binária representada por X As relações não precisam ser compatíveis Usada para combinar tuplas relacionadas R (A1,A2, ...An) X S (B1, B2, ...,Bm) = Relação Q com n+m atributos A relação Q tem uma tupla para cada combinação de tuplas uma de R e outra de S R X S terá nr * ns tuplas Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

8 Produto Cartesiano Exemplo
Liste os nomes dos dependentes de cada empregado feminino: fem_EMP <-  sexo=‘f’(EMP) nomesEMP <- nome, cpf (fem_EMP) emp_dependentes <- nomesEMP X fem_EMP Dep_Real <- cpf=ecpf (emp_dependentes) Resultado <-  nome, nome_dep (Dep_Real) Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

9 Operação Junção (join)
Aprimoramento do Produto Cartesiano denotado por (X) - produto cartesiano e seleção Combina tuplas relacionadas a partir de 2 relações Exemplo Listar os nomes dos gerentes de cada departamento dept_gerente <- DEP(X)cpf_gerente=cpf EMP result <-  nome_depart, nome (dept_gerente) Podemos mudar o exemplo anterior usando Junção Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

10 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operação Junção Forma Geral: R (X)condição de junção S O resultado desta junção é a relação Q com n+m atributos onde cada tupla de Q é a combinação de tuplas de R e S que satisfazem a condição de junção A condição é da forma Ai op Bj onde Ai é um atributo de R e Bj é um atributo de S assim Ai e Bj devem ser do mesmo domínio condição EquiJoin Junção Natural - aperfeiçoamento da Operação Junção - retira o 2o. Atributo de uma condição equijoin: denotada por * Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

11 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Operação Divisão Útil para um especial tipo de consulta Exemplo: liste os nomes dos empregados que trabalham em todos os projetos que João Paulo trabalha joão <- nome=‘João Paulo’ (EMP) joão_proj <- pnum(trabalha_em *ecpf=cpf joão) cpf_projnum <- pnum, ecpf (trabalha_em) CPFs (cpf)<- cpf_projnum : joão_proj Resultado<- nome (CPFs * EMP) Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

12 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Revisão de Junções Operação Join: R (x) <condição de junção> S combina tuplas relacionadas de duas relações Ex.: recupere o nome de gerentes de cada departamento DEP_MGR<- DEP(x)mgrssn=ssn EMP (combinação de produto cartesiano e seleção) Exemplo Uma operação Join com condição geral é chamada de Theta join Obs.:As tuplas cujo os atributos de junção são nulos não aparecem no resultado Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

13 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Revisão Junção EquiJOIN: Junção onde o operador de comparação é usado Natural Join - Junção Natural: retira o segundo atributo na condição EquiJoin - R * S Atributos de junção devem ter o mesmo nome O que acontece se não existir uma condição de junção? Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

14 Operações Recursive Closure
Esta operação não pode ser especificada na álgebra relacional é a “fecho recursivo” Usada em relacionamentos recursivos como em Empregado e Supervisor Ex.: Recuperar todos os supervisionados de um empregado em todos os níveis. Fácil especificar todos supervisionados num determinado nível mas é diifícil especificar todos em todos os níveis Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

15 Outer Join e Outer Union
São extensões das operações de Junção e União Recupera com nulos nos atributos de junção são eliminadas. Operações OUTER joins são usadas para guardar todas as tuplas em R ou S ou em ambos no resultado se ou não eles tenham tuplas “casadas”. Ex. Listar o nome de todos os empregados e o nome dos departamentos q eles gerenciam, caso isto ocorra. Usa-se o Left outer Join - R X| S Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN

16 Outer Join e Outer Union
Left outer Join - R ]X| S Right outer Join - R |X S Full Outer Join - R ]X[ S Outer Union - utiliza tuplas parcialmente compatíveis Ex.: Estudante(Nome, CPF, dep, Orientador) e Funcionario(Nome, CPF, dep, Rank) Result(Nome, CPF, Dep, Orientador, Rank) Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN


Carregar ppt "Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN"

Apresentações semelhantes


Anúncios Google