На этом шаге мы рассмотрим изменение структуры базы данных. Одним из способов изменения структуры базы данных является копирование старой базы данных в новую с внесением изменений. Другой путь заключается в том, чтобы выгрузить базу данных в текстовый файл, внести изменения с помощью редакта текста, а затем считать (загрузить) обратно в обновленном виде. […]
Архив категории ‘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. […]