Software Design - Data Consistency

1 - About

In its most basic form, consistency refers to data values in one data set being consistent with values in another data set.

When all applications or thread, see the same data the system is in a consistent state.

A strict definition of consistency specifies that two data values drawn from separate data sets must not conflict with each other, although consistency does not necessarily imply correctness.

Even more complicated is the notion of consistency with a set of predefined constraints. More formal consistency constraints can be encapsulated as a set of rules that specify consistency relationships between values of attributes, either across a record or message, or along all values of a single attribute.

However, be careful not to confuse consistency with accuracy or correctness.

Other definitions, context:

  • From an algorithm perspective, consistency means that a function always produces the same result for a given input value.
  • Consistency is also known as deterministic in mathematical terms
  • In the context of databases (“transactional databases”), consistency is enforced through transactions that must preserve the integrity constraints (the declared consistency rules) of the database.

Consistency means that after you do a successful write, future reads will always take that write into account. Otherwise, you may have an eventual consistency.

3 - Eventual

4 - Implementation

4.1 - Database

Oracle Database for instance maintains data consistency by using:

4.2 - ETL

The best way to ensure consistency is to publish the data once. Storing calculated fact ensures that all users and reporting applications refer to it consistently. A single publishing run also reduces the extract tansformation load (ETL) development effort. as well the ongoing data management and disk storage burden.

5 - Example

An example of a consistency rule verifies that within a corporate hierarchy structure, the sum of the number of employees at each site should not exceed the number of employees for the entire corporation

6 - Consistency Context

Consistency may be defined within different contexts:

  • Between one set of attribute values and another attribute set within the same record (record-level consistency)
  • Between one set of attribute values and another attribute set in different records (cross-record consistency)
  • Between one set of attribute values and the same attribute set within the same record at different points in time (temporal consistency)
  • Consistency may also take into account the concept of reasonableness, in which some range of acceptability is imposed on the values of a set of attributes.
  • Bookmark "Software Design - Data Consistency" at del.icio.us
  • Bookmark "Software Design - Data Consistency" at Digg
  • Bookmark "Software Design - Data Consistency" at Ask
  • Bookmark "Software Design - Data Consistency" at Google
  • Bookmark "Software Design - Data Consistency" at StumbleUpon
  • Bookmark "Software Design - Data Consistency" at Technorati
  • Bookmark "Software Design - Data Consistency" at Live Bookmarks
  • Bookmark "Software Design - Data Consistency" at Yahoo! Myweb
  • Bookmark "Software Design - Data Consistency" at Facebook
  • Bookmark "Software Design - Data Consistency" at Yahoo! Bookmarks
  • Bookmark "Software Design - Data Consistency" at Twitter
  • Bookmark "Software Design - Data Consistency" at myAOL
design/consistency.txt · Last modified: 2017/01/20 21:16 by gerardnico