• Like
Banco de Dados Relacional Estendido
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Banco de Dados Relacional Estendido

  • 860 views
Published

Baixe mais arquivos em http://pastadomau.wikidot.com. …

Baixe mais arquivos em http://pastadomau.wikidot.com.
Este trabalho mostra duas extensões do tradicional modelo relacional para banco de dados. Essas extensões do modelo relacional visam ampliar a aplicabilidade do banco de dados sem sacrificar o fundamento relacional.
As duas extensões abordadas são:
- Modelo Baseado em Lógica
- Modelo Relacional Encaixado
Nota importante: essa textura de fundo era moda nos anos 90.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
860
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara
  • 2. Conceito• É uma extensão do modelo Relacional• Mantém as qualidades do modelo sem sacrificar o fundamento relacional• Alarga a aplicabilidade• O torna menos restrito
  • 3. Exemplos de BD Relacionais Estendidos• Modelo Baseado em Lógica• Relacional Encaixado
  • 4. Modelo Baseado em Lógica Características• Utiliza uma linguagem de consulta não procedural• É baseado na lógica de primeira ordem
  • 5. É baseado em dois tipos de Relação• Relações Base, às vezes chamadas de BD extensional• Relações Derivadas, às vezes chamadas de BD intencional
  • 6. Estrutura da Consulta Regra 1 [Programa Datalog] Regra 2 Regra nConsulta Instrução de Consulta
  • 7. Estrutura de uma Regra Cabeça CorpoNovaRelação : - Literal 1, ... , Literal n, predicado
  • 8. Literal• Relação (campo 1, campo 2, ... , campo n)• Ex.: Depósito (agência, número, cliente, saldo) Depósito(“Tramandaí”, X , Y , Z )
  • 9. Ex. de Regra• Rel (Y,X): - Depósito (“Tramandaí”, X, Y, Z), Z>200
  • 10. Instrução de Consulta• Comando ? Depósito (“Tramandaí”, X, Y, Z) ?• Comando query Query (Y): - Depósito (“Tramandaí”, X, Y, Z) Z>1000
  • 11. Ex. de Programa Considerando o BD:• Cliente (cliente, cidade, fone, renda, número_revistas)• Interesse (cliente, interesse)• Assinatura (cliente, revista)
  • 12. Vamos elaborar um programa que ao finaltenha uma relação que contenha o nome eo fone dos clientes que tem renda maiorque R$ 1000 e interesse em informática.R1 (N,F): - Cliente (N, C, F, R), R>1000R2 (N,F): - Interesse (N, “informática”),R1 (N,F)
  • 13. Ex. de ConsultaConsultar nome e fone dos clientes da cidade de Torres que tem renda maior que 1500 e assinam menos de 3 revistas. X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda, Vnúmero), Vrenda>1500 Y (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3 Y (Vcliente, Vfone) ?
  • 14. Uma expressão equivalente usando a instrução deconsulta query ao invés de ? poderia ser:X (Vcliente, Vfone, Vnúmero): - Cliente(Vcliente, “Torres”, Vfone, Vrenda, Vnúmero),Vrenda>1500Query (Vcliente, Vfone): - X (Vcliente, Vfone,Vnúmero), Vnúmero<3
  • 15. Produto Cartesiano• RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1 (X1, ... , Xn), rel2 (Y1, ... ,Yn)
  • 16. UniãoRelUnião (X1, ... , Xn): - rel1 (X1, ... , Xn), predicadoRelUnião (X1, ... , Xn): - rel2 (X1, ... , Xn), predicadoEx.: Consultar nome e renda de todos os clientes de Torres e Tramandaí.Rel (A,D): - Cliente (A, “Torres”, C, D, E)Rel (A,D): - Cliente (A, “Tramandaí”, C, D, E)Outra forma equivalente seria usar a instrução query:Query (A,D) : - Cliente (A, “Torres”, C, D, E)Query (A,D) : - Cliente (A, “Tramandaí”, C, D, E)
  • 17. Diferença e Negação RelDif (X1, ... , Xn): - R1 (X1, ... , Xn), ¬ R2 (X1, ... , Xn)Ex.:Consultar o nome dos clientes que tem interesse em “informática” mas não assinam a revista “Guia Digital” A(X): - Interesse (X, “informática”) B(X): - Assinatura (X, “Guia Digital”) C(X): - A(X), ¬ B(X)
  • 18. RecursividadeVejamos um exemplo de sua utilização: Uma tabela de funcionários contendo o seu nome e o nome de seu gerente direto (primeiro acima dele). Este gerente também é um funcionário e está armazenado nesta mesma tabela, podendo ele também ter um superior, formando assim uma hierarquia gerencial. Funcionário (nome, gerente)
  • 19. Com o Datalog esta consulta é possívelutilizando recursividade. Ela poderiaapresentar a seguinte formulação:Rel (X): - Funcionário (X, “Bia”)Rel (X): - Funcionário (X, Y), Rel (Y)Query (X): - Rel(X) ou Rel (X)?
  • 20. Funcionários sob Rel são procurados equando encontrados são adicionados a Rel.
  • 21. Vantagens• A possibilidade de realizar consultas recursivas aumenta as possibilidades de modelagem e consulta.• Devido à proximidade com a álgebra relacional possibilita uma “pré-otimização” da consulta aplicando-se as regras de otimização algébrica.
  • 22. Modelo Relacional Encaixado CaracterísticasO modelo relacional encaixado é uma extensão do módulo relacional no qual os domínios podem ser valores atômicos ou assumirem valores que são relações. Assim o valor de um atributo pode ser uma relação, e o valor de um atributo dessa relação pode ser outra relação. Isto permite a construção de um objeto complexo que pode ser representado em uma única tupla de uma relação encaixada.
  • 23. Para demonstrar esse modelo usaremos o seguinte ex. de BDque armazena informações sobre Documentos: Título do documento• Lista de autores• Data• Lista de palavras-chave, palavras relativasao assunto que o documento trata.
  • 24. Doc não normalizada Título Lista_Autor Data Lista_Palav ra-chavePlano de {Samuel, 1/Abril/95 {Lucro,venda João} Estratégia}Relatório {João, 17/Junho/97 {Lucro,geral Fábio} Pessoal}
  • 25. A definição do esquema de Doc• Doc=(Título, Lista_Autor, Data, Lista_Palavra-chave)• Lista_Autor=(Autor)• Data=(Dia, Mês, Ano)• Lista_Palavra-chave=(Palavra-chave)
  • 26. consulta “Dê o título de todos osdocumentos escritos por João que dizem respeito a lucro”• select Título• from Doc• where “João” in Lista_Autor• and “Lucro” in Lista_Palavra- chave
  • 27. “Dê o ano de publicação dosdocumentos escritos por João que dizem respeito a lucro”• select Título, (select ano from data)• from Doc• where “João” in Lista_Autor• and “Lucro” in Lista_Palavra- chave
  • 28. “Dê o título e número de autores de cada documento”• select Título, count (Lista_Autor)• from Doc
  • 29. Considerando o BD:• Jogador (nome, pontuação)• pontuação (rodada, pontos) Consultar o nome e total de pontos dos jogadores com mais de 100 pontos
  • 30. Consultar o nome e total depontos dos jogadores com mais de 100 pontos• select nome, sum (select pontos from pontuação)• from Jogador• where sum (select pontos from pontuação)>100
  • 31. O operador desencaixar pode transformar uma tabela que está modelada de forma encaixada (não normalizada) em uma na 1FN. Sintaxe: unnest <tabela> on <campo> as <novo campo>
  • 32. Por exemplo desencaixar a lista de autores em único campo para a relação Doc:unnest Doc on Lista_Autor as Autor
  • 33. O operador encaixar transforma uma tabela normalizada em uma encaixada nest <tabela> on <campo> as <novo campo>
  • 34. As operações encaixar e desencaixar podem ser usadas nas consultas. Considerando o banco de dados abaixo: Cliente (codcliente, nome, fone) NF (codcliente, data, valor)
  • 35. “Dê o nome e a média de compras de cada cliente”:Select nome, avg (valor_total) From (nest (select nome, valor, codcliente from Cliente, NotaFiscal where Cliente.codcliente=NotaFiscal.cod cliente) on valor as valor total)
  • 36. Vantagens• modelo de mais fácil entendimento e mais intuitivo• usuário típico de um sistema pensa na organização das informações no modo não normalizado.• A representação em 4FN exigiria que os usuários incluíssem junções