Добавил:
t.me мой будущий Dungeon Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсач по УД / КП_УД.docx
Скачиваний:
0
Добавлен:
16.06.2025
Размер:
245.08 Кб
Скачать

4 Описание функций групп пользователей

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

На рисунке 3 показана диаграмма с функциями групп пользователей.

Рисунок 3 – Диаграмма с функциями групп пользователей

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

Таблица 1 – Назначение прав доступа группам пользователей

Объект

Администратор

Завуч

Учителя

Ученики

Учитель

SUID

SUID

S

-

Кабинет

SUID

S

S

-

Ученик

SUID

SUID

S

-

Предмет

SUID

S

S

-

Класс

SUID

S

S

-

Преподавание

SUID

S

S

-

Расписание

SUID

S

S

S

Ведомость

SUID

SUID

SUI

S

5 Описание функций управления данными

5.1 Хранение данных

Хранение данных осуществляется с помощью таблиц, обозначающих сущности из физической диаграммы. Для главных таблиц задается уникальный идентификатор – ID, который является также первичным ключом. Связь с дочерними таблицами осуществляется через внешний ключ, который соответствует первичному ключу главной таблицы, что обеспечивает ссылочную целостность.

Функция создания главной таблицы TEACHER с характерным первичным ключом:

СREATE TABLE "TEACHER"

(

"TEACHER_ID" serial PRIMARY KEY,

"TEACHER_FULL_NAME" character(50)

);

Функция создания дочерней таблицы с характерными внешними ключами:

CREATE TABLE "TEACHING"

(

"TEACHER_ID" serial NOT NULL,

"SUBJECT_ID" serial NOT NULL,

"ORDER" boolean,

FOREIGN KEY ("TEACHER_ID") REFERENCES "TEACHER" ("TEACHER_ID"),

FOREIGN KEY ("SUBJECT_ID") REFERENCES "SUBJECT" ("SUBJECT_ID")

);

Остальные таблицы задаются аналогичным образом и представлены в Приложении Б.

5.2 Манипулирование данными

Согласно заданию необходима возможность вносить данные о новом учителе или ученике, а также удалять выбывших, это осуществимо с помощью функции INSERT INTO

INSERT INTO "STUDENT" ("STUDENT_FULL_NAME")

VALUES ('ФИО'); // добавление нового ученика

Добавление других данных осуществляется аналогично, представлено в приложении А.

Изменение данных, согласно правам доступа осуществляется функцией UPDATE. Например, изменение ФИО ученика

UPDATE "STUDENT"

SET "STUDENT_FULL_NAME" = 'новое ФИО'

WHERE "STUDENT_FULL_NAME" = 'старое ФИО'

AND "STUDENT_ID" IN (

SELECT "STUDENT_ID"

FROM "STUDENT"

WHERE "STUDENT_FULL_NAME" = 'старое ФИО'

);

Остальные команды редактирования представлены в приложении А.

Удалять данные завуч может об ученике, учителе или оценке командой DELETE

DELETE FROM "TEACHER"

WHERE "TEACHER_ID" IN (

SELECT "TEACHER_ID"

FROM "TEACHER"

WHERE "TEACHER_FULL_NAME" = 'ФИО'

); // удаление данных об учителе

Остальные команды для удаления в приложении А.

Поиск и получение данных из БД осуществляется запросом

SELECT "поле1", "поле2", ...

FROM "Имя таблицы"

WHERE (условие);

Вариациями данного запроса пользователи могут просматривать данные из БД (приложение А).