1 / 36

Bancos de Dados com Objetos

Bancos de Dados com Objetos. Jacques Robin CIn-UFPE. Banco de dados com objetos: diversidade dos modelos. Modelo puramente orientado a objetos (OO), ex., O 2 Modelo objeto-relacional (OR), ex., SQL3 Modelo ativo orientado a objetos (AOO), ex., Chimera

chavez
Download Presentation

Bancos de Dados com Objetos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bancos de Dados com Objetos Jacques Robin CIn-UFPE

  2. Banco de dados com objetos: diversidade dos modelos • Modelo puramente orientado a objetos (OO), ex., O2 • Modelo objeto-relacional (OR), ex., SQL3 • Modelo ativo orientado a objetos (AOO), ex., Chimera • Modelo dedutivo orientado a objetos (DOO), ex., F-Logic • Modelo com restrições e objetos (COO), ex., C3 • Modelo de componentes distribuídos orientado a objetos (DOOC), ex., CORBA

  3. Orientação objetos para BD: motivação • Uniformidade: • codificar lógica da aplicação e o acesso aos dados no mesmo paradigma (impedance mismatch) • Completude computacional: • embutir no BD comportamentos ligados aos dados • Expressividade da modelagem: • estruturas complexas, recursivas e heterogêneas • Modularidade e reuso • hierarquia de classes com herança e encapsulamento permite prototipagem, personalização e extensão rápida • Integração em sistemas de componentes distribuídos • Novas aplicações de BD: • CAD/CAM, CASE, GIS, gerenciamento de workflows, groupware, bibliotecas digitais multimídia, comercio eletrónico, etc.

  4. Orientação a objetos Identificação única Encapsulamento de estado e comportamento Construtores de estruturas complexas ortogonais e extensíveis Hierarquia de classes (esquema) com herança de estado e comportamento Estado inicial e comportamento default Sobrescrita, sobrecarga e ligação dinâmica Completude computacional Restrições, verificação e inferência de tipos Herança múltipla Acesso completo a recursos Gerenciamento de versões Banco de dados Persistência Otimização de acesso a memória segundaria Acesso concorrente Recuperação: terminação, exceções, transações Linguagem de manipulação: conciso, intuitivo, declarativo, interpretado, otimizável, independente da aplicação, formalmente bem fundamentado Visões e dados derivados Restrições de integridades Manipulação dinâmica de esquema Utilitários administrativos Serviços requeridos de um BDOO

  5. Modelos puramente orientado a objetos • Extensões de LPOO para serviços de BD: • resolvem o “impedance mismatch” (com Java, C++, Smalltalk) • nenhum já fornece leque de serviços suficiente para constituir um autêntico SGBD (em geral apenas persistência e concorrência) • Implementações do padrão ODMG: • cobrem maioria dos serviços obrigatórios de BDOO • não resolvem “impedance mismatch”: • não é computacionalmente completo • integração com LPOO via strings e não objetos • sintaxe: consultas SQL, definições SQL ( CORBA) • semântica: nada a ver com SQL, e de fato sem definição precisa • sem fundamentação nos princípios de engenharia de software • “padrão” comercial, ainda imaturo, e sem apoio dos gigantes • cada vez mais usadas para aplicações avançadas

  6. Características de O2 • Mais completa das implementações comerciais de ODMG • Tipos e classes: • tipos primitivos: booleano, caráter, inteiro, real, string • tipos compostos: via construtores • ortgonais e recursivos de tupla, lista, bag e conjunto • aplicados a tipos primitivos e/ou classes definidas pelo usuário • classes: • tipo definido via construtores de tipos • assinaturas do métodos • implementação dos métodos: via LPOO ligado (Java, C++, Smalltalk) • superclasse(s) • Objetos: • id única, definido como persistente ou transitório • criado via new, herda tipo e métodos da classe

  7. Estudo de caso comparativo: A lista de materiais • Problema padrão em indústria da manufatura • 3 tarefas teste de linguagem de manipulação e consulta nesse domínio: 1. Descrever um BD brinquedo (com seu esquema) 2. Fazer uma consulta seletiva do BD brinquedo: 3. Fazer uma consulta agregada do BD brinquedo:

  8. nome_sub rua localização A lista de materiais: modelo ER cor fabricante modelo nome idade 1 n 1 possui_frota domicílio Veículo Pessoa #pessoa n 1 produz é-um rua 1 1 salário 1 localização 1 administra Companhia Empregado #companhia qualificação 1 1 n nome_comp possui trabalha gerencia 1 n Subsidiária 1

  9. A lista de materiais em SQL2

  10. classe3: Endereço: [ rua: String, localização: String] classe4: Pessoa: [ nome: String, idade: Integer; domicilio: Endereço, Frota: {Veiculos}] classe5: Empregado is-a Pessoa: [ qualificações: {String}, salário: Integer; Familiares: {Pessoa}] BD x Aplicações BD Orientado a Objetos - Exemplo

  11. BD x Aplicações BD Objeto Relacional - Exemplo Criação de Tipos: • CREATE TYPE Subsidiaria • ( • NomeSub String, • Escritório endereço, • Empregados SET(REF(Empregado)), • ); CREATE TYPE Endereço ( RuaNo VARCHAR(60), Cidade VARCHAR(40), ); CREATE TYPE empregado ( nome CHAR(20), salário DECIMAL(10,2), ); • CREATE TYPE Companhia • ( • NomeComp String, • Matriz endereço, • Subsidiarias SET(REF(Subsidiaria)), • Presidente REF(Empregado), • ); Criação de Tabelas: CREATE TYPE Fornecedor ( CodFornec CHAR(4) NomeFornec VARCHAR(40) EndFornec endereço, ); CREATE TABLE Fornecedor OF Fornecedor CREATE TABLE empregados OF Empregado

  12. Definição do BD: class Companhia type tuple(name:string, matriz:Endereço, subsidiárias:set(Subsidiária), presidente:Empregado) end; class Subsidiária type tuple(name:string, public escritório:Endereço Consulta seletiva: Consulta agregada: classe1: Companhia: [ nome: String, matriz: Endereço; Subsidiarias: {Subsidiaria}, Presidente: Empregado] classe2: Subsidiaria: [ nome: String, escritório: Endereço; Gerente: Empregado, Empregados: {Empregado}] BD de empregados: em O2 + Java

  13. Modelos objeto-relacionais

  14. Características de SQL3

  15. BD de empregados em SQL3

  16. Aplicações e limitações dos modelos OO e OR

  17. Modelo OO x Modelo OR

  18. Modelo dedutivo orientado a objetos: motivação

  19. Serviços de um BD dedutivo orientado a objetos

  20. Tipologia e implementações dos modelos dedutivos orientados a objetos

  21. Características de F-Logic

  22. BD de empregados em F-Logic

  23. Aplicações e limitações dos modelos DOO

  24. Modelo DOO x modelos OO e OR

  25. Modelo ativo orientado a objetos: motivação

  26. Serviços de BD ativo orientado a objetos

  27. Tipologia e implementações dos modelos ativos orientados a objetos

  28. Características de ??

  29. BD de empregados em ??

  30. Aplicações e Limitações do modelo AOO

  31. Modelo AOO x modelos OO e OR

  32. Modelo AOO x modelo DOO

  33. BD e componentes distribuídos orientado a objetos

  34. BD distribuídas heterogêneas e CORBA

  35. Conclusão: contribuição atual da orientação objetos para BD e perspectivas futuras

More Related