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

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

Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN1 Álgebra Relacional zConjunto de Operações usadas para manipular relações zO resultado de cada operação é

Apresentações semelhantes


Apresentação em tema: "Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN1 Álgebra Relacional zConjunto de Operações usadas para manipular relações zO resultado de cada operação é"— Transcrição da apresentação:

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

2 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN2 Operação Select Seleciona um sub-conjunto de tuplas de uma relação que satisfaça uma condição (nome da relação) condição de seleção é uma expressão booleana. é feita a partir de claúsulas na forma: operação de comparação 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

3 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN3 Operação Select - cont. zAs 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 zA Operação é unário e comutativa Referindo-se a relação resultante: zseu grau é o mesmo que o da relação original zNúmero de tuplas é igual ou menor que a relação original

4 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN4 Operação Project zSeleciona algumas colunas da relação da tabela (Relação) zO grau da relação resultante é igual ao número de atributos zSe a lista é um conjunto de atributos não chave a relação resultante poderá ter tuplas duplicadas - Eliminação de duplicações zO número de tuplas da relação resultante é sempre menor ou igual à relação original ( (R)) =

5 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN5 Operações de Conjunto União, Diferença e Interseção zRelações precisam estar compatíveis (união compatível) 2 relações R(A 1, A 2.. A n ) e S(B 1, B 2.. B n ) são ditas em compatível união se elas possuem o mesmo grau n e se o dom(Ai)= dom(Bi) para 1

6 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN6 Operações de Conjunto zResultados da União, Interseção e Diferença tem o mesmo nome dos atributos zPara 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 yEstutante: | Pn | Sn | yInstrutor: | Pnome| Snome | zQuais são destas operações comutativas ? zQuais são associativas ?

7 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN7 Operações de Conjunto Produto Cartesiano zOperação binária representada por X zAs relações não precisam ser compatíveis zUsada para combinar tuplas relacionadas zR (A 1,A 2,...A n ) X S (B 1, B 2,...,B m ) = Relação Q com n+m atributos zA relação Q tem uma tupla para cada combinação de tuplas uma de R e outra de S zR X S terá n r * n s tuplas

8 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN8 Produto Cartesiano Exemplo zListe 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)

9 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN9 Operação Junção (join) zAprimoramento do Produto Cartesiano zdenotado por (X) - produto cartesiano e seleção zCombina 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) zPodemos mudar o exemplo anterior usando Junção

10 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN10 Operação Junção zForma Geral: R (X)condição de junção S yO 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 yA 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 zcondição EquiJoin zJunção Natural - aperfeiçoamento da Operação Junção - retira o 2 o. Atributo de uma condição equijoin: denotada por *

11 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN11 Operação Divisão zÚtil para um especial tipo de consulta zExemplo: 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)

12 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN12 Revisão de Junções zOperação Join: R (x) S z 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

13 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN13 Revisão Junção zEquiJOIN: Junção onde o operador de comparação é usado zNatural 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?

14 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN14 Operações Recursive Closure zEsta operação não pode ser especificada na álgebra relacional é a fecho recursivo zUsada 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

15 Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN15 Outer Join e Outer Union zSão extensões das operações de Junção e União zRecupera 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. zEx. 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

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


Carregar ppt "Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN1 Álgebra Relacional zConjunto de Operações usadas para manipular relações zO resultado de cada operação é"

Apresentações semelhantes


Anúncios Google