Component-oriented database

Last updated

Component-oriented database (CODB) is a way of data administration and programming DBMS's using the paradigm of the component-orientation.[ citation needed ]

Contents

Concepts

The paradigm of component-orientation (CO) is a development of the object-orientation (OO) in programming and data modeling, leading toward the extreme the possibilities of reuse. [1] In this model type, classes are aggregate in cells called components,[ citation needed ] that execute a role similar to the function in the structured programming, [2] a way of processing information contemporary to the relational database model. [3]

So the component-orientation mixes a set of features of its predecessor models. Understanding it is simpler while thinking of the visual component, that is an application [4] which not being deployed into an executable or bytecode but otherwise turned to be linked by an icon inside another application, icon when one clicks on it implements certain tasks. [5] Then this concepts can be extended to non-visual components. [6]

In database activities, the component, visual or not, is an aggregate of classes, in the sense of OO, that can be linked to other ones by adapters. [7]

As after the OO model conception data and code programming code are mixed in a cohesive body, [8] there are some difficulties in conceiving where the CODB and CO programming are separate one from the other. Although this enigma is important in conceptual epistemological area, in practical data processing there isn't so importance in this question because of usage of mapping models to large scale used software, like the mappings called ORDBMS and CRDB (component-relational database), in which the separation of data and code are still well defined. [9]

Implementation

In programming activity, the CO is often taken place with large-scale used OO languages (like C++, Java) with mapping adaptation. In designing the paradigm is supported by UML. In data modeling, data administration and database administration, the mapping adaptation is alike the ORDBMS paradigm. The adapted paradigm to component-based models is known as component-relational database (CRDB). [10]

Advantages

The main advantage of the component-oriented thinking, as seen in early chapters, is the optimization of reusability of work. Going far away from the uses of OO models, the CO paradigm allows the use of ready to use applications as modules to new and bigger projects. [5]

It is necessary to regard that these technical features are not achieved in traditional OO models, although the idea of component came up naturally from OO thinking. The basis support notions of OO like encapsulation, inheritance and polymorphism not necessarily leads to the idea of reusing applications as modules of new works. The CO thinking also assures that components are fully tested, as a real application, and thus there is in this model the paroxism of reuse, [11] as well as the feature of understandability to end users, as corollary of the app->comp way of realizing the IT works.

Even using the same software that are present in OO paradigm, there are many specific consequences in the world of data-oriented activities. In analogous way, whole models composed of classes can be treated as a part (component) of a new more comprehensive model.[ citation needed ]

Bibliography

See also

Related Research Articles

<span class="mw-page-title-main">Object database</span> Type of database management system

An object database or object-oriented database is a database management system in which information is represented in the form of objects as used in object-oriented programming. Object databases are different from relational databases which are table-oriented. A third type, object–relational databases, is a hybrid of both approaches. Object databases have been considered since the early 1980s.

Object–relational mapping in computer science is a programming technique for converting data between a relational database and the heap of an object-oriented programming language. This creates, in effect, a virtual object database that can be used from within the programming language.

The Enterprise Objects Framework, or simply EOF, was introduced by NeXT in 1994 as a pioneering object-relational mapping product for its NeXTSTEP and OpenStep development platforms. EOF abstracts the process of interacting with a relational database by mapping database rows to Java or Objective-C objects. This largely relieves developers from writing low-level SQL code.

<span class="mw-page-title-main">Object–relational database</span> Database management system

An object–relational database (ORD), or object–relational database management system (ORDBMS), is a database management system (DBMS) similar to a relational database, but with an object-oriented database model: objects, classes and inheritance are directly supported in database schemas and in the query language. In addition, just as with pure relational systems, it supports extension of the data model with custom data types and methods.

<span class="mw-page-title-main">Data model</span> Model that organizes elements of data and how they relate to one another and to real-world entities.

A data model is an abstract model that organizes elements of data and standardizes how they relate to one another and to the properties of real-world entities. For instance, a data model may specify that the data element representing a car be composed of a number of other elements which, in turn, represent the color and size of the car and define its owner.

In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.

<span class="mw-page-title-main">IDEF</span> Family of modeling languages

IDEF, initially an abbreviation of ICAM Definition and renamed in 1999 as Integration Definition, is a family of modeling languages in the field of systems and software engineering. They cover a wide range of uses from functional modeling to data, simulation, object-oriented analysis and design, and knowledge acquisition. These definition languages were developed under funding from U.S. Air Force and, although still most commonly used by them and other military and United States Department of Defense (DoD) agencies, are in the public domain.

Hibernate ORM is an object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database. Hibernate handles object–relational impedance mismatch problems by replacing direct, persistent database accesses with high-level object handling functions.

<span class="mw-page-title-main">Information model</span>

An information model in software engineering is a representation of concepts and the relationships, constraints, rules, and operations to specify data semantics for a chosen domain of discourse. Typically it specifies relations between kinds of things, but may also include relations with individual things. It can provide sharable, stable, and organized structure of information requirements or knowledge for the domain context.

Object–relational impedance mismatch creates difficulties going from data in relational data stores to usage in domain-driven object models. Object-orientation (OO) is the default method for business-centric design in programming languages. The problem lies in neither relational nor OO, but in the conceptual difficulty mapping between the two logic models. Both are logical models implementable differently on database servers, programming languages, design patterns, or other technologies. Issues range from application to enterprise scale, whenever stored relational data is used in domain-driven object models, and vice versa. Object-oriented data stores can trade this problem for other implementation difficulties.

The Shlaer–Mellor method, also known as object-oriented systems analysis (OOSA) or object-oriented analysis (OOA) is an object-oriented software development methodology introduced by Sally Shlaer and Stephen Mellor in 1988. The method makes the documented analysis so precise that it is possible to implement the analysis model directly by translation to the target architecture, rather than by elaborating model changes through a series of more platform-specific models. In the new millennium the Shlaer–Mellor method has migrated to the UML notation, becoming Executable UML.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

This is an alphabetical list of articles pertaining specifically to software engineering.

<span class="mw-page-title-main">Component-based software engineering</span> Branch of software engineering

Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to build software out of loosely-coupled, modular components. It emphasizes the separation of concerns among different parts of a software system.

Object-oriented design (OOD) is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

<span class="mw-page-title-main">Object-oriented programming</span> Programming paradigm based on the concept of objects

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields, and code in the form of procedures. In OOP, computer programs are designed by making them out of objects that interact with one another.

UML is a modeling language used by software developers. UML can be used to develop diagrams and provide users (programmers) with ready-to-use, expressive modeling examples. Some UML tools generate program language code from UML. UML can be used for modeling a system independent of a platform language. UML is a graphical language for visualizing, specifying, constructing, and documenting information about software-intensive systems. UML gives a standard way to write a system model, covering conceptual ideas. With an understanding of modeling, the use and application of UML can make the software development process more efficient.

Object-PL/SQL is a methodology of using the Oracle Corporation's procedural extension language for SQL and the Oracle relational database. The additional features from version 7 and other improvements, lead to one of the large-scale environment implementations of the object-oriented database paradigm.

The following is provided as an overview of and topical guide to databases:

Oracle TopLink is a mapping and persistence framework for Java developers. TopLink is produced by Oracle and is a part of Oracle's OracleAS, WebLogic, and OC4J servers. It is an object-persistence and object-transformation framework. TopLink provides development tools and run-time functionalities that ease the development process and help increase functionality. Persistent object-oriented data is stored in relational databases which helps build high-performance applications. Storing data in either XML or relational databases is made possible by transforming it from object-oriented data.

References

  1. Cesare, Sergio de; Lycett, Mark; Macredie, Bobert. D. (2006). Development of Component-Based Information Systems. Vol. 2 (1st ed.). New York: M. E. Sharp. p. 52. ISBN   0765612488. ISSN   1554-6152.
  2. Fröhlich, Peter Hans (2003). Component-Oriented Programming Languages: Why, What, and How (1 ed.). Irvine: University of California. p. 2.
  3. Sureau, Denis (27 March 2012). "History of Programming Languages and Their Evolution". Scriptol. Archived from the original on 16 October 2012. Retrieved 29 March 2012.
  4. or even a small application or applet
  5. 1 2 "The Benefits of Modular Programming" (PDF). Netbeans Org. 2007. Archived from the original (PDF) on 12 January 2012. Retrieved 29 March 2012.
  6. Piveta, Eduardo Kessler; Zancanella, Luiz Carlos. "Aurélia: Aspect Oriented Programming Using a Reflective Approach" (PDF). IT Department of Santa Maria University. Retrieved 29 March 2012.[ permanent dead link ]
  7. "Components: Interfaces and Adapters". Twisted Matrix Labs. Archived from the original on 24 February 2012. Retrieved 29 March 2012.
  8. Guthery, Scott (1 December 1989). "Are the Emperor's New Clothes Object Oriented?". Dr. Dobb's Journal. Retrieved 29 March 2012.
  9. "Introduction to Java in Oracle Database". Oracle docs. Retrieved 30 March 2012.
  10. Hameurlain, Abdelkader. Lecture Notes in Computer Science.
  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. Archived from the original (PDF) on 16 March 2014. Retrieved 30 March 2012.