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

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

Álgebra Relacional Álvaro Vinícius de Souza Coêlho

Apresentações semelhantes


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

1 Á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 –{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 FornecedorCliente MatriculaNome 001José 010Carla 100Jaqueline MatriculaNome 000Maria 001José 002Jaqueline Fornecedor Cliente MatriculaNome 001José 010Carla 100Jaqueline 000Maria 002Jaqueline

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 FornecedorCliente MatriculaNome 001José 010Carla 100Jaqueline MatriculaNome 000Maria 001José 002Jaqueline Fornecedor Cliente MatriculaNome 101José

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 FornecedorCliente MatriculaNome 001José 010Carla 100Jaqueline MatriculaNome 000Maria 001José 002Jaqueline Fornecedor – Cliente MatriculaNome 010Carla 100Jaqueline

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çãoDiferenç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 MatriculaNomeSexoCurso 01001AntônioMComp 01002JaquelineFComp 02001NúbiaFQuim MatriculaNomeSexoCurso 01002JaquelineFComp 02001NúbiaFQuim MatriculaNomeSexoCurso 02001NúbiaFQuim Alunos Sexo=F (Alunos) Sexo=F Curso=Quim (Alunos)

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 NomeSexo AntonioM JacquelineF NúbiaF Sexo M F F Nome, Sexo (Alunos) Sexo (Alunos)

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 B C X Y AX AY BX BY CX CY =

25 Exemplo CodNome_CursoÁrea CompB. Ciência da ComputaçãoExatas FilosB. FilosofiaHumanas QuimQuimicaExatas MatriculaNomeSex o Curso 01001AntônioMComp 01002JaquelineFComp 02001NúbiaFQuim 03001LéaFFilos Cursos Alunos

26 Exemplo (cont) CodNome_CursoÁreaMatr.NomeSexoCurso CompB. Ciência da ComputaçãoExatas01001AntônioMComp FilosB. FilosofiaHuman as 01001AntônioMComp QuimQuimicaExatas01001AntônioMComp B. Ciência da ComputaçãoExatas01002Jaquelin e FComp FilosB. FilosofiaHuman as 01002Jaquelin e FComp QuimQuimicaExatas01002Jaquelin e FComp B. Ciência da ComputaçãoExatas02001NúbiaFQuim FilosB. FilosofiaHuman as 02001NúbiaFQuim QuimicaExatas02001NúbiaFQuim CompB. Ciência da ComputaçãoExatas03001LéaFFilos B. FilosofiaHuman as 03001LéaFFilos QuimQuimicaExatas03001LéaFFilos Cursos X Alunos

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 CodNome_CursoÁrea CompB. Ciência da ComputaçãoExatas FilosB. FilosofiaHumanas QuimQuimicaExatas MatriculaNomeSex o Curso 01001AntônioMComp 01002JaquelineFComp 02001NúbiaFQuim 03001LéaFFilos Cursos Alunos

29 Exemplo CodNome_CursoÁreaMatr.NomeSexoCurso CompB. Ciência da ComputaçãoExatas01001AntônioMComp B. Ciência da ComputaçãoExatas01002Jaquelin e FComp QuimQuimicaExatas02001NúbiaFQuim FilosB. FilosofiaHuman03001LéaFFilos Cursos >< Cursos.cod = Alunos.Curso Alunos

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 NumValor Receitas NumValor Receitas

32 Exemplo NumValor Receitas >< Receitas.valor < Despesas.Valor Despesas NumValor

33 Junção Natural Relação1>

34 Exemplo CursoNome_CursoÁrea CompB. Ciência da ComputaçãoExatas FilosB. FilosofiaHumanas QuimQuimicaExatas Cursos MatriculaNomeSex o Curso 01001AntônioMComp 01002JaquelineFComp 02001NúbiaFQuim 03001LéaFFilos Alunos Observar os atributos Com mesmo nome!

35 Exemplo CursoNome_CursoÁreaMatr.NomeSexo CompB. Ciência da ComputaçãoExatas01001AntônioM CompB. Ciência da ComputaçãoExatas01002Jaquelin e F QuimQuimicaExatas02001NúbiaF FilosB. FilosofiaHuman03001LéaF Cursos >

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 MatNomeSetor 301João01 482Miguel02 127Roberto04 185Dora02 079Esmeralda01 246Jaqueline03 128Leandro 248Marcos Funcionarios Seto r Nome_Setor 01Rec. Humanos 02Contabilidade 03Vendas 04Diretoria 05Informática 06Patrimônio Setores

38 Exemplo MatNomeSetorNome_Setor 301João01Rec. Humanos 482Miguel02Contabilidade 127Roberto04Diretoria 185Dora02Contabilidade 079Esmeralda01Rec. Humanos 246Jaqueline03Vendas Funcionarios >< Setores 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 MatNomeSetorNome_Setor 301João01Rec. Humanos 482Miguel02Contabilidade 127Roberto04Diretoria 185Dora02Contabilidade 079Esmeralda01Rec. Humanos 246Jaqueline03Vendas 128Leandro 248Marcos Funcionarios =>< Setores Inner Join + Tuplas não relacionadas da relação à esquerda

43 Right Outer Join MatNomeSetorNome_Setor 301João01Rec. Humanos 482Miguel02Contabilidade 127Roberto04Diretoria 185Dora02Contabilidade 079Esmeralda01Rec. Humanos 246Jaqueline03Vendas 05Informática 06Patrimônio Funcionarios ><= Setores Inner Join + Tuplas não relacionadas da relação à direita

44 Full Outer Join MatNomeSetorNome_Setor 301João01Rec. Humanos 482Miguel02Contabilidade 127Roberto04Diretoria 185Dora02Contabilidade 079Esmeralda01Rec. Humanos 246Jaqueline03Vendas 128Leandro 248Marcos 05Informática 06Patrimônio Funcionarios =><= Setores 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 MatFuncProj Proj MatFunc = 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! Quando se corta a cabeça de um intelectual, ele morre Francis Picabia Escher


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

Apresentações semelhantes


Anúncios Google