Carregar apresentação
A apresentação está carregando. Por favor, espere
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ção1Relaçã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ção1Relaçã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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.