To get started building a custom ODBC, JDBC, OLE DB, or ADO.net driver using the SimbaEngine X SDK, follow these general steps:
The first step is to map your data store to the DSI model. The DSI represents the data store as a series of tables and columns, and the purpose of your DSI implementation is to translate your real data store schema into the DSI representation.
The DSI represents the data store as a series of tables and columns. The purpose of your DSI implementation is to translate your data store schema into tables and columns that the DSI can understand.
The diagram below shows an example of one type of mapping. The database on the left uses an object-oriented or networked schema to store the data. However, a relational SQL execution engine cannot directly use this schema.
If you represent the same database as tables and columns, even though you do not actually transform the database into this new form, it fits the relational paradigm. Now you can write a DSI implementation to create this view of the data and SimbaEngine X SDK can use the SQL Engine to execute SQL queries against it. In this way, any database you can represent as tables and columns can be accessed by SimbaEngine and made accessible to applications and reporting tools.
Relational applications, or applications that can access relational databases, cannot access the networked data store on the left, because it is not a relational database. Once you translate the data store to use tables and columns, as shown in the data store on the right, relational applications can use the SQL Engine to send SQL queries to it. Simba SQLEngine works with tabular database schema (but not non-tabular database schema).
It might be tempting to create a tabular view of your data store by reading the entire database into temporary tables, and accessing these tables through the DSI. However, this is inefficient and only works for very small databases. A more efficient method is to create virtual tables and then access the original database when the SimbaEngine X SDK requests data through the DSI.