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
The Object-Relational Impedance
Mismatch
Apollo 13
2
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
The Object-Relational Impedance
Mismatch
A UML class model.
4
The Object-Relational Impedance
Mismatch
A physical data model (UML notation)
5
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
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
Técnicas de Mapeamento
8
Generalização no Mapeamento
9
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
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
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
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
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
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
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
ODL
class Author (extent Authors) {
attribute string name;
attribute date birthday;
relationship set<Publication> authors inverse
Publication::authored_by;
integer get_age();
};
class Publication (extent Publications) {
attribute string title;
attribute integer year;
relationship list<Author> authored_by inverse
Author::authors;
};
17
OIF
Sarah Person {
Name "Sarah",
Person Address {
Street "Willow Road",
City "Palo Alto",
Phone {
CountryCode 1,
AreaCode 415,
PersonCode 1234
}
}
}
18
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
Bancos OO
• Versant
– Versant Object Database
– FastObjects
– db4o
• Intersystems
– Caché
– Global
• McObject
– eXtremeDB
– Perst
• Progress
– ObjectStore
• ObjectDB
– ObjectDB
http://www.odbms.org/vendors.aspx
20
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
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
Arquitetura do db4o
23
Modelo do Exercício
24
Implementação Prática
25
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
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
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

Bancos de Dados Orientados a Objetos

  • 1.
    Bancos de DadosOrientados 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
  • 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
  • 4.
  • 5.
    The Object-Relational Impedance Mismatch Aphysical data model (UML notation) 5
  • 6.
    Abordagens para Persistênciade 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ênciade Objetos • Object-Oriented DBMSs (OODBMSs) – Modelo top-down onde é criado um modelo orientado a objetos que reflete o modelo utilizado pela aplicação. 7
  • 8.
  • 9.
  • 10.
    The Object-Oriented DatabaseSystem 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 DatabaseSystem Manifesto - Malcolm Atkinson • Extensibilidade • Persistência • Administração de armazenamento secundário • Concorrência • Recovery • Query’s ad hoc 11
  • 12.
    GOP ORDBMS OODBMS ObjectID 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 DatabaseManagement 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 • ObjectModel • 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
  • 17.
    ODL class Author (extentAuthors) { attribute string name; attribute date birthday; relationship set<Publication> authors inverse Publication::authored_by; integer get_age(); }; class Publication (extent Publications) { attribute string title; attribute integer year; relationship list<Author> authored_by inverse Author::authors; }; 17
  • 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 fromAuthors 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
  • 20.
    Bancos OO • Versant –Versant Object Database – FastObjects – db4o • Intersystems – Caché – Global • McObject – eXtremeDB – Perst • Progress – ObjectStore • ObjectDB – ObjectDB http://www.odbms.org/vendors.aspx 20
  • 21.
    db4o • Open sourcenative 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 • NativeQueries (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
  • 23.
  • 24.
  • 25.
  • 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, ClarenceJ. 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