SlideShare uma empresa Scribd logo
1 de 36
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
Exemplos de BD Relacionais
         Estendidos
• Modelo Baseado em Lógica
• Relacional Encaixado
Modelo Baseado em Lógica
        Características
• Utiliza uma linguagem de consulta não
  procedural
• É baseado na lógica de primeira ordem
É 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
Estrutura da Consulta
                                     Regra 1
             [Programa Datalog]      Regra 2
                                     Regra n
Consulta

             Instrução de Consulta
Estrutura de uma Regra

  Cabeça                      Corpo


NovaRelação : - Literal 1, ... , Literal n, predicado
Literal
• Relação (campo 1, campo 2, ... , campo n)
• Ex.: Depósito (agência, número, cliente,
  saldo)
  Depósito(“Tramandaí”, X , Y , Z )
Ex. de Regra
• Rel (Y,X): - Depósito (“Tramandaí”, X, Y,
  Z), Z>200
Instrução de Consulta
• Comando ?
  Depósito (“Tramandaí”, X, Y, Z) ?
• Comando query
  Query (Y): - Depósito (“Tramandaí”, X, Y,
  Z) Z>1000
Ex. de Programa
         Considerando o BD:
• Cliente (cliente, cidade, fone, renda,
  número_revistas)
• Interesse (cliente, interesse)
• Assinatura (cliente, revista)
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)
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) ?
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
Produto Cartesiano
• RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1
  (X1, ... , Xn), rel2 (Y1, ... ,Yn)
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)
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)
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)
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)?
Funcionários sob Rel são procurados e
quando encontrados são adicionados a Rel.
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.
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.
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.
Doc não normalizada
   Título      Lista_Autor      Data      Lista_Palav
                                           ra-chave
Plano       de {Samuel,      1/Abril/95   {Lucro,
venda          João}                      Estratégia}

Relatório      {João,        17/Junho/97 {Lucro,
geral          Fábio}                    Pessoal}
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)
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
“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
“Dê o título e número de autores
       de cada documento”
• select Título, count (Lista_Autor)
• from Doc
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
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
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>
Por exemplo desencaixar a lista de autores em
  único campo para a relação Doc:

unnest     Doc    on    Lista_Autor       as
 Autor
O operador encaixar transforma uma tabela
 normalizada em uma encaixada



  nest <tabela> on <campo> as
         <novo campo>
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)
“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)
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

Mais conteúdo relacionado

Mais procurados

Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultasjulianaveregue
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosCláudio Amaral
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo RelacionalJoel Santos
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MERJoel Santos
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERRangel Javier
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de DadosDaniel Brandão
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Gustavo Zimmermann
 

Mais procurados (13)

Estrutura de Dados - Registros
Estrutura de Dados - RegistrosEstrutura de Dados - Registros
Estrutura de Dados - Registros
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Tipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e EncapsulamentoTipos Abstratos de Dados e Encapsulamento
Tipos Abstratos de Dados e Encapsulamento
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
Aula2 - SQL
Aula2 - SQLAula2 - SQL
Aula2 - SQL
 
Modelagem de Dados
Modelagem de DadosModelagem de Dados
Modelagem de Dados
 
DER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e RelacionamentosDER - Diagrama de Entidade e Relacionamentos
DER - Diagrama de Entidade e Relacionamentos
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Modelo Conceitual MER
Modelo Conceitual MERModelo Conceitual MER
Modelo Conceitual MER
 
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DERBanco de Dados - Introdução - Projeto de Banco de Dados - DER
Banco de Dados - Introdução - Projeto de Banco de Dados - DER
 
Introdução a Banco de Dados
Introdução a Banco de DadosIntrodução a Banco de Dados
Introdução a Banco de Dados
 
Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)Banco de Dados II: MER (aula 1)
Banco de Dados II: MER (aula 1)
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 

Destaque

Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetosDaiana de Ávila
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Rafael Barbolo
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS Antonio Pedro
 
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Mauricio Volkweis Astiazara
 
SQLAlchemy - A magia do mapeamento objeto relacional.
SQLAlchemy - A magia do mapeamento objeto relacional.SQLAlchemy - A magia do mapeamento objeto relacional.
SQLAlchemy - A magia do mapeamento objeto relacional.Ramiro Luz
 
Aula 06 normalização
Aula 06 normalizaçãoAula 06 normalização
Aula 06 normalizaçãoLuan Caldas
 
Introdução a banco de dados à modelagem e
Introdução a banco  de dados à modelagem eIntrodução a banco  de dados à modelagem e
Introdução a banco de dados à modelagem eFrank Lira
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquicorosimaracorsino
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databasesSuhad Jihad
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Ricardo Terra
 

Destaque (14)

Modelo orientado a objetos
Modelo orientado a objetosModelo orientado a objetos
Modelo orientado a objetos
 
Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)Herança em Banco de Dados Objeto-Relacional (BDOR)
Herança em Banco de Dados Objeto-Relacional (BDOR)
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS
 
SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python SQLAlchemy - Desenvolvendo uma aplicação com Python
SQLAlchemy - Desenvolvendo uma aplicação com Python
 
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
 
SQLAlchemy - A magia do mapeamento objeto relacional.
SQLAlchemy - A magia do mapeamento objeto relacional.SQLAlchemy - A magia do mapeamento objeto relacional.
SQLAlchemy - A magia do mapeamento objeto relacional.
 
Aula 06 normalização
Aula 06 normalizaçãoAula 06 normalização
Aula 06 normalização
 
02 banco de dados relacional
02 banco de dados relacional02 banco de dados relacional
02 banco de dados relacional
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Introdução a banco de dados à modelagem e
Introdução a banco  de dados à modelagem eIntrodução a banco  de dados à modelagem e
Introdução a banco de dados à modelagem e
 
Modelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e HierárquicoModelo Relacional, Rede e Hierárquico
Modelo Relacional, Rede e Hierárquico
 
Object relational and extended relational databases
Object relational and extended relational databasesObject relational and extended relational databases
Object relational and extended relational databases
 
Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)Apostila Modelo ER (Entidade Relacionamento)
Apostila Modelo ER (Entidade Relacionamento)
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 

Semelhante a Banco de Dados Relacional Estendido

aula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfaula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfLeonardo Neves
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de DadosHelder Lopes
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturadaUNIPsystem
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Mariana Hiyori
 
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big DataPré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big DataFabrício Barth
 
Lilacs application profile
Lilacs application  profileLilacs application  profile
Lilacs application profileSueli Suga
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dadosmlima72
 
MongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - NaveggMongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - NaveggFelipe Guimarães
 
MongoDB - Workshop Buscapé
MongoDB - Workshop BuscapéMongoDB - Workshop Buscapé
MongoDB - Workshop BuscapéWagner Bonfiglio
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalRodrigo Kiyoshi Saito
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Miguel Aquino
 
Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]Fabrício Barth
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandraRichiely Paiva
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsAndré Agostinho
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Osny Pereira Filho
 

Semelhante a Banco de Dados Relacional Estendido (20)

aula2_algebra_calculo.pdf
aula2_algebra_calculo.pdfaula2_algebra_calculo.pdf
aula2_algebra_calculo.pdf
 
Workshop MongoDB
Workshop MongoDBWorkshop MongoDB
Workshop MongoDB
 
Administração de Banco de Dados
Administração de Banco de DadosAdministração de Banco de Dados
Administração de Banco de Dados
 
Sql01
Sql01Sql01
Sql01
 
Analise estruturada
Analise estruturadaAnalise estruturada
Analise estruturada
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Bd aula2
Bd aula2Bd aula2
Bd aula2
 
Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)Base de Dados - Diagramas E-A (cont.)
Base de Dados - Diagramas E-A (cont.)
 
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big DataPré-processamento [no R] e Análise Exploratória - Curso de Big Data
Pré-processamento [no R] e Análise Exploratória - Curso de Big Data
 
Lilacs application profile
Lilacs application  profileLilacs application  profile
Lilacs application profile
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
MongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - NaveggMongoDB - Wagner Bonfiglio - Navegg
MongoDB - Wagner Bonfiglio - Navegg
 
MongoDB - Workshop Buscapé
MongoDB - Workshop BuscapéMongoDB - Workshop Buscapé
MongoDB - Workshop Buscapé
 
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento RelacionalBD I - Aula 04 A - Resumo MER e Mapeamento Relacional
BD I - Aula 04 A - Resumo MER e Mapeamento Relacional
 
Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]Modelo conceitual fisico_logico_er[1]
Modelo conceitual fisico_logico_er[1]
 
Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]Web Data Mining com R: pré-processamento de dados [no R]
Web Data Mining com R: pré-processamento de dados [no R]
 
Apresentação cassandra
Apresentação cassandraApresentação cassandra
Apresentação cassandra
 
Fluent NHibernate - Baby Steps
Fluent NHibernate - Baby StepsFluent NHibernate - Baby Steps
Fluent NHibernate - Baby Steps
 
Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01Express2012simples 130312140529-phpapp01
Express2012simples 130312140529-phpapp01
 

Mais de Mauricio Volkweis Astiazara

Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Mauricio Volkweis Astiazara
 
Comparação de Algoritmos Baseados em Q-Learning
Comparação de Algoritmos Baseados em Q-LearningComparação de Algoritmos Baseados em Q-Learning
Comparação de Algoritmos Baseados em Q-LearningMauricio Volkweis Astiazara
 
Sistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeSistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeMauricio Volkweis Astiazara
 
Sistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeSistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeMauricio Volkweis Astiazara
 

Mais de Mauricio Volkweis Astiazara (20)

Como Programar Melhor em Java
Como Programar Melhor em JavaComo Programar Melhor em Java
Como Programar Melhor em Java
 
Sistemas Imunológicos Artificiais
Sistemas Imunológicos ArtificiaisSistemas Imunológicos Artificiais
Sistemas Imunológicos Artificiais
 
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
Sistema Imunológico Artificial para Predição de Fraudes e Furtos de Energia E...
 
Comparação de Algoritmos Baseados em Q-Learning
Comparação de Algoritmos Baseados em Q-LearningComparação de Algoritmos Baseados em Q-Learning
Comparação de Algoritmos Baseados em Q-Learning
 
Classificador de Documentos Naïve Bayes
Classificador de Documentos Naïve BayesClassificador de Documentos Naïve Bayes
Classificador de Documentos Naïve Bayes
 
Visão Computacional
Visão ComputacionalVisão Computacional
Visão Computacional
 
Sistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeSistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre Saúde
 
Sistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre SaúdeSistema de Recomendação de Páginas sobre Saúde
Sistema de Recomendação de Páginas sobre Saúde
 
Processamento de Imagens
Processamento de ImagensProcessamento de Imagens
Processamento de Imagens
 
Percepção, Movimento e Ação
Percepção, Movimento e AçãoPercepção, Movimento e Ação
Percepção, Movimento e Ação
 
Memória e Aprendizagem
Memória e AprendizagemMemória e Aprendizagem
Memória e Aprendizagem
 
Gerência de Requisitos
Gerência de RequisitosGerência de Requisitos
Gerência de Requisitos
 
Testes de Sistema
Testes de SistemaTestes de Sistema
Testes de Sistema
 
Telefonia Móvel
Telefonia MóvelTelefonia Móvel
Telefonia Móvel
 
Telefonia Móvel
Telefonia MóvelTelefonia Móvel
Telefonia Móvel
 
Realidade Virtual
Realidade VirtualRealidade Virtual
Realidade Virtual
 
Protótipo de Simulador de Elevadores
Protótipo de Simulador de ElevadoresProtótipo de Simulador de Elevadores
Protótipo de Simulador de Elevadores
 
Protótipo de Simulador de Elevadores
Protótipo de Simulador de ElevadoresProtótipo de Simulador de Elevadores
Protótipo de Simulador de Elevadores
 
Planejamento de Informática
Planejamento de InformáticaPlanejamento de Informática
Planejamento de Informática
 
Planejamento de Informática
Planejamento de InformáticaPlanejamento de Informática
Planejamento de Informática
 

Banco de Dados Relacional Estendido

  • 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ítulo Lista_Autor Data Lista_Palav ra-chave Plano de {Samuel, 1/Abril/95 {Lucro, venda João} Estratégia} Relatório {João, 17/Junho/97 {Lucro, geral Fábio} 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. 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. 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. 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