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


Логические блокировки - часть 2


Для проверки того, что свойства вставляемого узла не конфликтуют со свойствами L-блокировки, установленной другой транзакцией, в IN-блокировке необходимо указать три свойства вставляемого узла: new-node-parent-name, new-node-name, new-node-value. L- и IN-блокировки не совместимы в каждом из следующих случаев:

  1. new-node-name IN-блокировки равно node-name L-блокировки, и при этом L блокировка не содержит других свойств (случай (1)).
  2. свойства new-node-name и new-node-value IN-блокировки соответствуют значениям свойств L-блокировки (которых должно быть два); иными словами, node-name=new-node-name и new-node-value relop 'val1' ≠ #f (случай (2)).
  3. все три свойства IN-блокировки соответствуют трем свойствам L-блокировки; иными словами, node-name=new-node-parent-name, child-name=new-node-name и new-node-value relop 'val1' ≠ #f (случай (3)).

Заметим, что если в L-блокировке вместо имени узла указано '*', то это имя узла считается соответствующим произвольному имени.




- Начало -  - Назад -  - Вперед -