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

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

Álvaro Vinícius de Souza Coêlho

Apresentações semelhantes


Apresentação em tema: "Álvaro Vinícius de Souza Coêlho"— Transcrição da apresentação:

1 Álvaro Vinícius de Souza Coêlho alvaro.degas@terra.com.br
Álgebra Relacional Álvaro Vinícius de Souza Coêlho

2 Álgebra Relacional Porque dizer Álgebra?

3 Para o caso da Álgebra Relacional
Se  e  são relações (tabelas) Uma operação sobre  e  precisa resultar em algum  que igualmente será uma relação

4 Para que Álgebra Relacional?
Um formalismo Definição de operações sobre os conjuntos de dados Útil para implementar Execução de consultas Otimização de consultas Afinal: como garantir que as operações (em SQL por exemplo) são efetivamente executáveis? SQL “implementa” a Álgebra Relacional

5 Álgebra de “Sacos” e de Conjuntos
Conjuntos – coleção de exemplares Sem repetição Sacos – coleção de objetos Com repetição Ex: {A, B, C} é um conjunto {A, B, B, C, C} é um “saco”

6 Na prática há diferença?
Há operações sobre conjuntos que são análogas União Conjuntos: Omitem as repetições Sacos: Permite repetições Intersecção Diferença

7 Exemplos Conjuntos {A, B, C, D}  {A, C, D, E} = {A, B, C, D, E} {A, B, C, D}  {A, C, D, E} = {A, C, D} {A, B, C, D} – {A, C, D, E} = {B} Operar {1, 3, 5, 7, 9, 11, 13} com {2, 3, 5, 7, 11, 13}

8 Exemplos Sacos Operar {1, 1, 2, 2, 2, 3, 4} com {1, 2, 3, 5}
{A, B, B, B, C}  {A, A, B, D} = {A, A, A, B, B, B, C, D} (lista cada elemento m+n vezes) {A, B, B, B, C}  {A, A, B, D} = {A, B} (lista cada elemento m vezes, m o menor número) {A, B, B, B, C} – {A, A, B, D} = {B, B, C} (lista cada elemento m-n vezes, no mínimo 0) Operar {1, 1, 2, 2, 2, 3, 4} com {1, 2, 3, 5}

9 Para efeitos práticos Redefinição de operações
União e União Total (Union e Union All) União elimina as duplicações Intersecção e Intersecção Total (Intersection e Intersection All) Intersecção elimina as duplicações Diferença e Diferença Total (Minus e Minus All) Diferença elimina duplicações

10 Definições Álgebra relacional: operadores
Sobre relações (não sobre tuplas individuais) possivelmente unitárias Resultando relações Permite aninhamento de operações

11 Operadores definidos Seleção – Restringe tuplas (linhas)
Projeção – Restringe atributos (colunas) Junção – Combina tuplas segundo uma condição Divisão – Restringe tuplas e atributos União – União das relações (atributos iguais) Intersecção – Intersecção das relações (idem) Diferença – Diferença das relações (idem) Produto Cartesiano – Gera combinações

12 Observação importante
As linguagens disponíveis para acesso a Bancos de Dados relacionais, incluindo SQL, não utilizam os mesmos operadores ou nomes definidos pela álgebra relacional. Entretanto todos os operadores da álgebra relacional podem ser escritos usando estas linguagens

13 União Fornecedor Cliente Fornecedor  Cliente Matricula Nome 001 José
010 Carla 100 Jaqueline Matricula Nome 000 Maria 001 José 002 Jaqueline Fornecedor  Cliente Matricula Nome 001 José 010 Carla 100 Jaqueline 000 Maria 002

14 Considerações União é a operação entre duas tabelas cujo resultado contém todas as linhas presentes em uma das tabelas originais ou em ambas, onde As tabelas devem ter uma estrutura similar, com o mesmo número de colunas e domínios compatíveis dos atributos correspondentes. Linhas duplicadas são eliminadas

15 Intersecção Fornecedor Cliente Fornecedor  Cliente Matricula Nome 001
José 010 Carla 100 Jaqueline Matricula Nome 000 Maria 001 José 002 Jaqueline Fornecedor  Cliente Matricula Nome 101 José

16 Considerações Interseção é a operação entre duas tabelas de estrutura similar cujo resultado contém todas as linhas presentes em ambas. Linhas duplicadas são eliminadas

17 Diferença Fornecedor Cliente Fornecedor – Cliente Matricula Nome 001
José 010 Carla 100 Jaqueline Matricula Nome 000 Maria 001 José 002 Jaqueline Fornecedor – Cliente Matricula Nome 010 Carla 100 Jaqueline

18 Considerações Diferença é a operação entre duas tabelas de estrutura similar cujo resultado contém todas as linhas que estão na primeira tabela e não aparecem na segunda. A - B é diferente de B - A (mostre)

19 Representação Gráfica
União Intersecção Diferença

20 Seleção condição(relação)
O operador de seleção opera sobre uma relação Gera uma relação contendo todos os atributos das tuplas selecionadas

21 Exemplo Alunos Sexo=’F’(Alunos) Sexo=’F’  Curso=’Quim’(Alunos)
Matricula Nome Sexo Curso 01001 Antônio M Comp 01002 Jaqueline F 02001 Núbia Quim Sexo=’F’(Alunos) Matricula Nome Sexo Curso 01002 Jaqueline F Comp 02001 Núbia Quim Sexo=’F’  Curso=’Quim’(Alunos) Matricula Nome Sexo Curso 02001 Núbia F Quim

22 Projeção A1,A2…An(relação)
A operação de projeção opera sobre uma relação gerando outra que contém todas as tuplas da original, com alguns de seus atributos

23 Exemplo Nome, Sexo(Alunos) Sexo(Alunos) Nome Sexo Antonio M
Jacqueline F Núbia Sexo M F

24 Produto Cartesiano Relação1 X Relação2
O operador produto cartesiano combina duas relações gerando uma cujas tuplas são as possíveis combinações das tuplas das relações originais A X Y B C A B C X Y =

25 Exemplo Cursos Alunos Cod Nome_Curso Área Comp
B. Ciência da Computação Exatas Filos B. Filosofia Humanas Quim Quimica Alunos Matricula Nome Sexo Curso 01001 Antônio M Comp 01002 Jaqueline F 02001 Núbia Quim 03001 Léa Filos

26 Exemplo (cont) Cursos X Alunos Cod Nome_Curso Área Matr. Nome Sexo
Comp B. Ciência da Computação Exatas 01001 Antônio M Filos B. Filosofia Humanas Quim Quimica 01002 Jaqueline F 02001 Núbia 03001 Léa

27 Junção Relação1><condição Tabela_2
O operador de junção combina as tuplas de duas relações segundo uma ou mais condições. A condição de junção deve ser baseada em um ou mais atributos de cada uma das relações cujos valores compartilhem um domínio comum. As linhas das relações são combinadas sempre que a condição de junção for verdadeira. Geralmente a condição é uma igualdade entre atributos

28 Exemplo Cursos Alunos Cod Nome_Curso Área Comp
B. Ciência da Computação Exatas Filos B. Filosofia Humanas Quim Quimica Alunos Matricula Nome Sexo Curso 01001 Antônio M Comp 01002 Jaqueline F 02001 Núbia Quim 03001 Léa Filos

29 Exemplo Cursos ><Cursos.cod = Alunos.Curso Alunos Cod Nome_Curso
Área Matr. Nome Sexo Curso Comp B. Ciência da Computação Exatas 01001 Antônio M 01002 Jaqueline F Quim Quimica 02001 Núbia Filos B. Filosofia Human 03001 Léa

30 Junção Igual Quando a condição de uma junção é a igualdade, a junção é chamada de Equijoin (observar que a tabela resultante terá sempre duas colunas idênticas). Além da igualdade outras condições podem utilizadas em uma junção, como maior

31 Exemplo Receitas Receitas Num Valor 001 150 002 175 003 85 Num Valor
101 140 102 155 103 170

32 Exemplo Receitas ><Receitas.valor < Despesas.ValorDespesas
Num Valor Num Valor 001 150 101 140 003 85 101 140 003 85 102 155 003 85 103 170

33 Junção Natural Relação1><Relação2
Uma Junção Natural é um Equijoin onde um dos atributos idênticos é eliminado. O operador de junção natural combina as tuplas de duas relações que tem atributos comuns (mesmo nome), resultando numa relação que contém apenas as tuplas onde todos os atributos comuns apresentam o mesmo valor. Um dos atributos idênticos é eliminado, evitando a duplicidade

34 Exemplo Observar os atributos Com mesmo nome! Cursos Alunos Curso
Área Comp B. Ciência da Computação Exatas Filos B. Filosofia Humanas Quim Quimica Alunos Matricula Nome Sexo Curso 01001 Antônio M Comp 01002 Jaqueline F 02001 Núbia Quim 03001 Léa Filos

35 Exemplo Cursos ><Alunos Um único atributo “Curso” Curso
Nome_Curso Área Matr. Nome Sexo Comp B. Ciência da Computação Exatas 01001 Antônio M 01002 Jaqueline F Quim Quimica 02001 Núbia Filos B. Filosofia Human 03001 Léa Um único atributo “Curso”

36 Junção Interna (Inner Join)
Originalmente o modelo relacional definiu o operador de junção apenas com as características apresentadas até aqui. Posteriormente este tipo ficou conhecido como Inner Join e a operação de junção foi estendida com a definição de Outer Join. Em um Inner Join existe a possibilidade de que algumas das tuplas de uma ou ambas as relações de uma junção não façam parte da tabela resultante.

37 Exemplo Funcionarios Setores Mat Nome Setor 301 João 01 482 Miguel 02
127 Roberto 04 185 Dora 079 Esmeralda 246 Jaqueline 03 128 Leandro 248 Marcos Setor Nome_Setor 01 Rec. Humanos 02 Contabilidade 03 Vendas 04 Diretoria 05 Informática 06 Patrimônio

38 Exemplo Funcionarios >< Setores
Mat Nome Setor Nome_Setor 301 João 01 Rec. Humanos 482 Miguel 02 Contabilidade 127 Roberto 04 Diretoria 185 Dora 079 Esmeralda 246 Jaqueline 03 Vendas Funcionários sem setor não são relacionados!

39 Junção Externa (Outer Join)
O Outer Join é uma extensão do operador de junção utilizado para tratamento de ausência de informações. A operação Outer Join mantém na relação resultante TODAS as tuplas de uma ou mais relações participantes da junção.

40 Junção Externa (Outer Join)
Utilizada quando é necessário incluir tuplas de uma relação onde os valores não têm correspondência com a outra. Outer Join = Resultado do Inner Join + Tuplas da relação sem correspondência (na outra relação do join) As tuplas da relação que não tem correspondência são completadas com nulos

41 Junção Externa (Outer Join)
Foram definidos três tipos de Outer Joins entre duas relações: Left Outer Join =>< Right Outer Join ><= Full Outer Join =><=

42 Left Outer Join Funcionarios =>< Setores
Mat Nome Setor Nome_Setor 301 João 01 Rec. Humanos 482 Miguel 02 Contabilidade 127 Roberto 04 Diretoria 185 Dora 079 Esmeralda 246 Jaqueline 03 Vendas 128 Leandro 248 Marcos Inner Join + Tuplas não relacionadas da relação à esquerda

43 Right Outer Join Funcionarios ><= Setores
Mat Nome Setor Nome_Setor 301 João 01 Rec. Humanos 482 Miguel 02 Contabilidade 127 Roberto 04 Diretoria 185 Dora 079 Esmeralda 246 Jaqueline 03 Vendas 05 Informática 06 Patrimônio Inner Join + Tuplas não relacionadas da relação à direita

44 Full Outer Join Funcionarios =><= Setores
Mat Nome Setor Nome_Setor 301 João 01 Rec. Humanos 482 Miguel 02 Contabilidade 127 Roberto 04 Diretoria 185 Dora 079 Esmeralda 246 Jaqueline 03 Vendas 128 Leandro 248 Marcos 05 Informática 06 Patrimônio Inner Join + Tuplas não relacionadas das relação à direita e à esquerda

45 Divisão Relação1Relação2
Divisão é a operação entre duas relações onde: Uma é o dividendo e outra o divisor As relações devem possuir um ou mais atributos em comum A relação dividendo (A) deve possuir atributos adicionais

46 Divisão Relação1Relação2
Divisão é a operação entre duas relações onde: A relação resultante é formada pelos atributos da relação dividendo (A) que não fazem parte da relação divisor (B). A relação resultante contém apenas tuplas da relação dividendo (A) que satisfazem a comparação com todas as tuplas da relação divisor (B)

47  = Exemplo O atributo que sobra da primeira relação, com
MatFunc Proj 301 73 02 11 482 127 43 Proj 02 11 MatFunc 301 482 O atributo que sobra da primeira relação, com os valores que ele possui nas tuplas onde ele se casa com algum atributo da segunda relação!

48 Operações Aninhadas Para o uso efetivo da álgebra relacional
Por ser “álgebra” Operadores sobre elementos de certos conjuntos (relações) O resultado de qualquer operação pertende ao mesmo conjunto (relações) Pode-se usar o resultado de uma operação como entrada para outra

49 Exemplos Nome, Matricula (departamento= ‘DCET’ ( ALUNO >< CURSO))  Nome, Matricula (ALUNO >< (departamento= ‘DCET’ (CURSO) ) ) O nome e a matrícula dos alunos matriculados em cursos do DCET Qual a diferença?

50 Álgebra Relacional. FIM! Escher
“Quando se corta a cabeça de um intelectual, ele morre” Francis Picabia Escher


Carregar ppt "Álvaro Vinícius de Souza Coêlho"

Apresentações semelhantes


Anúncios Google