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

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

Embed Size (px)

Citation preview

Page 1: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Banco de Dados Relacional Estendido

Igor Casa Nova dos Santos

Mauricio Volkweis Astiazara

Page 2: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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

Page 3: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Exemplos de BD Relacionais Estendidos

• Modelo Baseado em Lógica

• Relacional Encaixado

Page 4: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Modelo Baseado em LógicaCaracterísticas

• Utiliza uma linguagem de consulta não procedural

• É baseado na lógica de primeira ordem

Page 5: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

É 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

Page 6: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Estrutura da Consulta

Regra 1 [Programa Datalog] Regra 2 Regra nConsulta

Instrução de Consulta

Page 7: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Estrutura de uma Regra

Cabeça Corpo

NovaRelação : - Literal 1, ... , Literal n, predicado

Page 8: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Literal

• Relação (campo 1, campo 2, ... , campo n)

• Ex.: Depósito (agência, número, cliente, saldo)

Depósito(“Tramandaí”, X , Y , Z )

Page 9: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Ex. de Regra

• Rel (Y,X): - Depósito (“Tramandaí”, X, Y, Z), Z>200

Page 10: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Instrução de Consulta

• Comando ?

Depósito (“Tramandaí”, X, Y, Z) ?

• Comando query

Query (Y): - Depósito (“Tramandaí”, X, Y, Z) Z>1000

Page 11: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Ex. de ProgramaConsiderando o BD:

• Cliente (cliente, cidade, fone, renda, número_revistas)

• Interesse (cliente, interesse)

• Assinatura (cliente, revista)

Page 12: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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>1000R2 (N,F): - Interesse (N, “informática”), R1 (N,F)

Page 13: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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>1500Y (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3Y (Vcliente, Vfone) ?

Page 14: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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>1500Query (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3

Page 15: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Produto Cartesiano

• RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1 (X1, ... , Xn), rel2 (Y1, ... ,Yn)

Page 16: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)

Page 17: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)

Page 18: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)

Page 19: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)?

Page 20: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Funcionários sob Rel são procurados e

quando encontrados são adicionados a Rel.

Page 21: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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.

Page 22: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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.

Page 23: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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.

Page 24: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Doc não normalizadaTítulo Lista_Autor Data Lista_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}

Page 25: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)

Page 26: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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

Page 27: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

“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

Page 28: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

“Dê o título e número de autores de cada documento”

• select Título, count (Lista_Autor)• from Doc

Page 29: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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

Page 30: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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

Page 31: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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:

Page 32: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Por exemplo desencaixar a lista de autores em único campo para a relação Doc:

 

unnest Doc on Lista_Autor as Autor

Page 33: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

nest <tabela> on <campo> as <novo campo>

O operador encaixar transforma uma tabela normalizada em uma encaixada

Page 34: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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)

Page 35: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

“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)

Page 36: Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

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