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

Кроль Т. Я., Харин М. А., Никоноров Н. В., Иванов Д. В. Модели данных для реализации поиска и прав доступа к документам // Молодой ученый. — 2011. — №11. Т.1. — С. 79-84.

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

Для организации разграничения прав доступа к документам могут быть использованы следующие способы:

  • ACL (Access Control List) – хранение списков элементов контроля доступа.

  • RWD (Read-Write-Delete) - хранение прав доступа в привязке к конкретному объекту.

  • MAC (Mandatory Access Control) - мандатное управление доступом.

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

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

  • создание учётных записей пользователей системы;

  • формирование групп пользователей системы;

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

  • формирование шаблонов прав доступа к документам различных типов, как для групп пользователей, так и для единичных пользователей;

  • назначение прав доступа к пакетам документов для пользователей системы.

Пользователь (user) представляет собой набор следующих элементов:

  • логин (login);

  • пароль (password);

  • адрес электронной почты (mail);

  • телефон (phone);

  • реальное имя (name);

  • набор прав на конкретные документы (docs_acls);

  • набор прав на типы документов (types_acls).

Таким образом, user = {login, password, mail, phone, name, docs_acls, types_acls}. Наборы docs_acls и types_acls представляют собой множества конкретных прав (acl), являющихся совокупностью следующих логических значений:

  • право на чтение;

  • право на изменение;

  • право на удаление;

  • право на полный доступ.

Обычно пользователям выдаются права на чтение и изменение. Удаление доступно только системным администраторам и применяется только в исключительных случаях.

Пользователи могут объединяться в группы пользователей (user_group), представляющих собой следующие структуры:

  • наименование группы (name);

  • список пользователей (users);

  • набор прав на конкретные документы (docs_acls);

  • набор прав на типы документов (types_acls).

Таким образом, user_group = {name, users, docs_acls, types_acls}. Здесь users – множество пользователей типа user, права docs_acls и types_acls аналогичны правам отдельного пользователя. Группы необходимы для более удобного администрирования, позволяя выдавать права сразу многим пользователям.

Система ориентирована на работу с предприятием, имеющим сложную филиальную структуру. Соответственно модель должна поддерживать следующие функции:

  • создать, изменить и удалить филиал организации;

  • создать, изменить и удалить структурное подразделение;

  • изменить подчиненность и параметры структурного подразделения;

  • добавить сотрудника организации в структурное подразделение;

  • изменить подчиненность и личные данные сотрудника;

Для реализации данных функций используется следующая модель структуры подразделений. Пользователи объединяются в отделы (department), отделы объединяются в филиалы (filial). Соответственно department = {name, users}, где name – наименование отдела, users – множество пользователей типа user; filial = {name, departments}, где name – наименование филиала, departments – множество отделов типа department. Отметим, что отделы и группы пользователей не обязательно должны совпадать, так как внутри одного подразделения могут работать люди с разным уровнем доступа к документам.

Общая схема модели прав и филиалов приведена на рис. 1.

Рисунок 1. Схема модели прав и филиалов.

Далее рассмотрим подмодель поиска документов. Эта модель должна обеспечивать следующие варианты поиска:

  • поиск по атрибутам (атрибутивный поиск);

  • поиск по содержанию (полнотекстовый поиск);

  • поиск по синонимам;

  • поиска по фразе;

  • поиск в истории;

  • поиск по максимальному расстоянию между словами.

Для реализации приведенных вариантов используются средства базы данных электронного архива, метаданных, создаваемых СУБД (например, Oracle или SQL Server) и дополнительные средства в виде поисковых индексов (рис. 2)

Рисунок 2. Средства, используемые для поиска.

База данных среди прочих таблиц содержит таблицы документов, атрибутов и истории атрибутов (рис. 3)

Рисунок 3. Таблицы базы данных, используемые для поиска.

Эти таблицы позволяют осуществлять поиск по системным и остальным атрибутам и по истории атрибутов. Для этого используются параметризованные SQL-запросы, генерируемые программой поиска. Значения атрибутов для поиска представлены параметрами, это позволяет за счет кэша запросов СУБД повысить быстродействие однотипных запросов.

Метаданные СУБД хранят описания полей таблиц базы данных, которые могут использоваться в программах на языке PL/SQL. Для этого предназначены атрибуты переменных PL/SQL %TYPE и %ROWTYPE. Для атрибута %TYPE тип и длина переменной берутся из описания поля заданной таблицы БД. Для атрибута %ROWTYPE описание всех элементов структуры берется из описания полей заданной таблицы БД. Использование метаданных дает следующие преимущества:

  1. Упрощение программирования

  2. Не требуется корректировка программы при изменении, например, типа и длины поля таблицы.

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

  • слово для поиска

  • ссылка на атрибут или файл, содержащий слово

  • позиция и смещение слова в атрибуте. Позиция – это номер слова по порядку, смещение определяет, с какого символа от начала текста начинается искомое слово.

Соответственно, индекс index = {word, object, position}, где word – слово для поиска, object – некоторый объект в зависимости от типа индекса: атрибут, файл – содержащий данное слово, position – позиция слова в объекте.

Схема модели поискового индекса приведена на рис. 4.

Рисунок 4. Общая схема модели поискового индекса.

Для представления слов в поисковом индексе используется следующая модель.

Имеются несколько словарей (Dict), каждый из которых характеризуется следующими признаками:

  • Наименование словаря (Name)

  • Язык (Lang)

  • Набор слов (Words)

Таким образом, Dict = (Name, Lang, Words). Набор слов представляет множество слов (Word), каждое из которых имеет следующие характеристики:

  • Слово для поиска (SearchWord)

  • Набор флагов, характеризующий аффиксы для данного слова (Flags)

  • Множество синонимов (Synonyms) типа Word

Соответственно, Word = (SearchWord, Flags, Synonyms). Сами флаги представляют собой некоторый набор значений из приведенных в таблице 1.

Таблица 1

Флаги, характеризующие аффиксы

Флаг

Значение флага

L

Прошедшее время глаголов

M

1 спряжение глаголов (глаголы на –ать, -еть, -уть, -оть, -йти, часть глаголов на
–ыть, –зти, -сти, -чь)

U

Глаголы на –ать с суффиксами –ава-, -ова-, -ева-, глаголы на –ять, -чь, -уть, глаголы-исключения 2 спряжения

W

Глаголы на -ить

V

Глаголы-исключения на -ить

Y

Неправильные глаголы (нестандартные, разносклоняемые)

B

Повелительное наклонение

T

Повелительное наклонение (исключения)

P

Деепричастия глаголов несовершенного вида

Q

Деепричастия глаголов несовершенного вида (исключения)

R

Деепричастия глаголов совершенного вида

Z

Наречия и слова типа янтарно-желтый

A

Прилагательные и причастия

S

Краткие прилагательные и причастия

X

Краткие прилагательные с нестандартной формой мужского рода

E

Сравнительная степень прилагательных

I

Первое склонение существительных

H

Существительные первого склонения, существующие только в единственном числе

K

Второе склонение существительных

J

Существительные второго склонения, существующие только в единственном числе

N

Третье склонение существительных

F

Существительные третьего склонения, существующие только в единственном числе

O, G

Различные нестандартные ситуации

Каждый такой флаг определяет правила образования словоформ путем замены части слова на другую. Например, флаг L среди прочих содержит следующие правила для образования прошедшего времени для глаголов, оканчивающихся на –сти:

  • Замена –ЕСТИ на ЁЛ (например, цвести > цвёл)

  • Замена –СТИ на Л

  • Замена –СТИ на ЛА (например, цвести > цвела)

  • Замена –СТИ на ЛО (например, цвести > цвело)

  • Замена –СТИ на ЛИ (например, цвести > цвели)

Соответственно, используя правила флагов, можно получить все словоформы искомого слова. Например, слово «Напакостить» имеет флаги BLRW. Применяя правила, получим формы:

  • повелительного наклонения (напакости, напакостите),

  • прошедшего времени (напакостил, напакостила, напакостило, напакостили),

  • деепричастия (напакостив),

  • спряжения глагола в настоящем времени (напакощу, напакостим, напакостишь, напакостите, напакостит, напакостят)

При поиске по фразе выполняются следующие действия:

  1. Поиск всех слов, включая предлоги и союзы, в том виде, как они записаны, то есть без грамматических форм и синонимов.

  2. Отбор документов, в которых эти слова следуют в том же порядке, как и в поисковом запросе и с максимальным расстоянием между словами равным 1.

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

(1)

Здесь R – релевантность, W – весовой коэффициент, F – число найденных слов, N – общее число слов, S – среднее расстояние между словами. Весовой коэффициент W равен 100, если результат поиска – атрибут документа, и равен 1, если результат поиска – текст документа.

Далее рассмотрим способы увеличения скорости поиска. Для этого используются таблицы с двоичным индексом и HASH-таблицы. Схема таблицы приведена на рисунке 5.

Рисунок 5. Схема таблицы с двоичным индексом.

Ключ в данном случае представляет собой двоичное число. Доступны следующие операции:

  • Выборка по заданному ключу

  • Последовательный перебор записей.

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

Модель HASH-таблицы приведена на рисунке 6.

Рисунок 6. Модель HASH-таблицы

Таблицы блоков (таблица блока 1, …, таблица блока n) имеют фиксированную длину и имеют доступ к элементам по индексу 1..m. Для поиска по ключу используется следующий алгоритм:

  1. Находим HASH-функцию заданного ключа – h.

  2. Выбираем из таблицы блока 1 запись с индексом h.

  3. Если ключ записи совпадает с заданным ключом, то завершаем поиск – запись найдена. Если ключ записи не совпадает с заданным ключом, то выполняем выборку из таблицы блока 2 по индексу h.

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

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

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


Литература:

Кроль Т.Я. Схема наполнения электронного архива документами / Т.Я.Кроль, М.А.Харин, П.В.Евдокимов // Материалы первой международной конференции «Автоматизация управления и интеллектуальные системы и среды». Терскол, 20-27 дек. 2010. Т. IV. С. 53-56.

Кроль Т.Я. Методы поиска в электронном архиве / Т.Я.Кроль, М.А.Харин, Н.В.Никоноров, Д.В.Иванов // Информационные технологии моделирования и управления. – 2011. - № 6. - С. 702-709.

Аллен К. 101: Oracle PL/SQL : Как писать мощные и гибкие программы на PL/SQL/ К. Аллен. - М.: Лори, 2001. – 350 с.

Арустамов А. Анализ бизнес информации - основные принципы [Электронный ресурс] / А.Арустамов. – Режим доступа: http://www.basegroup.ru/library/methodology/analysisbusinessdata/, свободный.

Обсуждение

Социальные комментарии Cackle