На этом шаге мы рассмотрим обработку термов.
Имеется три предиката работы с базами данных, обрабатывающих термы: place, term_delete и ref_term. При обращении к любому из этих предикатов небоходимо объявить домен терма в качестве аргумента. Удобно объявить все термы данной базы как альтернативы одного домена, например:
domains terms_for_my_stock_control_database= customer(Customer,Name,ZipCode,Address); supplier(SupplierNo,Name,Address); parts(PartNo,Description,Price,SupplierNo)
Здесь нет ограничений на смешивание доменов во внешней базе данных. Одна цепочка может содержать текстовые строки, другая - целые числа, а третья составные и т. д. Однако элементы внешней базы данных не запоминаются вместе с описанием домена, например, целые не обязательно занимают именно два байта. Это ваше дело выбирать из базы данных терм в тот домен, из которого он был записан в базу. Если вы перепутали домены, обычно происходит ошибка при исполнении.
Предикат term_replace заменяет терм (с указателем базы данных Ref) на новый терм с именем Term.
term_replace(Dbase,Domain,Ref,Term) % (i,i,i,i)
Предикат term_delete удаляет терм с указателем Ref.
term_delete(Dbase,Domain,Ref)
Память, занятая термом, будет высвобождена, и в дальнейшем нельзя допускай, ссылки на Ref.
Предикат ref_term связывает Term с термом, который помещен под данным указателем Ref:
ref_term(Dbase,Domain,Ref,Term) % (i,i,i,o)
На следующем шаге мы рассмотрим B+ деревья.