Finally, it is important to consider the data-posting model when choosing a data storage and access method. Data posting is the manner in which data is placed into the database by a data source. From the point of view of a database, the data source is any task that writes data into the database. This task may itself be a consumer of data from another source, such as a PLC, and may modify the organization of the data to suit the database prior to posting it. The data-posting model can be characterized in two ways:
Bulk data. A bulk data source generates simultaneous information for many data values at once. These are typically the result of scanning a field I/O device such as a PLC, DCS or direct I/O card. Data from a bulk data source are generated periodically, typically at the scan rate of the I/O hardware. Data that is posted in bulk can be delivered to a client in bulk. The database implementation will determine the type of notification the client will get, if any.
Point data. A point data source generates individual data changes randomly distributed in time. This is typical of a production rule engine, user interface task or some types of field I/O devices such as bar code readers. Data from a point data source is generally transmitted to the database as soon as, and only if, a change occurs, without attempting to amalgamate many changes into a single event. Point data cannot in general be delivered in bulk, since potentially long latencies could be generated by the database while waiting for enough data to change to satisfy a bulk transaction. If the database offers notification to its clients, it should generate a notification for every data change to avoid long latencies.
A bulk data source can be made to perform as a point data source by having the data source generate individual data change events for all modified data. If the number of changing values is small per scan period then this approach is reasonable. In typical control applications most data values correspond to binary values that change infrequently. Sending more than one value change per message can further mitigate message passing overhead where possible.
A point data source cannot in general be made to act as a bulk data source, beyond the trivial case of treating each value change as a bulk data change containing a single value.