Bancos de Dados Orientados a Objetos

760 visualizações

Publicada em

Banco de Dados Orientados a Objetos apresentado no ERDB 2013

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Bancos de Dados Orientados a Objetos

  1. 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
  2. 2. The Object-Relational Impedance Mismatch Apollo 13 2
  3. 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. 4. The Object-Relational Impedance Mismatch A UML class model. 4
  5. 5. The Object-Relational Impedance Mismatch A physical data model (UML notation) 5
  6. 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. 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
  8. 8. Técnicas de Mapeamento 8
  9. 9. Generalização no Mapeamento 9
  10. 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. 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. 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. 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. 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. 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. 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. 17. 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
  18. 18. OIF Sarah Person { Name "Sarah", Person Address { Street "Willow Road", City "Palo Alto", Phone { CountryCode 1, AreaCode 415, PersonCode 1234 } } } 18
  19. 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
  20. 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. 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. 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
  23. 23. Arquitetura do db4o 23
  24. 24. Modelo do Exercício 24
  25. 25. Implementação Prática 25
  26. 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. 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. 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

×