A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Departamento de Informática

Apresentações semelhantes


Apresentação em tema: "Departamento de Informática"— Transcrição da apresentação:

1 Departamento de Informática
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 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 dados x Linguagens 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 dados x 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
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)
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]: FLORID [3]:
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: 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:datatype string:datatype “CS”:string “Mary”:string “Bob”:string ms:degree phd:degree

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-> “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”]]

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 faculty’s boss is both a faculty and a manager. faculty [boss=>(faculty, manager); age=>midaged; highestDegree=>degree; papers->>article; highestDegree*->phd; avgSalary->50000]

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 [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;

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 [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 :- Y:faculty ^ X:faculty ^ Y [papers->>Z] ^ X [papers->>Z]

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? ?- X:empl ^ X [boss-> Y; age->Z:midaged; affiliation->D[dname->”CS”]]. 0b: Who published jointly with Mary in the Journal of the ACM? ?- 0c: Where did Mary published joint work with Phil? ?-

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 bob[boss->john]. Métodos multivalorados (podem resultar em mais de um objeto) mary[friends->>{bob,sally}].

21 Mé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 [ cacm92}]. mary [

22 Métodos Consultas com métodos multivaloradas
?- mary [friends->>X] 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} ?- mary[friends->>{bob,sally}] true ?- mary[friends->>{bob}] true ?- mary[friends->>{ }] true

23 Á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}].

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 bob:empl[boss->>{john,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
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 empl integer)=>>report].

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 faculty[boss=>(faculty)]. faculty[boss=>(manager)]. person[friends=>>person]. dept[assistants=>(student, empl)]. Pode-se também declarar métodos sem restrições de tipo person[believes_in=>( )].

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: person[believes_in*->god] bob [believes_in->god] john [believes_in->god] empl [believes_in*->god]

28 Heranç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

29 Overriding 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

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 mary[friends_with->>bob]. bob:empl. 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)].

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

33 Consultas 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

34 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

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


Carregar ppt "Departamento de Informática"

Apresentações semelhantes


Anúncios Google