Состояние базы данных
Понятие "состояние базы данных" характеризует логическую целостность и согласованность данных в полном множестве объектов данных и их значений, образующих базу данных. Номинально, и в отсутствие внешних воздействий база данных бесконечно долго сохраняет неизменным свое текущее согласованное состояние. Любое внешнее транзакционное воздействие логически одномоментно переводит базу данных в новое согласованное состояние, но пока процессы внесения изменений не завершены и не зафиксированы, физические состояние базы данных считается неопределенным.
В условиях асинхронного многопользовательского доступа к объектам и значениям с целью их выборки или модификации, для сохранения целостности и согласованности данных необходимо соблюдать определенные правила работы с состояниями:
1) Любое внешнее воздействие, потенциально способное изменить данные в базе, следует рассматривать как транзакцию. Правило "транзакционной целостности" гласит, что независимо от общего количества изменений, вносимых транзакцией в полное множество объектов и значений, база данных перейдет в новое завершенное состояние только в том случае, если все изменения были сделаны в полном объеме. Иначе, база данных сохранит неизменным свое предыдущее состояние, а транзакция будет считается аннулированной.
2) Любое действие пользователя по извлечению объектов данных и их значений, не изменяющее состояние базы данных, считается обычной выборкой данных. Для формирования корректной выборки тоже должно соблюдаться правило, но уже "состоятельной целостности". Это правило гласит, что на всем протяжении выборки, независимо от ее объема и продолжительности, база данных предоставляет для выборки то свое состояние, при котором выборка была начата.
Соблюдение этих двух правил автоматически обеспечивается средой исполнения, которая для этих целей использует специальный механизм управления состояниями, основанный на использовании сессий — транзакционных, и сессий выборки. Более развернуто эта тема освещена здесь.