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

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

Кроль Т. Я., Харин М. А., Никоноров Н. В., Иванов Д. В. Модели данных для реализации поиска и прав доступа к документам // Молодой ученый. — 2011. — №11. Т.1. — С. 79-84. — URL https://moluch.ru/archive/34/3897/ (дата обращения: 21.07.2018).

Важнейшими задачами электронных архивов являются разграничение прав доступа к документам, а также быстрый и удобный поиск документов в соответствии с правами пользователя. Методы поиска документов были описаны статье [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/, свободный.

Основные термины (генерируются автоматически): группа пользователей, SQL, поиск, ROWTYPE, ACL, TYPE, таблица блока, заданный ключ, документ, слово.


Похожие статьи

СУБД Oracle: DDL триггер, как средство контроля изменения...

Тип объекты определяется через обращение к ora_dict_obj_type и его значения могут быть

Полученную строчку кода, представленную в sql_text можно разбирать (парсить) в

Рассмотрим пример, когда необходимо в таблице log фиксировать событие, объект, пользователя...

Экспорт данных о ролевой политике безопасности из Системы...

Ключевые слова: БД, СУБД, ролевая политика безопасности, ORACLE, экспорт данных.

— отображение, определяющее множество привилегий для заданной роли.

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

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

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Модели данных для реализации поиска и прав доступа к документам.

Задать вопрос.

Разработка базы данных для отдела кадров в программе...

Ключевые слова: база данных, сущность, атрибут,отдел кадров, первичный ключ, внешний ключ.

Различают первичные ключи и внешние: первичный ключ (primary key) — это атрибут или группа атрибутов, однозначно идентифицирующие экземпляр сущности, атрибуты...

Асинхронное выполнение SQL-запросов на языке...

Ключевые слова: PHP, SQL, cURL, многопоточная обработка, потоки, логические ядра процессора.

curl_multi_strerror. Возвращает текст сообщения об ошибке, соответствующей заданному коду ошибки CURLM.

Прозрачное шифрование данных (TDE) | Статья в журнале...

- сервер БД читает зашифрованные блоки данных из файла, расшифровывает данные ключом табличного пространства и помещает в свой кэш для последующей обработки и

Ключ шифрования — уникальный для каждой таблицы.

Задать вопрос. ФИО. Электронная почта.

Применение хранимых процедур в Entity Framework

Эта процедура возвращает всех студентов, которые назначены для конкретной группы

Основные термины (генерируются автоматически): EDM, SQL, T-SQL, хранимая процедура, баз данных, сложный тип, BEGIN, CREATE, DBO, END.

Задать вопрос.

О способе интеграции системы обнаружения аномалий в SQL...

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

Задать вопрос. ФИО.

Решение проблем параллельной обработки транзакций и выход из...

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

Один из выходов в данной ситуации — поиск «жертвы» — транзакции, которая будет отменена первой.

Подход свойственен для Oracle, DB2, MS SQL Server и т. п.

Обсуждение

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

Похожие статьи

СУБД Oracle: DDL триггер, как средство контроля изменения...

Тип объекты определяется через обращение к ora_dict_obj_type и его значения могут быть

Полученную строчку кода, представленную в sql_text можно разбирать (парсить) в

Рассмотрим пример, когда необходимо в таблице log фиксировать событие, объект, пользователя...

Экспорт данных о ролевой политике безопасности из Системы...

Ключевые слова: БД, СУБД, ролевая политика безопасности, ORACLE, экспорт данных.

— отображение, определяющее множество привилегий для заданной роли.

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

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

Основные термины (генерируются автоматически): ADO, SQL, источник данных, баз данных, данные, таблица, база данных, соединение, оперативная память, реляционная база данных.

Модели данных для реализации поиска и прав доступа к документам.

Задать вопрос.

Разработка базы данных для отдела кадров в программе...

Ключевые слова: база данных, сущность, атрибут,отдел кадров, первичный ключ, внешний ключ.

Различают первичные ключи и внешние: первичный ключ (primary key) — это атрибут или группа атрибутов, однозначно идентифицирующие экземпляр сущности, атрибуты...

Асинхронное выполнение SQL-запросов на языке...

Ключевые слова: PHP, SQL, cURL, многопоточная обработка, потоки, логические ядра процессора.

curl_multi_strerror. Возвращает текст сообщения об ошибке, соответствующей заданному коду ошибки CURLM.

Прозрачное шифрование данных (TDE) | Статья в журнале...

- сервер БД читает зашифрованные блоки данных из файла, расшифровывает данные ключом табличного пространства и помещает в свой кэш для последующей обработки и

Ключ шифрования — уникальный для каждой таблицы.

Задать вопрос. ФИО. Электронная почта.

Применение хранимых процедур в Entity Framework

Эта процедура возвращает всех студентов, которые назначены для конкретной группы

Основные термины (генерируются автоматически): EDM, SQL, T-SQL, хранимая процедура, баз данных, сложный тип, BEGIN, CREATE, DBO, END.

Задать вопрос.

О способе интеграции системы обнаружения аномалий в SQL...

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

Задать вопрос. ФИО.

Решение проблем параллельной обработки транзакций и выход из...

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

Один из выходов в данной ситуации — поиск «жертвы» — транзакции, которая будет отменена первой.

Подход свойственен для Oracle, DB2, MS SQL Server и т. п.

Задать вопрос