ПредишенСледващото

Знайте, Intuit, лекция, вътрешен (динамичен) база данни

В тази глава, ние ще започнем да се научат да работят с бази данни в пролога.

От една страна, Prolog не -programs за нищо нарича бази от знания. Prolog лесно изпълнени релационни бази данни. най-често в наши дни. Всяка релационна база данни таблица може да бъде описан от съответния набор от факти, където всеки запис на таблицата източник съответства на един факт. Всяка област ще съвпадне с аргумента предикат, който реализира на масата. Много дистрибуции съдържат Prolog като пример, основната част на езика SQL. Можем да кажем, че структурата на релационна база данни е включена в структурата на програмите за Prolog.

От друга страна, Turbo Prolog. което ние все още се съсредоточи в нашата Разбира се, че има вградени инструменти за работа с два вида бази данни: вътрешни и външни. Вътрешен база данни наречен така, защото те се обработват единствено в паметта на компютъра, за разлика от външни бази данни. които могат да се обработват на диск или в паметта. От вътрешната база данни се намира в паметта на компютъра, разбира се, да се работи с тях много по-бързо, отколкото външен. От друга страна, капацитетът на основната памет обикновено е много по-малък от капацитета на външната памет. От това следва, че обемът на външната базата данни може да бъде значително по-голям от вътрешния база данни. И ако се предполага, че в основата може да бъде доста голяма, трябва да използвате името на външна база данни.

Изследване на външни бази данни извън обхвата на този курс.

В тази глава ние изучаваме вътрешната или, както ги наричат, динамичният базата данни.

Вътрешен база данни се състои от факти, които могат да бъдат динамично, по време на изпълнение, за да добавите към базата данни и да изтрие от нея, с изключение на файл, качване на фактите от файл в базата данни. Тези факти могат да използват само предикати са описани в раздел описание предикат база данни.

Ако частта, посветена предиката на база данни в програмата, е само един, а след това тя не може да бъде назован. В този случай, той автоматично получава името на стандартния dbasedom а. В случай, че има редица от първоначални данни описания на секции, само един от тях може да бъде анонимен. Всички останали трябва да имат уникално име, че след като базата данни за име и секцията тире е в списъка. Когато декларираната раздел, описващ предикати базата данни. съставител вътрешно декларира съответен домейн със същото име като това на участъка; Това позволява на специални предикати да се справят с фактите като термини.

Описание на бази данни предикати съвпада с тяхното описание в раздел предикати предикат описание. Въпреки това, тези предикати може да се използва и като вградени предикати параметри, които ще въведат по-късно. В допълнение, могат да се добавят факти за използване на тези предикати и отстранени по време на изпълнение.

Моля, имайте предвид, че въз основа на само на фактите, а не на правилата на извод може да съдържат данни, факти на базата данни, не могат да съдържат свободни променливи. Това е още една съществена разлика от класическия Prolog Turbo Prolog, който по време на програмата, можете да добавите и премахване не само на фактите, но и на правилата. Имайте предвид, че в Visual Prolog, която е наследник на Turbo Prolog предикати във вътрешния данни база данни описание раздел заглавие Word База данни заменя синоним на фактите. което допълнително подчертава, че само фактите, но не и на правилата могат да се съхраняват във вътрешна база данни.

Нека да се запознаят с интегрирани Turbo Prolog предикати, предназначени за работа с вътрешното си база данни. Всички разглеждани повече предикати могат да бъдат използвани в едно изпълнение с един или два аргументи. И краткия вариант аргумент се използва, ако не разполага с името на вътрешния база данни. Ако тя е наречена от основата, е необходимо да се използва два аргумента сказуемото. където вторият аргумент - име на базата данни.

Нека започнем с предикат, с които по време на програмата, можете да добавяте или премахвате факти за бази данни.

За да добавите факти във вътрешна база данни може да използва един от трите отстояват предикати. asserta или assertz. Разликата между тези предикати е, че asserta предикат добавя факта за други факти (до най-крайната база данни) и assertz предикат добавя други факти постфактум (в края на базата данни). отстояват предикат добавен за съвместимост с други версии на Пролог и действа точно по същия начин, както assertz. Първият параметър определя в тези предикати да бъдат добавени факта, като втори, по желание - вътрешен името на базата данни. към която се прибавя факта. Можем да кажем, че предикатите отстояват assertz и работа с набор от факти като опашка, а asserta предикат - като комин.

За да премахнете факти от базата данни са предикати се приберат и retractall. Предикатна прибиране премахва от вътрешната база данни от началото на първия факта, които могат да бъдат идентифицирани с първия си параметър. Втората опция параметър на предиката е вътрешният името на базата данни.

За да изтриете всички предикати, съответстващи на първия си аргумент е предикат retractall. За да премахнете всички доказателства за някаква вътрешна база данни трябва да се обадите на предиката. посочвайки го като първи параметър на анонимен променлива. Тъй като анонимен променлива съвпада с всеки обект, и retractall предикат премахва всички факти, които могат да бъдат идентифицирани с първия си аргумент, фактите ще бъдат изтрити от вътрешната база данни. Ако вторият аргумент на името на предикат, определен на база данни. фактите са отстранени от определената база данни. Ако не е посочен вторият аргумент, фактите са отстранени от един неназован база данни. Имайте предвид, че retractall предикат може да бъде заменен от комбинация от предикати се прибират и не успяват, както следва:

За да се запази динамичния базата данни на диска е освен сказуемото. Той го спасява в текстов файл с име, което бе посочен като първи параметър на предиката. Ако разполагате с допълнително Вторият параметър е пропуснат, има запазване на доказателства за единично неназован вътрешен база данни. Ако е било казано вътрешно име на база данни. във фактите на този конкретен файл база данни ще се съхраняват.

Факти, които са записани в текстов файл на диска могат да бъдат заредени в RAM консултирайте екип. Първият параметър посочва името на предикат текстовия файл, от който искате да заредите фактите. Ако вторият параметър е пропуснат, фактите ще бъдат заредени в един неназован вътрешен база данни. Ако не е посочен втората опция, фактите ще бъдат качени на вътрешния база данни. чието име е поставен във втория параметър на предиката. Предикатът няма да успее, ако файлът да се чете, не е достатъчно свободно място в паметта, или ако даден файл не е намерен на диска, или ако съдържа грешки (по-долу ще обясня малко повече какви са те).

Свързани статии

Подкрепете проекта - споделете линка, благодаря!