Классика баз данных - статьи

       

В традиционной системе управления базами


В традиционной системе управления базами данных наличие блокировок само собой разумеется; в отважном новом мире, обсуждаемом в этой статье, блокировки необязательны, и можно использовать различные компоненты для обеспечения разных уровней параллелизма.

Транзакции обеспечивают иллюзию того, что набор операций применяется к базе данных в виде некоторого атомарного блока, и что результаты этих операций будут сохранены в базе данных, несмотря на сбой приложения или системы. Управление транзакциями лежит в основе большинства систем управления базами данных, хотя для многих приложений транзакции не требуются. В мире, основанном на компонентах, и транзакции должны стать необязательными. Для удовлетворения потенциальной потребности в поддержке транзакций в системе должен иметься ряд различных компонентов, обеспечивающих базисные транзакционные механизмы; точки сохранения (возможность указать точку во времени, к которой можно откатить базу данных); двухфазную фиксацию для поддержки транзакций, охватывающих несколько баз данных; вложенные транзакции для декомпозиции крупной операции в набор более мелких операций; компенсирующие транзакции для аннулирования результатов высокоуровневых логических операций.

Во многих транзакционных системах используется какая-либо разновидность журнализации для обеспечения возможностей отката и восстановления. В этом контексте едва ли кажется необходимым представлять журнализацию как отдельный компонент, но это все-таки требуется. Компонент управления транзакциями может быть сконструирован в расчете на работу в нескольких реализациях, в некоторых из которых журнализация не используется (например, вместо нее применяется механизм теневых страниц). Возможно, еще более интересно то, что система журнализации может оказаться полезной вне контекста транзакций; она может использоваться для аудита или обеспечения некоторой разновидности резервного копирования. В любом случае принимать решение о том, требуется ли в данном приложении журнализация, должен разработчик приложения, а не поставщик базы данных.


Содержание  Назад  Вперед