Banco de Dados Dedutivos, Programação em Lógica, Banco de Dados Dedutivos Orientado a Objetos e...

35
Banco de Dados Dedutivos, Banco de Dados Dedutivos, Programação em Lógica, Programação em Lógica, Banco de Dados Dedutivos Banco de Dados Dedutivos Orientado a Objetos e Orientado a Objetos e FLORID FLORID Departamento de Informática UFPE Jeferson Valadares ([email protected]) Recife, fevereiro de 1999

Transcript of Banco de Dados Dedutivos, Programação em Lógica, Banco de Dados Dedutivos Orientado a Objetos e...

Page 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.

Banco de Dados Dedutivos, Banco de Dados Dedutivos, Programação em Lógica, Programação em Lógica,

Banco de Dados Dedutivos Banco de Dados Dedutivos Orientado a Objetos e FLORIDOrientado a Objetos e FLORID

Departamento de InformáticaUFPE

Jeferson Valadares([email protected])

Recife, fevereiro de 1999

Page 2: 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.

RoteiroRoteiro

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

Page 3: 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.

Linguagens de consulta de banco de Linguagens de consulta de banco de dadosdados

xxLinguagens de programaçãoLinguagens 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

Page 4: 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.

Linguagens de consulta de banco de Linguagens de consulta de banco de dadosdados

xxLinguagens de programaçãoLinguagens 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

Page 5: 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.

Banco de dados dedutivos e Banco de dados dedutivos e programação em lógicaprogramaçã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

Page 6: 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.

Orientação a objetosOrientaçã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

Page 7: 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.

Banco de dados orientado a objetos Banco de dados orientado a objetos (BDOO)(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

Page 8: 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.

Banco de dados orientado a objetosBanco 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

Page 9: 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.

Banco de dados orientado a objetosBanco 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

Page 10: 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.

Banco de dados dedutivo orientado a Banco de dados dedutivo orientado a objetos (BDDOO)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

Page 11: 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.

F-logic e FLORIDF-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

Page 12: 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.

O banco de dados acadêmico em FLORIDO banco de dados acadêmico em FLORID

A hierarquia é-um:• empl::person• student::person• child(person)::person• faculty::empl• manager::empl• yuppie::young• yuppie::midaged• article::report• cacm::article• jacm::article

• john:student• john:empl• sally:student• sally:empl• alice:child(john

)• mary:faculty• bob:faculty• bob:manager• phil:empl• 20:young• 30:yuppie• 40:midaged

• codd70:cacm• flogic94:jacm• cs1:dept• cs2:dept• integer:datatyp

e• string:datatype• “CS”:string• “Mary”:string• “Bob”:string• ms:degree• phd:degree

Page 13: 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.

O banco de dados acadêmico em FLORIDO 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-> “Bob”;age->40;

affiliation->cs1[dname-> “CS”;mngr -

>bob;assistants->> {john, sally}]]

• 3. Mary’s highest degree is an MS. • 4. She works at the CS department and is friend to Bob and

Sally. mary [name-> “Mary”;

highestDegree->ms;friends->>{bob, sally}

affiliation->cs2[dname->”CS”]]

Page 14: 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.

O banco de dados acadêmico em FLORIDO 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 faculty’s boss is both a faculty and a manager. faculty [boss=>(faculty, manager);

age=>midaged;

highestDegree=>degree;papers->>article;

highestDegree*->phd;avgSalary->50000]

Page 15: 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.

O banco de dados acadêmico em FLORIDO 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 [name=>string;

friends=>>person;children=>>child(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 [affiliation=>dept;boss=>empl;

jointWorks@empl=>>report]

Page 16: 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.

O banco de dados acadêmico em FLORIDO 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 [assistants=>>(student, empl);

mngr=>empl]

Regras dedutivas:• 10. A boss is an employee who is the manager of another

employee of the same department. E[boss->M] :- E:empl ^ D:dept

^ E[affiliation->D[mngr->M:empl]]

• 11. A joint work is a paper that is written by two faculties. X [jointWorks@Y->>Z] :- Y:faculty ^ X:faculty

^ Y [papers->>Z] ^ X [papers->>Z]

Page 17: 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.

O banco de dados acadêmico em FLORIDO banco de dados acadêmico em FLORID

Consultas:• 0a: Who are the midaged employees of the CS department

and who are their boss? ?- X:empl ^ X [boss-> Y;

age->Z:midaged;affiliation-

>D[dname->”CS”]].

• 0b: Who published jointly with Mary in the Journal of the ACM?

?- mary[jointWorks@Y->>jacm90].

• 0c: Where did Mary published joint work with Phil? ?- mary[jointWorks@phil->>Z].

Page 18: 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.

ObjetosObjetos

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

Page 19: 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.

Nomes de objetosNomes 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”

Page 20: 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.

MétodosMé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• bob[boss->john].

Métodos multivalorados (podem resultar em mais de um objeto)• mary[friends->>{bob,sally}].

Page 21: 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.

MétodosMétodos

A posição resultado de um método multivalorado pode ser o conjunto vazio• bob[friends->>{ }].

pode também ser vista como uma declaração do método friends

Métodos com parâmetros• mary [ jointWorks@(phil)->>{jacm90,cacm92};

jointWorks@(jacques)->>{aaai92, cacm92}].• mary [ jointWorks@(phil,1)->>jacm90;

jointWorks@(phil,2)->>cacm92].

Page 22: 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.

MétodosMétodos

Consultas com métodos multivaloradas• ?- mary [friends->>X]

X/bobX/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}

• ?- mary[friends->>{bob,sally}].true

• ?- mary[friends->>{bob}].true

• ?- mary[friends->>{ }].true

Page 23: 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.

Átomos-FÁtomos-F

Expressa exatamente uma propriedade de um objeto (a que classe ele pertence, a especificação de um método)• bob:empl.• bob[boss->>{john}].• bob[boss->>{sally}].

Page 24: 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.

Moléculas-FMolé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• bob:empl[boss->>{john,sally}].

Moléculas-F sem propriedades:• sally[ ].

“Açúcar sintático” da linguagem

Page 25: 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.

ClassesClasses

Átomos-F do tipo é-um: classe à qual o objeto pertence• john:student• sally:empl

Átomos-F de subclasse: relação de subclasse entre duas classes• empl::person• faculty::empl

F-logic também suporta overloading de métodos• empl [jointWorks@empl=>>report].• empl [jointWorks@(empl, integer)=>>report].

Page 26: 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.

AssinaturasAssinaturas

Á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• faculty[boss=>(faculty)].• faculty[boss=>(manager)].• person[friends=>>person].• empl[jointWorks@empl=>>report].• dept[assistants=>(student, empl)].

Pode-se também declarar métodos sem restrições de tipo• person[believes_in=>( )].

Page 27: 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.

HerançaHeranç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:• person[believes_in*->god]

bob [believes_in->god] john [believes_in->god] empl [believes_in*->god]

Page 28: 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.

Herança e regrasHerança e regras

Resolução da herança• john:king.• peter:king.• king[lives*->palace].• peter[lives->abroad] :- john[lives->palace].• john[lives->abroad] :- peter[lives->palace].

?- sys.eval[].¤ Begin semi-naive evaluation¤ End evaluation

?- X[lives->Y].¤ Answer to query : ?- X[lives -> Y].

X/john Y/palace X/peter Y/abroad

¤ 2 output(s) printed

Page 29: 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.

OverridingOverriding

Regras lógicas tem prioridade sobre a herança:• abraham:person[believes_in->god; descendant-

>>{isaac:person}].• ahab:person.• person[believes_in*->baal].• X[believes_in->god] :- abraham[descendant->>X:person].• god[loves->>X] :- X[believes_in->god].

?- sys.eval[].¤ Begin semi-naive evaluation¤ End evaluation

?- god[loves->>X].¤ Answer to query : ?- god[loves ->> {X}].

X/abraham X/isaac

¤ 2 output(s) printed

Page 30: 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.

Predicados e Átomos-PPredicados 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

Page 31: 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.

Átomos-PÁtomos-P Informação expressa em átomos-P pode ser

representada por átomos-F, obtendo-se uma modelagem mais natural• mary[friends_with->>bob].• bob:empl.• mary[jointWorks@(bob)->>jacm94].

Similarmente às moléculas-F, moléculas-P podem ser construídas aninhando-se átomos-F ou moléculas-F em átomos-P• friends(mary[affiliation->cs1], bob:empl).

Átomos-F e moléculas-F podem ser aninhados em átomos-P, mas o inverso não é verdadeiro• empl(bob)[friends(bob,sally)].

Page 32: 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.

RegrasRegras

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á X[manager->>Y] :- X[boss->>Y].

Formam o BD Intencional

Page 33: 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.

ConsultasConsultas

Podem ser consideradas um tipo de regra especial com a primeira parte vazia• ?- mary[friends->>Y:empl].

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

Page 34: 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.

Variáveis “don’t care”Variáveis “don’t care”

Variáveis para resultados intermediários que não aparecem no resultado• ?- X:empl[boss->_Y], _Y[friends->>sally].

A variável “_”:• cada ocorrência desta variável é considerada uma variável

“don’t care” distinta

Page 35: 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.

ReferênciasReferê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