Scientific journal
International Journal of Experimental Education
ISSN 2618–7159
ИФ РИНЦ = 0,425

EXAMPLE OF DEVELOPMENT OF DATABASES BY MEANS OF VISUAL PROLOG

Akimova I.V. 1 Stenechkin E.S. 1
1 Penza State University
In this article it reveals the possibilities of creation of relational databases by means of the logical Visual Prolog programming language. Basic elements of management, feature from creation in the chosen programming environment are described. It gives the example is developed the educational dynamic database containing data on students of higher education institution.
database
logical programming language
Visual Prolog.

В каждом современном предприятии сотрудники ежедневно работают с информацией. В зависимости от должностных обязанностей характер и объем информации может быть разным. В независимости от решаемых задач, неизменным является потребность оперативного сохранения информации. Информация, помещенная в структурированное хранилище, становится частью базы данных.

Компьютерные базы данных повышают эффективность работы с информацией, используемой сотрудниками, на всех уровнях организации. Поэтому нашей задачей стала разработка базы данных средствами современной среды программирования.

Наша разработка посвящена проектированию структуры и реализации базы данных, содержащей сведения о студентах, в среде программирования Visual Prolog. Разработанная СУБД достаточно функциональная и может быть использована при хранении сведений о фамилиях студентов, группах, в которых они обучаются, результатов прохождения трех контрольных точек по одному из предметов.

В системе Visual Prolog создается проект, в состав которого входят окна, элементы управления, объявления доменов и предикатов. При создании приложений предикаты бывают двух видов: обработчики событий – их согласование вызывается операционной системой при наступлении определенных событий, и «обычные» предикаты, согласование которых вызывает в программе программист.

В Visual Prolog элемент управления (ЭУ) – это дочернее окно, которое не имеет собственных обработчиков события. Предназначение ЭУ заключается в том, чтобы послать родительскому окну сообщение о событии.

Все действия с ЭУ осуществляется посредством согласования предикатов, первый аргумент которых должен быть связан с дескриптором ЭУ.

Дескриптор ЭУ можно получить согласованием предиката win_GetCtlHandle:

ДескрипторЭУ = win_GetCtlHandle (Дескриптор _Родительского _Окна, ИдентификаторЭУ)

при этом идентификатор ЭУ объявляется в поле Constant окна атрибутов ЭУ в процессе вставки в окно этого элемента управления.

В Visual Prolog имеются специальные средства для организации реляционных баз данных. Предикаты баз данных описываются в разделе facts, который должен располагаться в программе перед разделом predicates. Все утверждения с предикатами, описанными в разделе facts, составляют динамическую БД, которая, в отличие от неизменяемой статической БД, являющейся частью кода программы, в процессе программы может меняться, то есть из неё можно удалять любые содержащиеся в ней утверждения, а так же добавлять новые.

Динамическая база данных располагается в оперативной памяти (резидентная БД).

Например, в динамической БД содержатся сведения о студентах ВУЗа с предикатом stud, тогда требуется следующее описание:

facts

dstud(name, group),

где name, group – типы данных, описанные domains.

Разработанное приложение имеет следующий вид (рис. 1).

Для хранения сведений о студентах в программе используются два динамических предиката:

facts – students

stud(symbol,symbol,symbol)

facts – sved

sved(symbol,symbol,symbol,symbol)

Ниже представлено проектирование будущей базы на логическом и физическом уровне (рис. 2, 3).

Их базы данных сохраняются в два файла: baza и baz1. Их структура представлена на рисунке 4.

В приложении реализованы следующие функции:

• Ввод данных о студенте (номер зачетной книжки, фамилия, группа);

• Удаление данных о студенте;

• Удаление данных о группе студентов;

• Вывод данных;

• Вывод данных о студентах определенной группы;

• Заполнение сведений о студентах: баллы за три контрольные точки;

• Подведение итогов: преодолел студент или нет контрольный рубеж (60 баллов).

Рассмотрим реализацию одной из функций более подробно, например: Ввод данных о студенте (номер зачетной книжки, фамилия, группа) (рис. 5).

После ввода данных о студентах нажимается кнопка «ввод данных», с которой связан обработчик следующего события.

%BEGIN win1, idc_ввод_данных _CtlInfo

win_win1_eh(_Win,e_Control(idc_ввод_данных,_CtrlType,_CtrlWin,_CtlInfo),0):-!,

WH = win_GetCtlHandle(_Win, idc_fio),

F = win_GetText(WH),

WH1 = win_GetCtlHandle(_Win, idc_gr),

G = win_GetText(WH1),

WH2 = win_GetCtlHandle(_Win, idc_z),

Z = win_GetText(WH2),

not(stud(Z,_,_)), asserta(stud(Z,F,G)),  !.

В правиле заложена проверка, не позволяющая вводить в базу студентов с одинаковым номером зачетной книжки.

Таким образом, данная программа может быть использована и для демонстрации возможностей баз данных в учебном процессе, и, при дальнейшей доработке, в научных исследованиях в области искусственного интеллекта.

482008.jpg

Рис. 1. Окно приложения

482033.jpg

Рис. 2. Проектирование базы данных на логическом уровне

482059.jpg

Рис. 3. Проектирование базы данных на физическом уровне

482084.jpg

482128.jpg

Рис. 4. Структура фалов с данными

482110.jpg

Рис. 5. Ввод данных