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

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

Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara.

Apresentações semelhantes


Apresentação em tema: "Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara."— 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 Regra 1 [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 RelUnião (X1,..., Xn): - rel2 (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. 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. 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ítuloLista_AutorDataLista_Palav ra-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 select nome, sum (select pontos from pontuação) from Jogador where sum (select pontos from pontuação)>100

31 unnest on as O operador desencaixar pode transformar uma tabela que está modelada de forma encaixada (não normalizada) em uma na 1FN. Sintaxe:

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 on as O operador encaixar transforma uma tabela normalizada em uma encaixada

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


Carregar ppt "Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara."

Apresentações semelhantes


Anúncios Google