Архив категории ‘Prolog’

Изменение структуры базы данных

    На этом шаге мы рассмотрим изменение структуры базы данных.     Одним из способов изменения структуры базы данных является копирование старой базы данных в новую с внесением изменений. Другой путь заключается в том, чтобы выгрузить базу данных в текстовый файл, внести изменения с помощью редакта текста, а затем считать (загрузить) обратно в обновленном виде.     […]

Использование внутреннего указателя B+ дерева

    На этом шаге мы рассмотрим использование внутреннего указателя B+ дерева.     Каждое открытое В+ дерево имеет указатель на свои узлы. В момент открытия или обновления В+ дерева указатель помещается перед началом дерева. Если вы обращаетесь к предикату key_next, имея указатель на последнем ключе, он будет помещен за пределами дерева. Всегда, когда указатель перемещается за […]

Обновление базы данных

    На этом шаге мы рассмотрим обновление базы данных.     Основной принцип обновления базы данных таков: рекомендуется сосредоточить обновление базы в нескольких определенных вами предикатах. Это облегчает изменение базы данных и/или добавление новых В+ деревьев, а также способствует созданию корректных систем баз данных, т. к. ваша программа будет содержать лишь маленький участок, во время исполнения […]

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

    На этом шаге мы рассмотрим создание защищенной базы данных.     Если вы вводите много новой информации в базу данных, то важно удостовериться, что она не будет утеряна при возможной аварии в системе. Покажем, как это сделать, путем ведения журнала изменений в другом файле.     Внесение изменений включает обновление базы данных и заполнение ее. Если […]

Вывод содержания базы данных

    На этом шаге мы рассмотрим вывод содержания базы данных.     Вы можете использовать предикат list_dba, определенный ниже, для вывода текущего состояния базы данных. Он имеет один аргумент - селектор просматриваемой открытой базы данных. Все термы в базе данных должны быть одного домена. constants filename="\\vip\\vpi\\programs\\register\\exe\\register.bin" domains db_selector=mydba mydom=city(zipcode,cityname); person(firstname,lastname,street,zipcode,code) zipcode,cityname,firstname,lastname,street,code=string predicates listdba(db_selector) nondeterm bt_keys(db_selector,bt_selector,string,ref) nondeterm […]

Программирование внешних баз данных

    На этом шаге мы рассмотрим программирование внешних баз данных.     Рассмотрим некоторые общие принципы и методы работы с системой внешних баз данных Visual Prolog. Просмотр базы данных - показывает способ последовательного просмотра цепочек или В+ деревьев во внешней базе данных. Вывод содержимого базы данных - определяет предикат, который вы можете использовать для вывода содержимого […]

Стандартные предикаты для В+ деревьев

    На этом шаге мы рассмотрим стандартные предикаты для В+ деревьев. Предикаты bt_create/5 и bt_create/6     Новое В+ дерево создается с помощью предиката bt_create: bt_create(Dbase,BtreeName,Btree_Sel,KeyLen,Order) % (i,i,o,i,i) bt_create(Dbase,BtreeName,Btree_Sel,KeyLen,Order,Duplicate) % (i,i,o,i,i,i)     Аргумент BtreeName определяет имя нового дерева. Это имя используется в дальнейшем в качестве аргумента для bt_open. Аргументы KeyLen и Order задаются в момент создания […]

B+ деревья

    На этом шаге мы рассмотрим B+ деревья .     B+ дерево является структурой данных, которую можно применять для очень эффектного метода сортировки большого количества данных; В+ деревья дают возможность использовать эффективный алгоритм поиска и аналогичны указателям базы данных (В+ деревья иногда сравнивают с указателями).     В Visual Prolog B+ деревья находятся во внешней базе […]

Обработка термов

    На этом шаге мы рассмотрим обработку термов.     Имеется три предиката работы с базами данных, обрабатывающих термы: 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)     Здесь нет […]

Обработка баз данных

    На этом шаге мы рассмотрим обработку баз данных.     Когда вы создаете новую внешнюю базу данных или открываете существующую, можно поместить ее в файл или в оперативную память, в зависимости от значения аргумента place при обращении к db_create или db_open. По окончании работы с внешней базой данных она закрывается с помощью вызова db_close.     […]