База знаний предприятий

Общее описание.


Серверная часть программы, реализованная средствами сервера InterBase, состоит из 8 таблиц, 26 хранимых процедур, 8 генераторов.

Данные хранятся в таблицах в несортированном виде. Имеются следующие таблицы:

­          Таблица предприятий;

­          Таблица экономических показателей предприятия;

­          Таблица показателей материальной базы предприятия;

­          Таблица режимов предприятия;

­          Таблица архива заказов предприятия;

­          Таблица изделий;

­          Таблица размеров изделий;

­          Таблица заказчиков.

Количество таблиц и поля в них соответствуют разработанной модели знаний.

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

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



Реализованы следующие хранимые процедуры:

­          CHECK_FOR_FULL_ENTR – проверка на полноту таблиц, связанных с таблицей предприятий;

­          CHECK_FOR_FULL_IZD – проверка на полноту таблиц, связанных с таблицей изделий;

­          P_ARCHIVE_DELETE – удаление записей из таблицы «Архив заказов»;

­          P_ARCHIVE_INSERT – добавление записей в таблицу «Архив заказов»;

­          P_ARCHIVE_MODIFY – изменение записей в таблице «Архив заказов»;


­          P_ECPARAMS_DELETE – удаление записей из таблицы «Экономические показатели»;

­          P_ECPARAMS_INSERT – добавление записей в таблицу «Экономические показатели»;

­          P_ECPARAMS_MODIFY – изменение записей в таблице «Экономические показатели»;

­          P_ENTR_DELETE – удаление записей из таблицы «Предприятия»;

­          P_ENTR_INSERT – добавление записей в таблицу «Предприятия»;

­          P_ENTR_MODIFY – изменение записей в таблице «Предприятия»;

­          P_IZDELIE_DELETE – удаление записей из таблицы «Изделия»;

­          P_IZDELIE_INSERT – добавление записей в таблицу «Изделия»;

­          P_IZDELIE_MODIFY – изменение записей в таблице «Изделия»;

­          P_MATBASE_DELETE – удаление записей из таблицы «Материальная база»;

­          P_MATBASE_INSERT – добавление записей в таблицу «Материальная база»;

­          P_MATBASE_MODIFY – изменение записей в таблице «Материальная база»;

­          P_SECURITY_DELETE – удаление записей из таблицы «Режимы предприятия»;

­          P_SECURITY_INSERT – добавление записей в таблицу «Режимы предприятия»;

­          P_SECURITY_MODIFY – изменение записей в таблице «Режимы предприятия»;

­          P_SIZES_DELETE – удаление записей из таблицы «Размеры изделия»;



­          P_SIZES_INSERT – добавление записей в таблицу «Размеры изделия»;

­          P_SIZES_MODIFY – изменение записей в таблице «Размеры изделия»;

­          P_ZAKAZCHIK_DELETE – удаление записей из таблицы «Заказчики»;

­          P_ZAKAZCHIK_INSERT – добавление записей в таблицу «Заказчики»;

­          P_ZAKAZCHIK_MODIFY – изменение записей в таблице «Заказчики»;

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

При удалении записи происходит автоматическая проверка на наличие связанных с ней записей и их удаление в подчинённых таблицах.

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

Определим типы и размеры полей в таблицах:

Предприятия:

­          EntKey – INTEGER (4 байта);

­          Name – VARCHAR (60 байт);

­          Address – VARCHAR строка (60 байт);

­          Phone – VARCHAR строка (30 байт);

­          Comment – VARCHAR (300 байт).

Таким образом, объём одной записи равен 454 байта.

Экономические показатели:



­          Number – INTEGER (4 байта);

­          Value1 и Value2 – VARCHAR (30 байт);

­          Comment – VARCHAR (300 байт);

­          EntKey – INTEGER (4 байта).

Объём одной записи равен 368 байт.

Материальная база:

­          Number – INTEGER (4 байта);

­          Value1 и Value2 – VARCHAR (30 байт);

­          Comment – VARCHAR (300 байт);

­          EntKey – INTEGER (4 байта).

Объём одной записи равен 368 байт.

Режимы предприятия:

­          SecKey – INTEGER (4 байта);

­          Name – VARCHAR (20 байт);

­          Comment – VARCHAR (300 байт);

­          EntKey – INTEGER (4 байта).

Объём одной записи равен 328 байт.

Архив:

­          Number – INTEGER (4 байта);

­          IzdName – VARCHAR строка (60 байт);

­          KolZak – INTEGER (4 байта);

­          Comment – VARCHAR (300 байт);

­          EntKey – INTEGER (4 байта).

Объём одной записи равен 372 байта.

Изделие:

­          IzdKey – INTEGER (4 байта);

­          Name – VARCHAR (40 байт);

­          Vid_Sb – VARCHAR (30 байт);



­          EntKey – INTEGER (4 байта);

­          IsgDate – TIMESTAMP (8 байт);

­          KolZak – INTEGER (4 байта).

Объём одной записи равен 90 байт.

Размеры:

­          SizeKey – INTEGER (4 байта);

­          Name – VARCHAR (30 байт);

­          Description – VARCHAR (300 байт);

­          IzdKey – INTEGER (4 байта).

Объём одной записи равен 338 байт.

Заказчик:

­          EntKey – INTEGER (4 байта);

­          Name – VARCHAR (60 байт);

­          Address – VARCHAR (60 байт);

­          Phone – VARCHAR (30 байт);

­          Comment – VARCHAR (300 байт);

­          IzdKey – INTEGER (4 байта).

Объём одной записи равен 458 байт.

Видно, что при выбранных размерах полей объём ни одной записи не превышает 1 килобайта, что соответствует требованиям технического задания.

При заданном в техническом задании максимальном количестве записей 10000 штук в таблице максимальный объём данных равен:

(454+368+368+328+372+90+338+458)*10000 = 27760000 байт = 26.47 Мбайт

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

Также сервер InterBase предоставляет такие средства администрирования, как механизм управления пользовательскими полномочиями, средства резервного копирования, «сборки мусора» и т. д.


Содержание раздела