Crearea bazei de date dinamice

În Prologul, există fonduri speciale pentru organizarea bazelor de date interne și externe. Aceste instrumente sunt concepute pentru a lucra cu baze de date relaționale. subrutină Standardizarea intern a realizat automat eșantionate din faptele interne baza de date (dinamic) cu valorile dorite ale parametrilor cunoscuți și atribuie valori parametri incerte.

fapte secțiune a programului Visual Prolog este folosit pentru a descrie o bază de date predicat dinamic (intern). Baza de date se numește dinamica, în timpul programului din ea, puteți șterge orice fapte, precum și a adăuga informații noi. Aceasta este diferența de la bazele de date statice. în cazul în care faptele fac parte din cod de program și nu pot fi schimbate în timpul rulării.

Uneori este util să aibă o parte din informațiile de bază de date sub forma unei baze de date statice de fapte - aceste date sunt introduse într-o bază de date dinamică, imediat după activarea programului. În general, o bază de date predicate statice au un nume diferit, dar aceeași formă de reprezentare a datelor ca predicate de baze de date dinamice. Adăugarea unui d scrisoare de capital la numele unui predicat de baze de date statice - un mod comun de a distinge predicatele bazelor de date statice și dinamice.

Trebuie remarcat două limitări declarate în secțiunea fapte:

· Doar fapte pot fi conținute într-o bază de date dinamice Prolog;

· Baza de date fapte nu pot conține variabile libere.

Prezența mai multor secțiuni de fapte. apoi descrierea fiecărei fapte secțiune trebuie să precizeze în mod explicit numele său, cum ar fi fapte - mydatabase. În două secțiuni diferite fapte nu se pot utiliza aceleași nume predicat. De asemenea, nu se pot utiliza aceleași nume predicative în faptele și predicate secțiuni. Dacă numele bazei de date nu este specificat, atunci este atribuit un dbasedom nume implicit. Programul poate conține secțiuni anonime locale ale faptelor, în cazul în care constă dintr-un singur modul, care nu este declarată ca parte a proiectului. IDE-ul compilează fișierul program ca un singur modul de numai atunci când se utilizează utilitarul TestGoal. În caz contrar, secțiunea nedenumit a faptelor trebuie să fie declarate la nivel mondial, care este, ca fapte globale.

În Prolog, au predicate speciale construite pentru lucrul cu baze de date dinamice:

* Predicate afirma, asserta, assertz, - permit să aducă faptul la baza de date, și predicatele se retrag, retractall - scoateți-l dintr-un fapt existent.

Afirmați predicat intra intr-un nou fapt la baza de date într-un loc arbitrar, asserta predicat adaugă un fapt nou, înainte de toate faptele au introdus deja acest predicat, assertz adaugă un fapt nou, după toate faptele predicatului.

retract predicatului șterge din baza de date primul fapt, care este asociat cu un anumit fapt, predicat retractall elimină din baza de date toate faptele care sunt comparate cu faptul dat.

Salvați predicat scrie toate faptele de baze de date dinamice într-un fișier text de pe disc, un fapt este înscris în fiecare linie a fișierului. În cazul în care există deja un fișier cu numele dat, vechiul fișier va fi suprascrisă.

Predicatul consultă înregistrări într-o bază de date dinamică a faptelor, citit dintr-un fișier text, cu faptele din dosar sunt anexate la baza de date existentă. Faptele conținute în fișierul text trebuie să fie descris în secțiunea domenii.

Exemplul 55: Scrieți un program care generează o multitudine de numere binare 4 biți și le înregistrează într-o bază de date dinamică.

dbin (octet, octet, octet, octet)

bin (octet, octet, octet, octet)

bin (A, B, C, D): - cifra (A), cifra (B), cifra (C), cifra (D),

afirma (bin (A, B, C, D)).

articole similare