- •Введение
- •1.4 Безопасность при эксплуатации пэвм
- •1.5 Стадии и этапы разработки
- •1.6 Порядок контроля и приемки
- •2 Требования к функциональным характеристикам
- •3.2 Выбор формата обмена данными
- •3.3 Выбор среды разработки
- •3.4 Выбор субд для системной базы данных
- •4 Разработка базы данных
- •Пользователи и права доступа
- •Метаданные
- •5 Разработка программного обеспечения
- •5.1 Архитектура программного обеспечения
- •5.2 Система аутентификации и авторизации
- •5.3 Взаимодействие с клиентским приложением
- •6 Тестирование программы
- •6.1 Модульное тестирование
- •6.2 Системное тестирование
- •7 Организационно-экономическая часть
- •7.1 Технико-экономическое обоснование объекта проектирования
- •7.2 Организационная часть
- •7.3 Экономическая часть
- •7.4 Выводы
- •8 Безопасность и экологичность проектных решений
- •8.1 Цель и решаемые задачи
- •8.2 Опасные и вредные факторы при работе с пэвм
- •8.3 Характеристика объекта исследования
- •8.4 Мероприятия по безопасности труда и сохранению работоспособности
- •8.5 Рсчеты
- •Заключение
- •Список литературы
- •Приложение 1. Листинг
4 Разработка базы данных
Для работы сервера приложений необходимо наличие базы данных, содержащей метаданные, описывающие предметную область. Так же системная база данных содержит информацию о пользователях системы и их права на доступ к различным объектам.
При разработке базы данных необходимо учитывать тот факт, что все реляционные таблицы будут отображены в Java классы посредством ORM Hibernate. Поэтому желательно использовать в качестве первичных ключей искусственные числовые идентификаторы.
Разрабатываемую базу данных необходимо по возможности приводить к четвертой нормальной форме, что дает следующие преимущества:
Лучшая общая организация базы данных.
Сокращение числа ненужных повторений данных.
Согласованность данных внутри базы данных.
Более гибкая структура базы данных.
Эффективные возможности обеспечения безопасности и надежности базы данных.
Однако, в некоторых случаях предпочтительна денормализованная структура, позволяющая, благодаря снижению количества объединений таблиц, повысить скорость выполнения сложных запросов к БД.
Пользователи и права доступа
Таблица 4.1 – Пользователь системы
-
TUSER
Поле
Тип данных
1
2
ID_USER
Число
LOGIN
Строка
PASSWORD
Строка
EMAIL
Строка
1
2
FIRSTNAME
Строка
MIDNAME
Строка
LASTNAME
Строка
CREATED
Время
VISITED
Время
IS_ACTIVE
Булевское
SUPERUSER
Булевское
COMMENT
Строка
Данная таблица содержит информацию о пользователях системы, включая такие поля как:
поле ID записи в БД;
фамилия;
имя;
отчество;
логин;
хэш пароля;
email адрес;
дата создания аккаунта;
время последнего посещения;
является ли пользователь администратором системы;
комментарий;
не заблокирован ли аккаунт;
Таблица 4.2 – Группа пользователей
-
TUSERGROUP
Поле
Тип данных
ID_USERGROUP
Число
ALIAS
Строка
CAPTION
Строка
COMMENT
Строка
Данная таблица содержит информацию о существующих группах пользователей, включая такие поля как:
поле ID записи в БД;
системное название группы;
отображаемое название;
комментарий;
Таблица 4.3 – Группы в которых состоят пользователи
-
TUSERGROUP_USER
Поле
Тип данных
ID_USERGROUP
Число
ID_USER
Число
Группы и пользователи находятся в отношении многие ко многим. В группе может быть множество членов, а пользователь может состоять в нескольких группах. Данное отношение, на уровне БД, реализовано посредством таблицы TUSERGROUP_USER.
Таблица 4.4 – Иерархия групп
-
TUSERGROUP_PARENT
Поле
Тип данных
ID_USERGROUP
Число
PID_ USERGROUP
Число
Структура групп, в самом общем случае, представляет собой ациклический граф, где каждая группа может иметь несколько родительских. Данное отношение, на уровне БД, реализовано посредством таблицы TUSERGROUP_PARENT.
Таблица 4.5 – Права доступа
-
TGRANTS
Поле
Тип данных
OBJECT_CLASS
Число
OBJECT_ID
Число
SUBJECT_IS_GROUP
Булевское
SUBJECT_ID
Число
GRANT_VALUE
Число
Данная таблица содержит информацию о правах доступа предоставленных пользователям и группам пользователей системы. Таблица включает такие поля как:
класс объекта (метод, группа);
id объекта доступа;
субъект это группа;
id субъекта (группа или пользователь);
уровень доступа;
