Introduction

CACHE is a multidimensional database that combines robust objects and robust SQL, thus eliminating object-relational mapping. Cache enables rapid web application development, quick transaction processing, scalability, and real-time queries against transactional data.

Cache is a post-relational database - the “relational” part of “post-relational” refers to the fact that Cache is a full-featured relational database. All the data within a Cache database is available as true relational tables and can be queried and modified using standard SQL via ODBC, JDBC, or object methods. The “post” part of “post-relational” refers to the fact that Cache offers a range of features that go beyond the limits of relational databases, while still supporting a standard relational view of data. These features include:

  • The ability to model data as objects (each with an automatically created and synchronized native relational representation) while eliminating both the impedance mismatch between databases and object-oriented application environments as well as reducing the complexity of relational modeling.
  • A simpler, object-based concurrency model.
  • User-defined data types.
  • The ability to take advantage of methods and inheritance, including polymorphism, within the database engine.
  • Object-extensions for SQL to handle object identity and relationships.
  • The ability to intermix SQL and object-based access within a single application, using each for what they are best suited.
  • Control over the physical layout and clustering used to store data in order to ensure the maximum performance for applications.

Another unique feature of Cache is its Unified Data Architecture. Whenever a database object class is defined, Cache automatically generates a SQL-ready relational description of that data. Similarly, if a DDL description of a relational database is imported into the Data Dictionary, Cache automatically generates both a relational and an object description of the data, enabling immediate access to objects.

At the core of the Cache architecture, is the Cache Multi-dimensional Database Engine that provides the complete set of services—including data storage, concurrency management, transactions, and process management—needed to build complex database management systems. Data can be stored and accessed from the database engine using objects, SQL, or through direct access to multidimensional structures. Figure 1 depicts the access methodologies.

Figure 1 : Access to the data stored by the data engine

Regardless of the access method, all data in Cache’s database is stored in Cache’s multidimensional arrays. These multi-dimensional arrays enable efficient data storage; further, the absence of joins and table-hopping hastens query execution. In addition, its ability to distribute data and application logic across multiple server systems, simplifies the development of reliable applications. Owing to these capabilities, Cache is a key ingredient in the design and delivery of a wide variety of applications ranging from single-user embedded systems to large, multi-server, multi-user installations (such as those required by banks, hospitals, etc.) providing essential services to end-users.

This dependence on Cache for performing business-critical tasks and for developing mission-critical applications could only mean that even a wafer-thin deviation in its performance could cause an enterprise to lose millions. Database administrators are thus faced with the daunting task of ensuring the 24x7 availability of the Cache database and the optimal performance of all its components. The eG Enterprise helps administrators in this task.