logo search
TurboProlog / Документация / TOM_1

Создание защищенной базы данных

Если вы вводите много новой информации в базу данных, то важно удос-

товериться, что она не утеряна при аварии системы. В этом разделе мы по-

кажем как это сделать путем ведения журнала изменений в другом файле.

Внесение изменений включает, сначала, обновление базы данных и, за-

тем, заполнение ее. Если эта операция завершится успешно, система сама

записывает изменения в журнал изменений. Это значит, что в каждый момент

времени лишь один файл является недописанным на диске. Если файл с базой

данных становится не пригодным (например из-за аварии системы перед за-

полнением ), вы можете реконструировать его используя журнал изменений и

дубликат исходной базы данных. Если файл изменений становится непригод-

ным, то вы можете создать новый дубликат базы данных и новый файл измене-

ний.

Если вы записываете число и время в файле изменений вместе со стары-

ми величинами данных, подвергшимися изменению или удалению, то можете ре-

конструировать базу данных к тому состоянию, в котором она была в опреде-

ленный момент времени.

/* Ведение журнала изменений базы данных */

/* Этот фрагмент работает с программой CH15EX05.PRO */

domains

logdon = insert(relation, dbdom, ref);

replace(relation, dbdom, ref, dbdom);

erase(relation, ref, dbdom);

predicates

logdbchange(logdom)

clauses

logdbchange(Logterm) :-

chain_insert(Logdba, Logchain, Logdom, Logterm, _),

db_flush(Logdba).