Basic concepts and terminology
Here we clarify our use of some terms which we use often.
Connection
A Connection is an object which contains:
-Complete information to connect to a given DBMS,
-Information about user preferences on the SQL created to work against the DBMS.
Once created, a connection is stored in a file and can be used anytime later. It makes connecting to a
DBMS fast and reliable.
Data Source
The above term is sometimes used by other programs to denote a DBMS. However, within DataTime the
term "Data Source" is used with a different and precise meaning.
A Data Source is an object which stores information needed to obtain
a bag of records. Once created, the Data Source is stored in a file containing the following
information:
- A Connection (as explained above)
- Information on how to extract some data from a DBMS (extraction rules). This include
SQL and possibly source code for on-fly record transformation.
- Design information, to be able to open and re-design at any time the Data Source.
A Data Source can be parametric, so that the
user can supply parameters which change the subset of records which will be extracted.
The file can be reopened and changed at will anytime.
Note that a Data Source represents
a bag of records, but it never contains the actual records. It only contains all the possible
information to get and possibly transform them.
Report
A report is a "container" document which will hold several types of objects, such
as ReportGrids, Charts, Gauges, TextBoxes, etc. The most complex objects are the ReportGrids. Each
ReportGrid is a representation of a Data Source made according to aggregation rules
and layout specifications provided by the user, through the report designer. Each
ReportGrid is fed up by a Data Source.
To "regenerate" a ReportGrid means: 1. connecting
to the DBMS specified in the Data Source, 2. running the "extraction rules" (query, sql script, etc) provided by the
user, 3. Applying possible programmatic on-fly transformations, 4. aggregating
the data according to the dimensions and measures specified by the user, 5. to display
the result according to the user layout. The report regeneration can be scheduled.
"Linked" Chart
Linked Chart (or linked "Multichart") is a chart which is "linked" to a ReportGrid,
in the sense that, when the ReportGrid is regenerated, the chart is also automatically
updated. We call our chart also "Multichart" because it stores information about a number of different charts. The
user can switch anytime from a type to another and, for each chart type, all the
information is being maintained.
Gauge
A Gauge is a chart type which can contain multiple meter scale. Each scale can be
linked to a cell of a ReportGrid and the scale indicator is automatically updated
when the cell value change. A single Gauge can also be connected to several ReportGrids,
because the connection is actually between scale and cell and it is irrelevant where
the cell is. If due to drill/roll up a cell disappears, the scale or the gauge itself
can be programmed to disappear. It is also called "Multigauge", for the same reason
as the multichart.
Load Task
This is an "integration task". You have several Data Sources which can point
to different DBMSes. A load task is formed by:
- A Target Connection (pointing to the DBMS where you wish to move the data),
- A set of Data Sources (data extracted from multiple DBMSs and "joined" into a
table on the Target DBMS),
- Design Information to be able to re-design at any time the integration rules.
The Load Task can be "designed" pretty much like a Data Source. The difference is
that, while in the Data Source the objects which are joined are local object of a DBMS, in the load task the objects used in the designer are remote Data Sources (each one possibly pointing to a different DBMS). The load task will take care of
uploading the necessary data to the target DBMS, mapping appropriately the field
data type (possibly with your manual intervention), and making a join to create the target table. This kind of task
is schedulable and, once tested, can run in unattended mode..
This might be useful, for instance, to create a "cube" used for reporting. Infact,
you can create a Data Source pointing to the new cube and work on preaggregated data,
for quicker responses.
This way, you can enjoy the power DataTime engine, which is essentially based on
a ROLAP concept, on a hierarchical preaggregated Olap cube, thus enjoying high speed
performances.