Пояснительная записка (1209803), страница 4
Текст из файла (страница 4)
Рисунок 3.9 – Аварийная расшифровка.
Шифрование носителя пользователь может выполнить если данный носитель не содержит данных. Информациою об этом приложения получает из базы данных в таблице узлов. На рисунке 3.10 приведен процесс шифрования носителей.
Рисунок 3.10 – Шифрование носителя
3.4 Диаграмма базы данных
Для работы приложения необходима база данных. Её проектируют с помощью модели сущностей базы данных. Модель сущностей формируется из таблиц и связей между ними, что позволяет заранее определить, как в дальнейшем будет организовано получение той или иной информации. Диаграмма сущностей базы данных приведена на рисунке 3.11.
Рисунок 3.11 – Диаграмма базы данных
В результате составления диаграммы получилось 16 таблиц, из них 4 таблицы будут использованы как справочники, а остальные 14 будут динамически изменятся в процессе работы приложения.
Таблица Access (таблица 3.1) содержит случайно сгенерированные ключи, для регистрации и восстановления. Ключи захэшированы.
Таблица 3.1 – Access – ключи доступа
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Key | varchar | Сгенерированный ключ |
Таблица BlockType (таблица 3.2) содержит информацию о типе блокировок: временная, постоянная блокировка.
Таблица 3.2 – BlockType – тип блокировки
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Value | varchar | Значение |
| Discription | varchar | Описание |
Таблица Role (таблица 3.3) содержит информацию о ролях пользователя: пользователь, администратор, руководитель, суперпользователь.
Таблица 3.3 – Role – роль пользователя
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Value | varchar | Значение |
| Discription | varchar | Описание |
Таблица Registate (таблица 3.4) содержит данные, внесенные администратором для регистрации пользователя. Так, как через данные таблицу будет производится регистрация и пользователей, и администраторов, то добавлено поле с идентификатором роли пользователя. Для подтверждения личности пользователя добавлен идентификатор ключа доступа.
Таблица 3.4 – Registrate - регистрация
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Name | varchar | Имя |
| Surname | varchar | Фамилия |
| Patronymic | varchar | Отчество |
| | varchar | Электронная почта сотрудника |
| RoleID | bigint | Идентификатор роли |
| AccessID | bigint | Идентификатор доступа |
Таблица Restore (таблица 3.5) содержит данные для восстановления учетной записи после постоянной блокировки. Ссылается на учетную запись пользователя и ключ доступа для восстановления.
Таблица 3.5 – Restore – восстановление учетной записи
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| UserID | bigint | Идентификатор пользователя |
| AccessID | bigint | Идентификатор ключа доступа |
Таблица Blocked (таблица 3.6) содержит информацию о заблокированных учетных записях. Если учетная запись блокируется временно, то указывается дата окончания блокировки. Если блокировка является постоянной, то дата окончания блокировки не указывается.
Таблица 3.6 – Blocked – заблокированные учетные записи
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| DateOfEnd | date | Дата окончания блокировки |
| BlockTypeID | bigint | Идентификатор типа блокировки |
| UserID | bigint | Идентификатор пользователя |
Таблица Connection (таблица 3.7) содержит информацию о попытках авторизации пользователя. Записываются количество попыток подключения, дата перовой попытки подключения и идентификатор пользователя.
Таблица 3.7 – Connection – попытки авторизации
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Date | date | Дата первой попытки авторизации |
| Counts | integer | Количество попыток авторизации |
| UserID | bigint | Идентификатор пользователя |
Таблица CryptoKey (таблица 3.8) содержит ключи шифрования файлов и контейнеров.
Таблица 3.8 – CryptoKey – ключ шифрования
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Key | varbinary | Ключ шифрования |
Таблица File (таблица 3.9) содержит информацию о зашифрованных файлах. Позволяет хранить все необходимые для шифрования и расшифровки параметры каждого файла. Так, как файл будет в последствии назван псевдонимом, в таблице было создано поле Alias – псевдоним. Для восстановления исходного имени и расширения файла предусмотрено сохранение его исходного имени в поле Name. Также для расшифровки требуется предоставления исходного размера файла, которое было до процесса шифрования. Каждый файл должен быть привязан к контейнеру, в который в последствии будут собраны все файлы и он будет зашифрован.
Таблица 3.9 – File – файл
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Name | varchar | Имя файла |
| Alias | varchar | Псевдоним файла |
| Size | bigint | Исходный размер файла |
| ContainerID | bigint | Идентиикатор контейнера |
| CryptoKeyID | bigint | Идентификатор ключа шифрования |
Таблица Container (таблица 3.10) содержит записи о архивах, в которые собраны зашифрованные файлы на носителях.
Таблица 3.10 – Container - контейнер
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Name | varchar | Имя контейнера |
| Size | bigint | Размер файла |
| CryptoKeyID | bigint | Идентификатор ключа шифрования |
Таблица Storage (таблица 3.11) хранит серийные номера съемных носителей.
Таблица 3.11 – Storage – съемные носители
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Number | varchar | Серийный номер |
Таблица Node (таблица 3.12) хранит данные о зашифрованном контейнере, пользователе зашифровавшем его и носителе, на котором он расположен, образуя связующий узел, служащий для обобщения информации о носителе, контейнере, в который собраны файлы и пользователе, использовавшем контейнер.
Таблица 3.12 – Node – узел
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| UserID | bigint | Идентификатор пользователя |
| ContainerID | bigint | Идентификатор контейнера |
| StorageID | bigint | Идентификатор носителя |
Таблица Event (таблица 3.13) содержит справочную информацию о событиях приложения.
Таблица 3.13 – Event – Событие
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Value | varchar | Значение |
| Discription | varchar | Описание |
Таблица Priority (таблица 3.14) содержит справочную информацию о приоритете событий приложения.
Таблица 3.14 – Priority – Приоритет
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Value | varchar | Значение |
| Discription | varchar | Описание |
Таблица User (таблица 3.15) содержит информацию о зарегистрированном пользователе.
Таблица 3.15 – User – Пользователь
| Наименование поля | Тип | Описание |
| ID | bigint | Идентификатор |
| Login | varchar | Имя пользователя |
| Password | varchar | Пароль |
| Name | varchar | Имя |
| Surname | varchar | Фамилия |
| Patronymic | varchar | Отчество |
| | varchar | Электронная почта сотрудника |
| RoleID | bigint | Идентификация роли пользователя |
Таблица Logs (таблица 3.16) содержит информацию о произошедших событиях приложениях.














