O documento discute os desafios do mapeamento entre modelos orientados a objetos e bancos de dados relacionais, apresentando abordagens como GOP, ORDBMS e OODBMS. Também aborda o manifesto de bancos de dados orientados a objetos de Malcolm Atkinson e as especificações do ODMG.
1. Bancos de Dados Orientados a
Objetos
Programa de Pós-Graduação em Computação Aplicada
Palestrante: Glaucio Scheibel
Prof. orientador: Fabiano Baldo, Ph.D
UNIVERSIDADE DO ESTADO DE SANTA CATARINA-UDESC
CENTRO DE CIÊNCIAS TECNOLÓGICAS-CCT
v1.2
3. The Object-Relational Impedance
Mismatch
• Dois modelos incompatíveis.
• Codificar o mapeamento é difícil e custoso.
• O mapeamento é considerado OverHead.
• Termo criado por Scott Ambler (2006).
– http://www.agiledata.org/essays/impedanceMismatch.html
3
6. Abordagens para Persistência de
Objetos
• Gateway-Based Object Persistence (GOP)
– Um middleware faz a ponte entre a aplicação OO
e o banco de dados não OO.
– Modelo mais usado. Ex: Hibernate
• Object-Relational DBMSs (ORDBMSs)
– Modelo bottom-up onde uma solução de base
relacional é estendida a também suportar o
modelo orientado a objetos.
– ANSI X3H2 - SQL3.
6
7. Abordagens para Persistência de
Objetos
• Object-Oriented DBMSs (OODBMSs)
– Modelo top-down onde é criado um modelo
orientado a objetos que reflete o modelo utilizado
pela aplicação.
7
10. The Object-Oriented Database System
Manifesto - Malcolm Atkinson
• Objetos complexos
• Identidade do Objeto (OID)
• Encapsulamento
• Tipos e classes
• Hierarquia
• Sobrecarga, sobre-escrita e late-binding
• Computational completeness
10
11. The Object-Oriented Database System
Manifesto - Malcolm Atkinson
• Extensibilidade
• Persistência
• Administração de armazenamento secundário
• Concorrência
• Recovery
• Query’s ad hoc
11
12. GOP ORDBMS OODBMS
Object ID
Complex Objects
Composite Objects
Relationships
Encapsulation
Inheritance
Polimorphism
Navigation
Ad hoc Queries
Schema evolution
Integrity constraints
and triggers
Comparação
2008 Tauro, Clarence J. M.; Ganesan, N.; Kumar Sahai, Ritesh; Rani A, Sandhya
12
13. Além do Manifesto
• Utilitários de administração
• Definição de views
• Roles
– Papéis podem ser definidos dinamicamente.
• Evolução do banco de dados
– Schema e dados devem poder evoluir.
• Constraints
13
14. ODMG
• Object Database Management Group
• Fundada em 1991 e dissolvida em 2001
• Ultima versão da especificação:
– The Object Data Standard ODMG 3.0
• ODBTWG
– OMG Object Database Technology Working Group
– OMG “Next Generation” Object Database
Standard (“ODMG 4.0”)
14
15. ODMG 3.0
• Object Model
• Object Specification Languages
– ODL Object Definition Language
– OIF Object Interchange Format
• Object Query Language
– OQL
• Language Bindings
– C++
– Smalltalk
– Java
15
16. Object Model
• OID
– Identificador do objeto
• Interface
– Só comportamento
• Class
– Comportamento e estado
• Literal
– struct
• IS-A
– herança de
comportamento
• Extends
– Herança de
comportamento e estado
• Extent
– Plural
• Collections
– set, bag, list, array ,
dictionary
16
18. OIF
Sarah Person {
Name "Sarah",
Person Address {
Street "Willow Road",
City "Palo Alto",
Phone {
CountryCode 1,
AreaCode 415,
PersonCode 1234
}
}
}
18
19. OQL
select a.authors.title from Authors a
where a.name = "Tilmann Zaeschke“
select a.name from Authors a
where exists b in Books:
b.price < 20 and b in a.authors
19
21. db4o
• Open source native object database for Java and .NET
– Patrocinado pela Versant.
– Dual License: GPL, dOCL e Comercial.
• Key features
– Sem conversão ou mapeamento.
– Não há necessidade de mudanças nas classes.
– Uma linha de código para armazernar o objeto de
qualquer complexidade.
– Modo embarcado e cliente/servidor.
– Modelo ACID.
– Cache de objetos.
– Versionamento do schema do banco de dados.
21
22. db4o Queries
• Native Queries (NQ)
– Expressada na linguagem de programação através
de predicados.
– Transformada em S.O.D.A.
• Query By Example (QbE)
– Pesquisa baseada em protótipos.
• Simple Object Data Access (S.O.D.A.)
– Pesquisa baseada na noção de grafos de query.
– Métodos para montar o grafo e as restrições.
22
26. Referências
• Atkinson, M., Bancilhon, F., DeWitt, D., Ditrich, K.,
Maier, D., Zdonik, S.: The Object-Oriented
Database Manifesto. In: Proceedings of
International Conference on Deductive and
Object-Oriented Databases. (1989) 223-240
• The Object Data Management Standard: ODMG
3.0 R. G.G. Cattell, Douglas K. Barry, Mark Berler,
Jeff Eastman, David Jordan, Craig Russell, Olaf
Schadow, Torsten Stanienda, and Fernando Velez
26
27. Referências
• Elmasri, Ramez – Sistema de bancos de dados
6. ed Pearson Addison Wesley, 2011
• DB4O 8.0 Reference – Versant Corporation
• Spindler, Alexandre de – Object Databases
Lecture Swiss Federal Institute of Tecnology
Zurich
– http://www.globis.ethz.ch/education/oodb
27
28. Referências
• Tauro, Clarence J. M.; Ganesan, N.; Kumar
Sahai, Ritesh; Rani A, Sandhya - Comparative
Study on Object Persistence Methods -
International Journal of Computer
Applications, vol. 42, issue 7, pp. 17-25
28