На этом шаге мы рассмотрим создание защищенной базы данных.
Если вы вводите много новой информации в базу данных, то важно удостовериться, что она не будет утеряна при возможной аварии в системе. Покажем, как это сделать, путем ведения журнала изменений в другом файле.
Внесение изменений включает обновление базы данных и заполнение ее. Если операция завершится успешно, система сама записывает изменения в журнал изменений. Это значит, что в каждый момент времени лишь один файл является недописанным на диске. Если файл с базой данных становится непригодным (например из-за аварии в системе перед его заполнением), вы можете реставрировать его, пользуя журнал изменений и дубликат исходной базы данных. Если же файл изменений становится непригодным, то придется создать новый дубликат базы данных и новый файл изменений.
Если вы записываете дату и время и файле изменений имеете со старыми величинами данных, подвергшимися изменению или удалению, то привести базу даннных к тому состоянию, в котором она была в определенный момент времени, достаточно просто.
domains logdom=insert(relation,dbdom,ref); replace(relation,dbdom,ref,dbdom); erase(relation,ref,dbdom) predicates logdbchange(logdom) clauses logdbchange(Logterm):- chain_insertz(logdba,logchain,logdom,Logterm,_), db_flush(logdba).
На следующем шаге мы рассмотрим обновление базы данных.