Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Banco de Dados Relacional Estendido

1,552 views

Published on

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
  • Be the first to comment

Banco de Dados Relacional Estendido

  1. 1. Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara
  2. 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. 3. Exemplos de BD Relacionais Estendidos• Modelo Baseado em Lógica• Relacional Encaixado
  4. 4. Modelo Baseado em Lógica Características• Utiliza uma linguagem de consulta não procedural• É baseado na lógica de primeira ordem
  5. 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. 6. Estrutura da Consulta Regra 1 [Programa Datalog] Regra 2 Regra nConsulta Instrução de Consulta
  7. 7. Estrutura de uma Regra Cabeça CorpoNovaRelação : - Literal 1, ... , Literal n, predicado
  8. 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. 9. Ex. de Regra• Rel (Y,X): - Depósito (“Tramandaí”, X, Y, Z), Z>200
  10. 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. 11. Ex. de Programa Considerando o BD:• Cliente (cliente, cidade, fone, renda, número_revistas)• Interesse (cliente, interesse)• Assinatura (cliente, revista)
  12. 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. 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. 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. 15. Produto Cartesiano• RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1 (X1, ... , Xn), rel2 (Y1, ... ,Yn)
  16. 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. 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. 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. 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. 20. Funcionários sob Rel são procurados equando encontrados são adicionados a Rel.
  21. 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. 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. 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. 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. 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. 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. 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. 28. “Dê o título e número de autores de cada documento”• select Título, count (Lista_Autor)• from Doc
  29. 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. 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. 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. 32. Por exemplo desencaixar a lista de autores em único campo para a relação Doc:unnest Doc on Lista_Autor as Autor
  33. 33. O operador encaixar transforma uma tabela normalizada em uma encaixada nest <tabela> on <campo> as <novo campo>
  34. 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. 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. 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

×