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

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

Banco de Dados Relacional Estendido

Apresentações semelhantes


Apresentação em tema: "Banco de Dados Relacional Estendido"— Transcrição da apresentação:

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 [Programa Datalog] Regra 2 Regra n Consulta
Instrução de Consulta

7 Estrutura de uma Regra Cabeça Corpo
NovaRelaçã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 final tenha uma relação que contenha o nome e o fone dos clientes que tem renda maior que R$ 1000 e interesse em informática. R1 (N,F): - Cliente (N, C, F, R), R>1000 R2 (N,F): - Interesse (N, “informática”), R1 (N,F)

13 Ex. de Consulta Consultar 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 de consulta query ao invés de ? poderia ser:
X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda, Vnúmero), Vrenda>1500 Query (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ão RelUnião (X1, ... , Xn): - rel1 (X1, ... , Xn), predicado
Ex.: 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 Recursividade Vejamos 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ível utilizando recursividade
Com o Datalog esta consulta é possível utilizando recursividade. Ela poderia apresentar 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 e quando 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ísticas
O 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
Para demonstrar esse modelo usaremos o seguinte ex. de BD que armazena informações sobre Documentos: Título do documento ·  Lista de autores ·  Data ·  Lista de palavras-chave, palavras relativas ao assunto que o documento trata.

24 Doc não normalizada Título Lista_Autor Data Lista_Palavra-chave
Plano de venda {Samuel, João} 1/Abril/95 {Lucro, Estratégia} Relatório geral {João, Fábio} 17/Junho/97 {Lucro, 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 os documentos 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 dos documentos 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 de pontos 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 unnest <tabela> on <campo> as <novo campo>
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 nest <tabela> on <campo> as <novo campo>
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
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.codcliente) 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


Carregar ppt "Banco de Dados Relacional Estendido"

Apresentações semelhantes


Anúncios Google