Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РПЗ.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
6.64 Mб
Скачать

4 Разработка базы данных

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

При разработке базы данных необходимо учитывать тот факт, что все реляционные таблицы будут отображены в Java классы посредством ORM Hibernate. Поэтому желательно использовать в качестве первичных ключей искусственные числовые идентификаторы.

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

  • Лучшая общая организация базы данных.

  • Сокращение числа ненужных повторений данных.

  • Согласованность данных внутри базы данных.

  • Более гибкая структура базы данных.

  • Эффективные возможности обеспечения безопасности и надежности базы данных.

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

    1. Пользователи и права доступа

Таблица 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 субъекта (группа или пользователь);

  • уровень доступа;