Banco de Dados Relacional Estendido

1,253 views
1,133 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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,253
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×