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

Приложение б

Листинг программного кода спроектированной БД для среды PostgreSQL представлен ниже

CREATE DATABASE "SHOOL"

CREATE SCHEMA IF NOT EXISTS public

CREATE TABLE "TEACHER" (

"TEACHER_ID" serial PRIMARY KEY,

"TEACHER_FULL_NAME" character(50)

);

CREATE TABLE "CLASS"

(

"CLASS_ID" serial PRIMARY KEY,

"CLASS_NUMBER" character(10)

);

CREATE TABLE "CLASSROOM"

(

"CLASSROOM_ID" serial PRIMARY KEY,

"TEACHER_ID" serial,

"CLASSROOM_NUMBER" character(10),

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

);

CREATE TABLE "SUBJECT"

(

"SUBJECT_ID" serial PRIMARY KEY,

"SUBJECT_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")

);

CREATE TABLE "SCHEDULE"

(

"TEACHER_ID" serial,

"SUBJECT_ID" serial,

"CLASS_ID" serial,

"CLASSROOM_ID" serial,

"LESSON_NUMBER" smallint CHECK("LESSON_NUMBER" > 0 AND "LESSON_NUMBER" < 10),

"DATE" date,

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

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

FOREIGN KEY ("CLASS_ID") REFERENCES "CLASS" ("CLASS_ID"),

FOREIGN KEY ("CLASSROOM_ID") REFERENCES "CLASSROOM" ("CLASSROOM_ID")

);

CREATE TABLE "STUDENT"

(

"STUDENT_ID" serial PRIMARY KEY,

"CLASS_ID" serial,

"STUDENT_FULL_NAME" character(50),

FOREIGN KEY ("CLASS_ID") REFERENCES "CLASS" ("CLASS_ID")

);

CREATE TABLE "STATEMENT"

(

"STUDENT_ID" serial,

"SUBJECT_ID" serial,

"PERIOD" interval,

"GRADE" character(10),

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

FOREIGN KEY ("STUDENT_ID") REFERENCES "STUDENT" ("STUDENT_ID")

);

CREATE ROLE admin WITH SUPERUSER LOGIN;

CREATE ROLE head_teacher WITH LOGIN;

CREATE ROLE teacher WITH LOGIN;

CREATE ROLE student WITH LOGIN;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO head_teacher;

GRANT INSERT, UPDATE, DELETE ON TABLE "TEACHER", "STUDENT", "STATEMENT" TO head_teacher;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO teacher;

GRANT INSERT, UPDATE, DELETE ON TABLE "STATEMENT" TO teacher;

GRANT SELECT ON TABLE "STATEMENT", "SCHEDULE" TO student;