Banco de Dados Dedutivos, Programa - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Banco de Dados Dedutivos, Programa

Description:

Banco de Dados Dedutivos, Programa o em L gica, Banco de Dados Dedutivos Orientado a Objetos e FLORID Departamento de Inform tica UFPE Jeferson Valadares – PowerPoint PPT presentation

Number of Views:115
Avg rating:3.0/5.0
Slides: 36
Provided by: Ioram7
Category:

less

Transcript and Presenter's Notes

Title: Banco de Dados Dedutivos, Programa


1
Banco de Dados Dedutivos, Programação em Lógica,
Banco de Dados Dedutivos Orientado a Objetos e
FLORID
  • Departamento de Informática
  • UFPE
  • Jeferson Valadares
  • (jlfv_at_di.ufpe.br)
  • Recife, fevereiro de 1999

2
Roteiro
  • Linguagens de consulta de banco de dados x
    linguagens de programação
  • Banco de dados dedutivo e programação em lógica
  • Banco de dados orientado a objetos
  • Banco de dados dedutivo orientado a objetos
  • F-Logic e FLORID
  • Exemplo introdutório O banco de dados acadêmico
    em FLORID
  • Objetos, nomes de objetos, métodos, átomos-F,
    moléculas-F
  • Classes, assinaturas e herança
  • Predicados, átomos-P e BD extensional
  • Regras, consultas e BD intencional

3
Linguagens de consulta de banco de
dadosxLinguagens de programação
  • Linguagens de consultas de banco de dados
  • persistência
  • acesso otimizado à memória secundária
  • concorrência
  • recuperação
  • segurança
  • maneira declarativa de recuperar e atualizar a
    informação
  • ausência de representação procedimental
  • atomicidade das transações
  • estruturas fixas de dados

4
Linguagens de consulta de banco de
dadosxLinguagens de programação
  • Linguagens de programação
  • uso geral
  • comportamento dinâmico
  • permitem daemons, gatilhos para manutenção de
    integridade
  • geralmente não implementam as características
    desejáveis de um BD

5
Banco de dados dedutivos e programação em lógica
  • Programação em lógica
  • conceito de lógica como linguagem de programação
  • extensão do BD relacional
  • prolog
  • Banco de dados dedutivos (BDD)
  • programas lógicos sem funções (como em prolog),
    mas onde todos os fatos devem ser instanciados
  • ancestor (adão, X)
  • modelo de interpretação do BD é finito
  • BD relacional é um caso especial de BDD
  • datalog

6
Orientação a objetos
  • Características importantes
  • abstração (estrutural e comportamental) de dados
  • objetos semanticamente similares são
    classificados em classes, que são organizadas em
    hierarquias de classes (é-um)
  • encapsulamento
  • objetos complexos
  • herança não-monotônica
  • noção de tipo
  • Uso de linguagens orientadas a objeto com BD
  • sonho antigo de usar a mesma linguagem para
    escrever as aplicações e para recuperar
    informação do BD

7
Banco de dados orientado a objetos (BDOO)
  • Manifesto BDOO 1
  • Características obrigatórias
  • objetos complexos
  • identidade de objetos
  • encapsulamento
  • tipos e classes (organizados em hierarquias)
  • overriding, overloading e late binding
  • completude computacional
  • extensibilidade
  • persistência
  • gerenciamento de armazenamento secundário
  • concorrência
  • recuperação
  • facilidade de consulta sob demanda

8
Banco de dados orientado a objetos
  • Características opcionais
  • herança múltipla
  • verificação e inferência de tipos
  • distribuição
  • transações longas
  • versões
  • Escolhas em aberto
  • paradigma de programação
  • sistema de representação
  • sistema de tipos
  • uniformidade

9
Banco de dados orientado a objetos
  • Características essenciais para um linguagem de
    manipulação de BD não são implementadas pelas
    linguagens orientadas a objetos tradicionais
  • Necessidade de uma linguagem que capture tanto
    orientação a objetos quanto as operações
    necessárias para manter a integridade de um BD

10
Banco de dados dedutivo orientado a objetos
(BDDOO)
  • BDD
  • alta capacidade de inferência
  • fundamentos formais
  • pobre poder de modelagem
  • BDOO
  • rica capacidade de modelagem
  • alta extensibilidade
  • falta de consenso sobre o modelo de dados
  • baixa capacidade de inferência
  • fundamentos não tão bem formalizados quando os de
    BDD
  • BDDOO
  • deve combinar as vantagens dos dois métodos acima

11
F-logic e FLORID
  • F-logic (Frame logic) 2
  • desenvolvida para capturar os bons aspectos de OO
    em um framework lógico
  • provê uma teoria bem fundamentada para BDDOO e
    programação em lógica
  • lógica pode ser usada como formalismo
    computacional e como linguagem de descrição -
    F-logic é adequada para definir, acessar e
    manipular esquemas de BD
  • FLORID 3
  • implementação em C de F-logic com algumas
    extensões
  • interface web
  • expressões regulares
  • expressões de caminho

12
O banco de dados acadêmico em FLORID
  • A hierarquia é-um
  • emplperson
  • studentperson
  • child(person)person
  • facultyempl
  • managerempl
  • yuppieyoung
  • yuppiemidaged
  • articlereport
  • cacmarticle
  • jacmarticle
  • johnstudent
  • johnempl
  • sallystudent
  • sallyempl
  • alicechild(john)
  • maryfaculty
  • bobfaculty
  • bobmanager
  • philempl
  • 20young
  • 30yuppie
  • 40midaged
  • codd70cacm
  • flogic94jacm
  • cs1dept
  • cs2dept
  • integerdatatype
  • stringdatatype
  • CSstring
  • Marystring
  • Bobstring
  • msdegree
  • phddegree

13
O banco de dados acadêmico em FLORID
  • Fatos da base (BD extensional)
  • 1. Bob is 40 and is the manager of the CS
    department.
  • 2. His assistants are John and Sally.
  • bob name-gt Bob age-gt40 affiliati
    on-gtcs1dname-gt CS mngr
    -gtbob assistants-gtgt john, sally
  • 3. Marys highest degree is an MS.
  • 4. She works at the CS department and is friend
    to Bob and Sally.
  • mary name-gt Mary highestDegree-gtms
    friends-gtgtbob, sally affiliation-gtcs2dnam
    e-gtCS

14
O banco de dados acadêmico em FLORID
  • Informações gerais das classes
  • 5. Every faculty is a midaged person who writes
    articles, makes in the average 50,000 a year and
    owns a degree of some kind, typically a PhD.
  • 6. A facultys boss is both a faculty and a
    manager.
  • faculty bossgt(faculty, manager) agegtmidag
    ed highestDegreegtdegree papers-gtgtart
    icle highestDegree-gtphd avgSalary-gt5
    0000

15
O banco de dados acadêmico em FLORID
  • Informações gerais das classes (cont.)
  • 7. Every person has a name, friends who must be
    persons, and children who also must be persons.
  • person namegtstring friendsgtgtperson
    childrengtgtchild(person)
  • 8. Every employee is affiliated to some
    department, has a boss who is also an employee
    and joint work on reports with other employees.
  • empl affiliationgtdept bossgtempl j
    ointWorks_at_emplgtgtreport

16
O banco de dados acadêmico em FLORID
  • Informações gerais das classes (cont.)
  • 9. Every department has a manager who is an
    employee and assistants who are both employees
    and students.
  • dept assistantsgtgt(student, empl) mngrgtemp
    l
  • Regras dedutivas
  • 10. A boss is an employee who is the manager of
    another employee of the same department.
  • Eboss-gtM - Eempl Ddept
    Eaffiliation-gtDmngr-gtMempl
  • 11. A joint work is a paper that is written by
    two faculties.
  • X jointWorks_at_Y-gtgtZ - Yfaculty
    Xfaculty Y papers-gtgtZ X papers-gtgtZ

17
O banco de dados acadêmico em FLORID
  • Consultas
  • 0a Who are the midaged employees of the CS
    department and who are their boss?
  • ?- Xempl X boss-gt Y age-gtZmidaged
    affiliation-gtDdname-gtCS.
  • 0b Who published jointly with Mary in the
    Journal of the ACM?
  • ?- maryjointWorks_at_Y-gtgtjacm90.
  • 0c Where did Mary published joint work with
    Phil?
  • ?- maryjointWorks_at_phil-gtgtZ.

18
Objetos
  • Construtores básicos de FLORID
  • Modelam entidades do mundo real
  • Representados internamente por identificadores
  • Acessados por nomes
  • cada nome identifica apenas um objeto
  • um objeto pode ter mais de um nome

19
Nomes de objetos
  • Nomes de objetos e nomes de variáveis id-terms
  • Nomes de objeto sempre começam com letras
    minúsculas
  • bob, alice, child
  • Nomes de variáveis sempre começam com letras
    maiúsculas ou underscore
  • Z, Method, _11
  • Dois nomes de objetos built-in
  • inteiros
  • 3, 3, -3
  • strings (sempre entre aspas)
  • Bob, Mary

20
Métodos
  • Representam relações entre objetos
  • Aplicação de um método a um objeto átomo-F de
    dados
  • id-term hospedeiro, método e resultado
  • objetos podem aparecer em qualquer posição
  • variáveis podem ser usadas na posição método
  • Métodos funcionais ou escalares (resultam em
    apenas um objeto
  • bobboss-gtjohn.
  • Métodos multivalorados (podem resultar em mais de
    um objeto)
  • maryfriends-gtgtbob,sally.

21
Métodos
  • A posição resultado de um método multivalorado
    pode ser o conjunto vazio
  • bobfriends-gtgt .
  • pode também ser vista como uma declaração do
    método friends
  • Métodos com parâmetros
  • mary jointWorks_at_(phil)-gtgtjacm90,cacm92
    jointWorks_at_(jacques)-gtgtaaai92,
    cacm92.
  • mary jointWorks_at_(phil,1)-gtgtjacm90 jointWor
    ks_at_(phil,2)-gtgtcacm92.

22
Métodos
  • Consultas com métodos multivaloradas
  • ?- mary friends-gtgtX X/bob X/sally
  • importante notar que variáveis não se instanciam
    com conjuntos de dados (já que as consultas
    verificam pertinência e não igualdade)
  • X/ bob,sally
  • ?- maryfriends-gtgtbob,sally. true
  • ?- maryfriends-gtgtbob. true
  • ?- maryfriends-gtgt . true

23
Átomos-F
  • Expressa exatamente uma propriedade de um objeto
    (a que classe ele pertence, a especificação de um
    método)
  • bobempl.
  • bobboss-gtgtjohn.
  • bobboss-gtgtsally.

24
Moléculas-F
  • Métodos representam relações entre objetos, que
    são organizados em classes
  • Esta informação sobre os objetos é encapsulada
    através de moléculas-F
  • bobemplboss-gtgtjohn,sally.
  • Moléculas-F sem propriedades
  • sally .
  • Açúcar sintático da linguagem

25
Classes
  • Átomos-F do tipo é-um classe à qual o objeto
    pertence
  • johnstudent
  • sallyempl
  • Átomos-F de subclasse relação de subclasse entre
    duas classes
  • emplperson
  • facultyempl
  • F-logic também suporta overloading de métodos
  • empl jointWorks_at_emplgtgtreport.
  • empl jointWorks_at_(empl, integer)gtgtreport.

26
Assinaturas
  • Átomos-F de assinatura definem os métodos
    aplicáveis para instâncias de certas classes
  • Restringem o tipo dos parâmetros e dos resultados
    destes métodos
  • facultybossgt(faculty).
  • facultybossgt(manager).
  • personfriendsgtgtperson.
  • empljointWorks_at_emplgtgtreport.
  • deptassistantsgt(student, empl).
  • Pode-se também declarar métodos sem restrições de
    tipo
  • personbelieves_ingt( ).

27
Herança
  • F-logic permite herança múltipla
  • Dois tipos de herança
  • Herança estrutural
  • propagação de uma restrição de tipo de um método
    de uma superclasse para suas subclasses (Átomos-F
    de subclasse)
  • Herança comportamental
  • propagação dos resultados da aplicação de um
    método de uma classe para suas instâncias e
    subclasses
  • Métodos herdáveis expressam herança
    comportamental
  • personbelieves_in-gtgod
  • bob believes_in-gtgod
  • john believes_in-gtgod
  • empl believes_in-gtgod

28
Herança e regras
  • Resolução da herança
  • johnking.
  • peterking.
  • kinglives-gtpalace.
  • peterlives-gtabroad - johnlives-gtpalace.
  • johnlives-gtabroad - peterlives-gtpalace.
  • ?- sys.eval.
  • Begin semi-naive evaluation
  • End evaluation
  • ?- Xlives-gtY.
  • Answer to query ?- Xlives -gt Y.
  • X/john Y/palace
  • X/peter Y/abroad
  • 2 output(s) printed

29
Overriding
  • Regras lógicas tem prioridade sobre a herança
  • abrahampersonbelieves_in-gtgod
    descendant-gtgtisaacperson.
  • ahabperson.
  • personbelieves_in-gtbaal.
  • Xbelieves_in-gtgod - abrahamdescendant-gtgtXpers
    on.
  • godloves-gtgtX - Xbelieves_in-gtgod.
  • ?- sys.eval.
  • Begin semi-naive evaluation
  • End evaluation
  • ?- godloves-gtgtX.
  • Answer to query ?- godloves -gtgt X.
  • X/abraham
  • X/isaac
  • 2 output(s) printed

30
Predicados e Átomos-P
  • Em F-logic, predicados são usados da mesma
    maneira do que em datalog
  • Um predicado seguido de um ou mais id-terms
    separados por vírgulas e incluído nos parênteses
    é chamado de Átomo-P
  • friends(bob,mary).
  • empl(john).
  • person(bob).
  • true.
  • Os predicados (fatos) formam o BD extensional

31
Átomos-P
  • Informação expressa em átomos-P pode ser
    representada por átomos-F, obtendo-se uma
    modelagem mais natural
  • maryfriends_with-gtgtbob.
  • bobempl.
  • maryjointWorks_at_(bob)-gtgtjacm94.
  • Similarmente às moléculas-F, moléculas-P podem
    ser construídas aninhando-se átomos-F ou
    moléculas-F em átomos-P
  • friends(maryaffiliation-gtcs1, bobempl).
  • Átomos-F e moléculas-F podem ser aninhados em
    átomos-P, mas o inverso não é verdadeiro
  • empl(bob)friends(bob,sally).

32
Regras
  • Baseadas em uma dada base de objetos (que pode
    ser considerada um conjunto de fatos), as regras
    oferecem a possibilidade de se derivar nova
    informação
  • Guardam informação genérica da forma
  • sempre que a pre-condição for verificada, a
    conclusão também será
  • Xmanager-gtgtY - Xboss-gtgtY.
  • Formam o BD Intencional

33
Consultas
  • Podem ser consideradas um tipo de regra especial
    com a primeira parte vazia
  • ?- maryfriends-gtgtYempl.
  • A resposta de uma consulta consiste de todas as
    variáveis tal que a instância da regra com aquela
    variável seja verdadeira na base de objetos
  • Y/bob Y/sally

34
Variáveis dont care
  • Variáveis para resultados intermediários que não
    aparecem no resultado
  • ?- Xemplboss-gt_Y, _Yfriends-gtgtsally.
  • A variável _
  • cada ocorrência desta variável é considerada uma
    variável dont care distinta

35
Referências
  • 1. The object-oriented database system manifesto
    - Atkinson, Bancilhon, DeWitt, Dittrich, Maier
    and Zdonik
  • 2. Logical foundations of object-oriented and
    frame-based languages - Kifer, Lausen and Wu
  • 3. How to write F-logic programs in FLORI D -
    Frohn, Himmeröder, Kandzia and Schlepphorst
Write a Comment
User Comments (0)
About PowerShow.com