Banco de dados orientado a componentes

Banco de dados orientado a componentes (CODB) é um paradigma de administração de dados e programação de SGBDs herdando conceitos da orientação a componentes.[1]

Conceitos editar

O modelo da orientação a componentes (CO) consiste num aprimoramento da orientação a objetos (OO) em programação e modelagem de dados, levando ao paroxismo as possibilidades de reúso.[2] Neste tipo de modelo, classes são agregadas em células chamadas componentes,[1] as quais executam um papel semelhante ao da função na programação estruturada,[3] uma forma de processar informação que é contemporênea ao banco de dados relacional[4]

Assim, a orientação a componentes reúne um complexo de características dos modelos antecedentes. Seu entendimento torna-se simples a partir da ideia do componente visual, que consiste numa aplicação ou mesmo numa miniaplicação ("applet") que, ao ser compilada, não resulta num executável ou num bytecode, mas num ícone, que pode ser situado no interior de outra aplicação, sendo que, durante a execução da segunda aplicação, ao clicar no ícone, se realizam determinadas tarefas. Tal ícone pode ser replicado em várias aplicações, daí a ideia de reúso.[5] Então, esses conceitos podem ser estendidos aos componentes não visuais[6]

No âmbito das atividades de TI que dizem respeito a bancos de dados, o componente, visual ou não, é um agregado de classes, no sentido dado pela OO, que pode ser ligado a outros (componentes) através de adaptadores.[7]

Como a partir da concepção do modelo OO, dados e códigos de programação são misturados num mesmo contexto, sem distinção de textos,[8] há dificuldade no entendimento de como a programação CO e o CODB se distinguem. Embora haja esta dificuldade conceitual, na práxis do processamento de dados, não se trata de algo importante, tendo em vista o uso em larga escala de modelos de mapeamento como o ORDBMS e o CRDB (banco de dados componente-relacional), nos quais a separação de dados e programas ainda é bem definida[9]

Implementação editar

Na atividade de programação, a CO usualmente aparece com o uso de linguagens OO de uso amplo (como C++ ou Java) com um mapeamento. No projeto, este paradigma é realizado pela UML. Nas atividades de modelagem de dados, administração de dados e administração de banco de dados, o mapeamento é semelhante ao do paradigma ORDBMS. O paradigma adaptado para o modelo baseado em componentes é chamado de banco de dados componente-relacional (CRDB).[10]

Vantagens editar

A principal vantagem do pensamento orientado a compnentes, como visto nos capítulos anteriores, é a otimização da reusabilidade do trabalho. Indo além do resultado do uso do modelo OO, a CO permite o uso de aplicações "prontas" como módulos para novos e maiores projetos.[5]

É preciso notar que estas características técnicas não são alcançadas nos modelos da tradicional OO, apesar da ideia de compnente surgir naturalmente do pensamento OO. A base da CO comporta noções como encapsulamento, herança e polimorfismo, as quais, entretanto, sozinhas não levam à ideia de reutilizar aplicações como módulos de novos trabalhos. O pensamento CO, além disto, assegura que componentes totalmente testados (por serem oriundos de aplicações) são as partes da composição de uma nova aplicação: daí o paroxismo do reúso,[11] assim como a característica da facilidade de entendimento para o usuário final são corolários do modo aplicação->compnente de realizar tarefas em TI.

Mesmo usando os mesmos softwares presentes no paradigma OO, há várias consequências específicas no mundo das atividades orientadas a dados. Numa analogia, modelos compostos de classes podem ser tratados como partes (componentes) dentro de um modelo mais abrangente[carece de fontes?].

Bibliografia editar

  • Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, peter. Pattern-Oriented Software Architecture, Volume 1. John Wiley & Sons, 1996, ISBN 047195869-7.
  • Cho, Eun-Sun ; Han, Sang-Yong; Kim, Hyoung-Joo. A New Data Abstraction Layer Required For OODBMS, Proceedings of 1997 International Database engineering and Applications Symposium (IDEAS’97).
  • Clemente, Pedro J.; Hernandez, Juan. Aspect Component Based Software Engineering, Proceedings of The Second AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS), março de 2003.
  • Clements, Paul. From subroutines to subsystems: Component-Based Software Development. Brown, Allen. Component-Based Software Engineering: Selected Papers from Software Institute, 1996.
  • Erich Gamma, Erich; Helm, Richerd; Johnson, Ralph; Vilssides, John. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995, ISBN 0201633612.
  • Garcia-Molina, Hector; Ulman, Jeffrey D.; Widom, Jennifer, Database Systems – A complete book. Prentice Hall, 2002, ISBN 0131873253.
  • Pfister, C.;Szyperski, C.. Why Objects Are Not Enough, Proceedings of Component Users Conference, Munich, Germany, 1996.
  • Rotaru, Octavian Paul;Dobre, Marian;Petrescu, Mircea. Integrity and Consistency Aspects in Component-Oriented Databases, Proceedings of the International Symposium on Innovation in Information.
  • Stroustrup, Bjarne. Why C++ is not just an Object-Oriented Programming Language, Addendum to OOPSLA95 Proceedings, ACM OOPS Messenger, October 1995.
  • Szyperski, Clemens. Component Software – Beyond Object-Oriented Programming. ACM Press/Addison-Wesley, 1998, ISBN 0201178885.

Ver também editar

Referências

  1. a b Rotaruo, Octavian Paul b, Petrescu, Mircea, Dobre, Marian. «Towards a Component Based Model for Database Systems». Leonardo Journal of Sciences. Consultado em 25 de março de 2012 
  2. Cesare, Sergio de; Lycett, Mark; Macredie, Bobert. D. (2006). Development of Component-Based Information Systems. 2 1 ed. New York: M. E. Sharp. 52 páginas. ISBN 0765612488. ISSN 1554-6152 
  3. Fröhlich, Peter Hans (2003). Component-Oriented Programming Languages: Why, What, and How 1 ed. Irvine: University of California. p. 2. 151 páginas 
  4. Sureau, Denis (27 de março de 2012). «History of Programming Languages and Their Evolution». Scriptol. Consultado em 29 de março de 2012 
  5. a b «The Benefits of Modular Programming» (PDF). Netbeans Org. 2007. Consultado em 29 de março de 2012 
  6. Piveta, Eduardo Kessler, Zancanella, Luiz Carlos. «Aurélia: Aspect Oriented Programming Using a Reflective Approach» (PDF). IT Department of Santa Maria University. Consultado em 29 de março de 2012 
  7. «Components: Interfaces and Adapters». Twisted Matrix Labs. Consultado em 29 de março de 2012 
  8. Guthery, Scott (1 de dezembro de 1989). «Are the Emperor's New Clothes Object Oriented?». Dr. Dobb's Journal. Consultado em 29 de março de 2012 
  9. «Introduction to Java in Oracle Database». Oracle docs. Consultado em 30 de março de 2012 
  10. Hameurlain, Abdelkader. Lecture Notes in Computer Science. [S.l.: s.n.] 
  11. Grundy, John; Patel, Rakesh (2000). «Developing Software Components with the UML, Enterprise Java Beans and Aspects» (PDF). Faculty of Information and Communication Technologies of Swinburne Universe of Technology. Consultado em 30 de março de 2012 

Nota editar