Концепция базы данных для системы электронного документооборота в Oracle Database | Статья в журнале «Молодой ученый»

Автор:

Рубрика: Информатика

Опубликовано в Молодой учёный №5 (139) февраль 2017 г.

Дата публикации: 06.02.2017

Статья просмотрена: 213 раз

Библиографическое описание:

Петухов Р. Н. Концепция базы данных для системы электронного документооборота в Oracle Database // Молодой ученый. — 2017. — №5. — С. 27-31. — URL https://moluch.ru/archive/139/39219/ (дата обращения: 25.05.2018).



Концепция базы данных для системы электронного документооборота вOracleDatabase

Петухов Роман Николаевич, магистрант

Пермский национальный исследовательский политехнический университет

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

Обобщенные требования к системам электронного документооборота:

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

 возможность перевода бумажных документов в электронный вид, потоковое сканирование, распознавание документов;

 обмен документами между территориально распределенными подразделениями;

 рубрикацию, категоризацию и классификацию документов;

 учет и обработку документов, находящихся на архивном хранении.

Одним из прикладных заданий в системе электронного документооборота, является оптимальное распределение документов в системе. Для начала была разработана логическая и физическая ER-модель базы данных. Для верного распределения документов необходим минимальный набор сущностей: Документ, Тип документа, Пункт маршрута, Действие, Пункт маршрута, История пути документа, Сотрудник, Должность, Подразделение (рис.1).

\2

Рис.1. Логическая ER-модель базы данных

Физическая модель описывает реализацию логической базы данных на уровне объектов конкретной базы данных, задается тип переменных (рис.2).

Рис. 2. Физическая ER-модель базы данных

Задачей базы данных будет заполнение таблицы HISTORY и построение пути документа с учетом типов документов и загруженности сотрудников.

Алгоритм заполнения таблицы:

1) Определение статуса документа, завершен документ или нет.

2) Определение последней дату работы с документом.

3) Проверка количества документов у сотрудников.

4) Фиксация последней даты изменения документа (из истории) или даты его создания.

5) Проверка статуса документа на текущую дату.

6) Определение маршрута документа в соответствии с типом документа

7) Поиск должности в соответствии с маршрутом документа

8) Определение количества документов у сотрудников.

9) Выбор сотрудника с наименьшим количеством документов.

10) Формирование записи в истории.

11) Запись статуса документу.

Процедура заполнения таблицы будет проводится путем создания запроса на языке PL/SQL.

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

Далее представлены основные элементы процедуры на языке PL/SQL.

Задание переменных и курсоров:

k integer:=1;

cod_doc integer;

cod_tip_doc integer;

cod_dolg integer;

cod_sotr integer:=0;

kolich_doc integer:=1000;

sotr_dlya_otpr integer;

data1 date;

max_punkt_save integer;

bool BOOLEAN:=false.

Определение статуса документа реализовано путем перебора пунктов маршрута, если пункт маршрута максимальный, то документ завершен, в противном случае документ в работе:

CURSOR max_punkt IS

select max (COD_PUNKTA_MARCHR) as ma from PUNKT_MARCHRUTA

where COD_TIPA_DOCUMENTA=cod_tip_doc;

c_max_punkt max_punkt %rowtype;

Определение последней даты работы с документом путем сортировки документов по дате получения:

CURSOR histor_date IS

select max(DATA_VREMYA_OTPRAV) as maxy from HISTORY

WHERE COD_DOCUMENTA=cod_doc

order by DATA_VREMYA_OTPRAV desc, DATE_VREMYA_POLUCH desc;

c_histor_date histor_date %rowtype;

Определение маршрута документа в соответствии с его типом:

cod_dolg:=c_punkt.COD_DOLZGNOST;

for c_sotr in sotr loop

cod_sotr:=c_sotr.COD_SOTRUDNIKA;

Выбор наименее загруженного сотрудника:

for c_histor in histor loop

if(kolich_doc >= c_histor.kolich)

then

sotr_dlya_otpr:=c_sotr.COD_SOTRUDNIKA;

kolich_doc:=c_histor.kolich;

Формирование записи в истории:

if(((c_punkt.VREMYA_NA_VIPOLN)+data1) <= SYSDATE)

insert into HISTORY (COD_HISTORY, COD_PUNKTA_MARCHR, DATE_VREMYA_POLUCH, COD_SOTRUDNIKA, COD_DOCUMENTA, DATA_VREMYA_OTPRAV)

VALUES (k, c_punkt.COD_PUNKTA_MARCHR, data1, sotr_dlya_otpr, c_docum.COD_DOCUMENTA, (data1+c_punkt.VREMYA_NA_VIPOLN));

data1:=data1+c_punkt.VREMYA_NA_VIPOLN;

k:=k+1;

kolich_doc:=1000;

max_punkt_save:=c_punkt.COD_PUNKTA_MARCHR;

else

bool:=true;

kolich_doc:=1000;

insert into HISTORY (COD_HISTORY, COD_PUNKTA_MARCHR, DATE_VREMYA_POLUCH, COD_SOTRUDNIKA, COD_DOCUMENTA)

VALUES (k, c_punkt.COD_PUNKTA_MARCHR, data1, sotr_dlya_otpr, c_docum.COD_DOCUMENTA);

k:=k+1;

Процедура распределения документов проводит следующие действия с документом. После появления документа в системе прокладывается ветка маршрута для этого документа, начиная с первого этапа, программа анализирует сотрудников, которые нужны на данном этапе, и тот, у кого на руках меньше всего документов получает этот документ. По истечении времени выполнения этапа, программа формирует следующую ветку маршрута, и так до конца маршрута. По окончании маршрута, меняет статус документа на «Завершен». В результат работы процедуры, формируется таблица, которая отражает основные пункты маршрутов и документы, поступающие или выбывающие из этих маршрутов, результат работы процедуры представлен (рис.3).

Рис. 3. Результат работы процедуры

Литература:

  1. Алапати Сэм Р. Oracle Database 11g. Руководство администратора баз данных– М: Apress, 2010. — 1440 с.
  2. Прижляковский В. В. Введение в Oracle SQL– М.:Интуит, 2016. — 358 с.
Основные термины (генерируются автоматически): базы данных, ER-модель базы данных, статуса документа, пути документа, Определение маршрута документа, количества документов, результат работы процедуры, Определение статуса документа, распределения документов, Пункт маршрута, Проверка статуса документа, построение пути документа, Oracle Database, История пути документа, даты изменения документа, электронного документооборота, Определение количества документов, Проверка количества документов, распределения документов необходим, маршрутом документа.


Обсуждение

Социальные комментарии Cackle
Задать вопрос