UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
DEPARTAMENTO ACADÊMICO DE INFORMÁTICA
CIÊNCIA DA COMPUTAÇÃO
RAFAEL DE ANDRADE PEREIRA
BANCO DE DADOS DEDUTIVO
PONTA GROSSA
2014
RAFAEL DE ANDRADE PEREIRA
BANCO DE DADOS DEDUTIVO
Trabalho apresentado para a disciplina de
Gerência de Banco de Dados ministrada
pela Professora Dra. Simone de Almeida,
do curso de Bacharel em Ciência da
Computação, do Departamento
Acadêmico de Informática da
Universidade Tecnológica Federal do
Paraná – Campus Ponta Grossa, como
forma de atividade avaliativa parcial.
PONTA GROSSA
2014
RESUMO
PEREIRA, A. R. Banco de dados dedutivo. 2014. Universidade Tecnológica
Federal do Paraná. Ponta Grossa, 2014.
Esse artigo visa apresentar os conceitos do gerenciamento de um Bando de Dados
Dedutivo, e suas respectivas linguagens utilizadas. O banco de dados dedutivo foi
criado na tentativa de melhorar a eficiência e o poder do gerenciamento de um
banco de dados relacional tradicional, utilizando um modelo conceitual baseado em
lógica matemática na qual possui um conjunto de regras dedutivas que deriva novas
informações a partir das relações básicas explicitamente inseridas. Podemos ver a
seguir o funcionamento e a comparação desse meio de gerenciamento com o
gerenciamento tradicional.
Palavras-chave: Banco de dados. Dedutivo. Regras. Derivação.
ABSTRACT
PEREIRA, A. R. Deductive database. 2014. Federal Technological University of
Paraná. Ponta Grossa, 2014.
This article aims to introduce the concepts of managing a Bunch of Deductive data,
and their respective languages used. The Bank of deductive database was created in
an attempt to improve the efficiency and power of managing a traditional relational
database data using a conceptual model based on mathematical logic in which has a
set of deductive rules that derives new information from the basic relations explicitly
inserted. We can see below the functioning and management of this medium
compared with traditional management.
Keywords: Database. Deductive. Rules. Derivation.
SUMÁRIO
1 INTRODUÇÃO..........................................................................................................6
2 CONCEITOS.............................................................................................................7
2.1 LINGUAGEM PROCEDURAL................................................................................7
2.1.1 Vantagens...........................................................................................................7
2.1.2 Desvantagens......................................................................................................7
2.2 LINGUAGEM DECLARATIVA................................................................................7
2.2.1 Vantagens...........................................................................................................8
2.2.2 Desvantagens......................................................................................................8
3 INTERPRETAÇÃO....................................................................................................9
3.1 FATOS....................................................................................................................9
3.2 REGRAS................................................................................................................9
3.3 INTERPRETAÇÃO DE REGRA.............................................................................9
3.4 EXEMPLOS..........................................................................................................10
4 MECANISMO DE INFERÊNCIA.............................................................................11
4.1 BOTTON-UP........................................................................................................11
4.2 TOP-DOWN..........................................................................................................11
4.3 BOTTON-UP VS TOP-DOWN..............................................................................11
5 EXEMPLOS DE BANCO DE DADOS DEDUTIVO.................................................12
5.1 CORAL DEDUCTIVE SYSTEM............................................................................12
5.2 CONCEPTBASE DEDUCTIVE SYSTEM.............................................................12
6 ATUALIZAÇÕES BDD............................................................................................14
6.1 PROLOG..............................................................................................................14
6.1.1 Característica....................................................................................................14
6.2 DATALOG............................................................................................................14
6.3 DEDALO...............................................................................................................15
6.3.1 Características...................................................................................................15
6.3.2 Gerenciamento BDD.........................................................................................16
6.3.3 Atualizações......................................................................................................16
6.3.3.1 Restrições de integridade...............................................................................16
6.3.3.2 Transações BDD............................................................................................17
6.3.3.3 Processamento de transação.........................................................................17
7 CONCLUSÃO.........................................................................................................19
8 REFERÊNCIAS.......................................................................................................20
6
1 INTRODUÇÃO
Um sistema de Bando de Dados Dedutivo possui aptidão para realizar tarefas
igualmente um modelo de Banco de Dados Procedural (ou programação
procedimental), com a diferença que fornece um mecanismo de derivação de dados
a partir das relações básicas de seus dados explicitamente declarados. Nele utiliza-
se uma linguagem declarativa para especificar regras que descrevem o que se
deseja alcançar e como alcançar, sua consulta é baseada em lógica, permitindo que
se expressem consultas recursivas. A diferença está baseada no seu modelo de
execução, enquanto o tradicional geralmente se preocupa com a derivação da
informação, a segunda as regras são disparadas como efeito colateral de ações
normais do banco de dados, comumente utilizado em Inteligência Artificial.
Atualmente existem existe diversos estudos sobre bando de dados dedutivos,
porém ele é pouco utilizado no mundo real. Trata-se ainda de uma promessa
próspera, mas, no entanto não passa de um conceito meramente teórico, com
experimentos e algumas aplicações efetivas.
7
2 CONCEITOS
Antes de entendermos o funcionamento de um Sistema de Banco de Dados
dedutivos, temos que conhecermos dois conceitos de linguagem distintos, nas quais
são utilizadas como ferramenta para programação.
2.1 LINGUAGEM PROCEDURAL
A Linguagem Procedural ou Imperativa tem seu conceito é baseado em
estados, definidos por variáveis, onde o programador possui um controle maior do
código e precisa se preocupar de como o compilador ou a própria máquina irá
executar aquele conjunto de instruções.
Programas imperativos são uma sequência de comandos para o computador
executar. C, Pascal e Cobol são exemplos de linguagens procedural.
2.1.1 Vantagens
Eficiência, Modelagem natural dos problemas do mundo real; domina o
mercado; bem estabelecido.
2.1.2 Desvantagens
Difícil interpretação de códigos; esforço para desenvolver os meios para o fim;
tende a gerar códigos confusos.
2.2 LINGUAGEM DECLARATIVA
A Linguagem Declarativa tem seu conceito baseado em lógica ou
programação restritiva, é aquela em que o programador oferece apenas as tarefas a
serem realizadas. Não existe a preocupação de detalhar como essa tarefa será
realizada. Na linguagem declarativa em geral, não são necessárias tantas linhas de
códigos para definir uma tarefa. Não dizemos “como”, mas sim “o que” fazer, e o
computador decide a melhor solução.
8
Podemos resumir a linguagem declarativa como uma linguagem na qual você
descreve a meta de uma tarefa, mas sem se preocupar integralmente sobre a
maneira que ela é atingida. HTML, SQL e Prolog são exemplos de linguagens
declarativas.
2.2.1 Vantagens
Facilidade de acesso a banco de dados; Conversão de objetos complexos
(Pessoa, Empregado) por Binding para trafegar pela rede; programas menores; mais
amigável para novos programadores.
2.2.2 Desvantagens
Ilegilidade do código (Quando usada de forma funcional).
9
3 INTERPRETAÇÃO
Podemos definir interpretação de maneira á especificar as combinações de
argumentos para tornar o predicado verdadeiro e determinar todas as outras
combinações para tornar o predicado falso
Uma interpretação é chamada de modelo para um conjunto de regras se
estas regras são sempre verdade, isto é mesmo que os valores dos predicados
destas regras sejam alterados, as regras continuam sendo verdade. Especificar as
combinações de argumentos para tornar o predicado verdadeiro e determinar todas
as outras combinações para tornar o predicado falso.
3.1 FATOS
São especificados de forma similar às relações, exceto pelos atributos que
não precisam ser especificados
3.2 REGRAS
Similares às visões das relações. Retornam relações virtuais que não são
atualmente armazenadas, mas podem ser formadas condições aplicadas com
mecanismos de inferência baseados nas especificações das regras.
3.3 INTERPRETAÇÃO DE REGRA
É um procedimento computacional que fornece uma interpretação
computacional do significado das regras. Existem duas alternativas para
interpretação de regras:
Baseadas em Provas:
• Os fatos e as regras são considerados assertivas verdadeiras ou
axiomas
• Os fatos são axiomas assumidos como verdadeiros
• As regras são chamadas axiomas dedutivos, uma vez que elas podem
ser usadas para deduzir novos fatos
10
Baseada em Modelo:
• Dado um domínio finito de valores constantes, cada combinação
possível de valores é associada a um predicado como argumento
• Deve-se determinar se o predicado é verdadeiro ou falso. Em geral, é
suficiente indicar as combinações verdadeiras (fatos) e afirmar que todas as outras
são falsas.
• Este processo é chamado de interpretação
• O conjunto de fatos conhecidos da BD e de fatos derivados compõe o
modelo
3.4 EXEMPLOS
Fatos
• João é filho de André
• Marcos é irmão de André
Regras
• João não tem irmãos
• João não tem primos
Dedução
• Marcos é tio solteiro de André
11
4 MECANISMO DE INFERÊNCIA
Existem dois principais tipos de mecanismos de inferência, o Botton-up ou
encadeamento para frente e o Top-Down ou encadeamento para trás.
4.1 BOTTON-UP
Realiza interpretação de regras baseada em modelo. Máquina de inferência
inicia com os fatos e aplica as regras para gerar novos fatos.
4.2 TOP-DOWN
Realiza interpretação de regras baseada em prova. Máquina de inferência
inicia com o objetivo da consulta e tenta achar combinações de variáveis de fatos
válidos no banco de dados.
4.3 BOTTON-UP VS TOP-DOWN
Botton-UP: Requer mais espaço de armazenamento; requer reprocessamento
na ocorrência de atualizações.
Top-Down: Computacionalmente mais complexo; requer maior tempo de
resposta para processamento de consultas.
12
5 EXEMPLOS DE BANCO DE DADOS DEDUTIVO
5.1 CORAL DEDUCTIVE SYSTEM
CORAL é um sistema dedutivo que vem sendo estudado e aprimorado na
Universidade de Wisconsin dos EUA que suporta uma rica linguagem declarativa, e
uma interface para C++, o que permite uma combinação de programação declarativa
e imperativa.
Um programa declarativo CORAL pode ser organizado como uma coleção
para interagir módulos. CORAL suporta uma ampla gama de estratégias de
avaliação, e automaticamente escolhe uma estratégia eficiente para cada módulo do
programa. Os usuários podem guiar a otimização da consulta, selecionando a partir
de uma ampla gama de opções de controle. Um alto grau de extensibilidade é
fornecida, permitindo que os programadores C++ para usar a estrutura de classes
de C++ para aumentar a implementação CORAL.
CORAL fornece suporte para dados de memória principal e, usando o
gerenciador de armazenamento EXODUS, os dados do disco residente.
Apresentamos uma visão abrangente do sistema a partir de objetivos gerais de
design, a linguagem, e da arquitetura, a interfaces de linguagem e detalhes de
implementação.
5.2 CONCEPTBASE DEDUCTIVE SYSTEM
ConceptBase é um sistema dedutivo e orientada a objeto de gerenciamento
de banco de dados desenvolvido na Universidade de Aachen e da Universidade de
Tilburg. É usado principalmente para a modelagem conceitual e metamodeling no
domínio da engenharia de software e domínios afins.
ConceptBase combina as seguintes características:
• Conceitos de orientação a objetos como classes e herança
• Regras dedutivas avaliadas por um motor de registro de dados
• Regras ativas em conformidade com a condição de evento de ação
(ECA) paradigma
13
• Definições de funções recursivas
• Metamodeling com arbitrariamente muitos níveis de abstração
(metaclasses, metaclasses meta)
14
6 ATUALIZAÇÕES BDD
Diferente do Bando de Dados tradicional o BDD requer um tratamento extra,
por esse motivo o gerenciamento de dados é dividido em duas partes:
• Banco de Dados Extensional (BDE): Formado pelo conjunto de fatos
básicos, contidos nas relações base, que foram explicitamente inseridos;
• Banco de Dados Intensional (BDI): Formado pelas informações
contidas nas relações derivadas, deduzidas pela aplicação das regras dedutivas
sobre o BDE.
O estado do banco em um BDD é formado não somente pelo conteúdo das
relações básicas, mas também pelos dados implícitos derivados do BDE através das
regras dedutivas. As características dos sistemas dedutivos, como a capacidade de
responder a consultas recursivas, a linguagem de consulta declarativa e a dedução
de novas informações, permitem que eles realizem tarefas não suportadas por
bancos convencionais.
6.1 PROLOG
Prolog (Programmation en Logique) é uma linguagem de programação
baseada em Lógica Matemática. Criada em meados de 1972 por Alain Colmerauer e
Philippe Roussel baseados no conceito de Robert Kowalski da interpretação
procedimental das cláusulas de Horn. É uma linguagem que está associada com as
áreas de inteligência artificial e a lingüística computacional.
6.1.1 Característica
Por de tratar de uma linguagem declarativa o Prolog não estipula o passo a
passo de como chegar à solução, ele usa um conjunto de base de dados e regras
(relações lógicas) e a partir disso extraí a solução. Alguns conceitos fundamentais
são unificação, recursão e backtracking.
6.2 DATALOG
15
Devido a uma série de deficiências apresentadas na linguagem Prolog
quando aplicadas a gerência de Banco de Dados, entre elas a influência no
resultado final e a estratégia de avaliação houve a necessidade da definição de uma
nova linguagem. Essa nova linguagem é baseada em Prolog e foi batizada com o
nome de Datalog.
O Datalog não possui predicados pré-definidos, negação, disjunção, símbolos
funcionais, operações aritméticas e operações de comparação. Nele, a ordem das
regras não tem importância. Devido a essas restrições um banco de dados criados
nas bases dessa linguagem não atende os requisitos impostos pelas aplicações do
mundo real.
Por esse motivo os bancos de dados dedutivos utilizam em geral extensões
do Datalog puro.
6.3 DEDALO
A linguagem DEDALO busca suprir as deficiências do Datalog puro através
da introdução de uma série de extensões. Utiliza uma linguagem de consulta
declarativa, com poder expressivo maior que o Datalog e a álgebra relacional. Nele
foram introduzidas as funções de negação, funções agregadas, operações
aritméticas, disjunção, operações de comparação e operações de atualização.
O objetivo da criação da linguagem DEDALO é a busca de eficiência em
situações práticas com eficiência.
6.3.1 Características
• Linguagem de consulta declarativa
• Referência aos atributos pelo seu nome e não por sua posição dentro
da relação;
• Raciocínio aproximado através de adaptações da lógica fuzzy para
BDDs;
• Mecanismos eficientes para sua manutenção;
• Suporta atualizações sobre relações derivadas;
• Métodos eficientes para detecção de violações;
• Gera reparos para restrições de integridade violadas
16
• Permite a utilização do Dedalo com qualquer gerenciador de BD
relacional que possua uma interface ODBC;
6.3.2 Gerenciamento BDD
Podemos dividir o um sistema Dedalo em quatro módulos:
• Gerenciador de Regras: Ferramenta utilizada na criação e manutenção
das regras de derivação, que darão origem às relações derivadas, e na definição e
manutenção das regras de restrições de integridade.
• Interface Interativa: Ferramenta desenvolvida para processar
solicitações de consultas ad hoc e solicitações de atualização sobre o banco.
• Conjunto de componentes Delphi: Novas classes criadas
especificamente para a construção de aplicações sobre o Dedalo, utilizando o
ambiente de desenvolvimento de aplicações cliente-servidor do Delphi.
• Tradutor Dedalo/SQL-ANSI: Traduz a definição das regras, as
solicitações de consulta e as solicitações de atualização feitas na linguagem Dedalo
para comandos SQL-ANSI, que serão submetidos ao banco de dados servidor.
6.3.3 Atualizações
Em um sistema de Banco de Dados Dedutivos as relações derivadas
dependem do conteúdo das relações básicas. Logo o efeito de atualização de uma
relação básica deve ser notado nas relações derivadas e vice-versa.
Existem dois meios para tratamento das relações derivadas: Uma forma é
manter a relações derivadas virtuais, ou seja, não são armazenadas de fato e são
computadas quando necessário. Outra forma seria armazenar as relações
derivadas, ou seja, materializar essas informações.
Caso o banco de dados esteja materializando as relações derivadas, ao
atualizar uma relação básica temos o processo de propagação de atualizações,
onde as relações derivadas são automaticamente atualizadas de acordo com a
modificação nas relações básicas.
6.3.3.1 Restrições de integridade
17
No sistema de bando de dados gerenciados com a linguagem DEDALO,
restrições de integridade são aquelas que garantem que os dados terão derivações
integras, especificadas pelas regras de derivação. A regra representa a restrição
deve expressar uma situação que não deve ocorrer em nenhum estado válido do
Banco de Dados.
6.3.3.2 Transações BDD
A execução de atualização sobre o banco de dados dedutivo pode
desencadear uma série de outras operações. Caso uma alteração seja sobre uma
relação derivada, será então desencadeado um conjunto de novas operações sobre
outras relações, seja ela básica ou derivada.
Se a atualização de uma relação básica provocar efeitos em uma relação
derivada que esteja materializada, então será gerada uma série de operações que
se propagarão para a relação derivada materializada.
Caso haja necessidade de reparação por violação de restrições de
integridade, operações de reparos serão executadas, essas também poderão
desencadear uma propagação de operações sobre as relações derivadas.
Esse conjunto de operações sobre o banco, desencadeadas pela solicitação
de atualização, formam a transação do BDD. Essas operações podem ser dividias
em operações sobre relações básicas e operações sobre relações derivadas.
6.3.3.3 Processamento de transação
Cada uma das operações pode dar origem a novas operações. Por exemplo,
se uma restrição de integridade for violada, podem ser gerados reparos que darão
origem a novas operações, nas quais podem gerar novas propagações e assim
sucessivamente. Podemos então dividir o processamento de transação em cinco
fases:
• Execução da transação original: onde são executadas as solicitações
de exclusão e inserção solicitadas pelo usuário;
• Execução das traduções de atualizações sobre relações derivadas: onde as
alterações sobre relações básicas que tornam visíveis as atualizações solicitadas
sobre as relações derivadas são executadas;
18
• Propagação das atualizações para relações derivadas materializadas;
• Verificação das restrições de integridade, onde são detectadas possíveis
violações;
• Execução de reparos das restrições de integridade violadas.
19
7 CONCLUSÃO
Por fim, podemos concluir que a utilização de um Banco de Dados Dedutivo
torna a aplicação muito mais inteligente e poderosa, mas por ser tratar de um
conceito muito mais teórico do que prático ainda seja necessário experimentos em
diversos fatores distintos, para assim ser comprovada a eficiência em situações
adversas. Mas se trata de uma área com grande potencial por se tratar da extensão
do banco de dados relacional explorando a sua maior deficiência: a falta de
expressividade da linguagem de consulta de dados.
20
8 REFERÊNCIAS
[BAR 94] BARJA, Maria L. et al. Na Effective Deductive Object-Oriented Database
Trough Language Integration. In: VLDBCONFERENCE, 20., 1994, Santiago, Chile.
Proceedings...Hove:Morgan-Kaufmann, 1994. p.463- 474.
[BÖH 94] BÖHLEN, Michael. Managing Temporal Knowledge in Deductive
Database. Zürich: Swiss Federal Instituteof Technology, 1994.PhD. Thesis.
[CHI 90] CHIMENTI, D. et al. The LDL System prototype. IEEE Transactions on
Know ledge and Data Engineering, New York,v. 2, n.1, p. 76-90, 1990.
[JAR 94] JARKE, Matthias. Concept Base Tutorial 1994. Aache, Germany.
Disponível em http://www.informatik.rwth-aachen.de/I5/CBdoc/cbflyer.html.
[KIE 90] KIERNAN, Gérald; MAINDREVILLE, Christophe de; SIMON, Eric. Making
Deductive Database A Pratical Technology: A Step Forward. Rocquen court:
Institut National de Rechercheem Informatique et em Automatique, INRIA-
Rocquencourt, 1990.Janvier 1990. (Rapport de Recherche No. 1153).
[MAR 91] MARTI, R. Research in Deductive Databases et ETH: The LogiQuel
Project. In: DATABASE RESEARCH IN SWITZERLAND,1991. Proceedings...
[S.l.:s.n.], 1991. p.130-143.
[PHI 91] PHIPPS, Geoffrey; DERR, Marcia A.; ROSS, Kenneth A. Glue-Nail: A
Deductive Database System. SIGMOD Records, New York, v.20, 2, p.308-317,
June 1991. Trabalho apresentado na ACMSIGMOD International Conference on
Management of Data, 1991, Denver.
[RAM 92] RAMAKRISHMAN, Raghu; SRIVASTAVA, Divesh; SUDARSHAN,S.
CORAL - Control, Relations and Logic. In: VLDBCONFERENCE, 18., 1992,
Vancouver, Canada. Proceedings...San Mateo:Morgan-Kaufmann, 1992. p. 238 a
250
[SHA 88] SHAO, J.; BELL, D. A.; HULL, M.E.C. LQL: A Unified Language or
Deductive Database Systems. In: IFIP WorkingConferenceonthe Role of Artificial
21
Intelligence in Databases and Information Systems, 1988, Guangzhou, China.
Proceedings... Amsterdam: North-Holland, 1990. p. 329 – 343.
[VAG 91] VAGHANI, Jayen et al. Design Overview of the Aditi deductive
database system. In: INTERNATIONAL CONFERENCE ONDATA ENGINEERING,
7., 1991, Kobe, Japan. Proceedings...Los Alamitos:IEEE Computer Society Press,
1991. p.240-247.
MOURA, Daniel Cardoso. Bases de dados dedutivas. UNIVERSIDADE DO
PORTO. 2013.
Wikipédia – A enciclopédia livre, Datalog. Disponível em:
<http://pt.wikipedia.org/wiki/Datalog>. Acesso em 25 de maio de 2014.
Wikipédia – A enciclopédia livre, Prolog. Disponível em:
<http://pt.wikipedia.org/wiki/Prolog>. Acesso em 25 de maio de 2014.
DIONÍSIO, Pamella. Gerenciando BDD com Dedalo, TIMASTE. Disponível em:
<http://www.timaster.com.br/revista/artigos/main_artigo.asp?codigo=988&pag=1>.
Acesso em 26 de maio de 2014.
Wikipédia – A enciclopédia livre, Programação Imperativa. Disponível em:
<http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_imperativa>. Acesso em
29 de maio de 2014.
Wikipédia – A enciclopédia livre, Programação Declarativa. Disponível em:
<http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_declarativa>. Acesso em
29 de maio de 2014.
Wikipédia – A enciclopédia livre, ConceptBase. Disponível em:
<http://en.wikipedia.org/wiki/ConceptBase>. Acesso em 01 de junho de 2014.
Research, Coral. Disponível em: <http://research.cs.wisc.edu/coral/>.
Acesso em 03 de junho de 2014.
22
ALMEIDA, Roniere. Banco de dados dedutivo. Disponível em:
<http://www.devmedia.com.br/banco-de-dados-dedutivo/24912> Acesso em 5 de
junho de 2014.
Top Related