So database systems, since they run critical applications such as telecommunications and banking systems, have to have guarantees that the data managed by the system will stay in a consistent state, it won't be lost or overwritten when there are failures, and there can be hardware failures.