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