Инвариант |
Возможные нарушения после вставки |
Метод коррекции нарушения |
(i) |
t ссылается на несуществующий кортеж в некотором caR-отношении R' |
вставить в R' кортеж с соответствующими значениями ключа и значениями "пусто" там, где это уместно |
(i) |
(обновление ключевого домена) кортеж в некотором paR-отношении ссылается на несуществующий R-кортеж |
модифицировать кортеж так, чтобы он ссылался на t |
(ii) |
нет |
|
(iii) |
t не имеет образа предка в некотором pgR-отношении R' |
модифицировать старый образ предка t так, чтобы он стал (новым) образом предка |
(iii) |
кортеж в некотором cgR-отношении R' не имеет образа предка в R |
если модифицируется домен образов для R', то удалить этот кортеж, иначе модифицировать этот кортеж так, чтобы t стал его образом предка |
(iv) |
t не имеет требуемого образа потомка в некотором cgR-отношении R' |
если изменяется домен образов для R', то вставить образ потомка в R' (используя "пусто" там, где неизвестны значения), иначе модифицировать старый образ потомка t в R' так, чтобы он стал (новым) образом потомка t |
(iv) |
Кортеж в некотором pgR-отношении не имеет требуемого образа потомка в R |
модифицировать кортеж так, чтобы t стал его образом потомка |
(v) |
нет |