БД представляет собой ряд таблиц связанных между собой.

Самой верхней таблицей является список студентов и преподавателей (Person), т.к. студенты и преподаватели не включается ни в один из списков.
Структура этой таблицы:
Id (integerNOTNULLAUTOINCREMENT) – уникальныйкодзаписи;
Disckriminator (LongTextNOTNULL '') – запись, студент это или преподователь.
FirstName (VARCHAR (50) NOTNULL) – имя студента или препадователя,
LastName (VARCHAR (50) NOTNULL) –фамилия студента или препадователя,
BornDate (DATETIME (6)) –год рождения препадователя,
Student_BornDate (DATETIME (6)) –годрождениястудента,
GroupNameID (integer(11)) – ссылка на уникальный ключ группы,Соответствует полю GroupName.GroupNameID.
PhoneNumber (Bigint (20)) – номер телефона студента,
Email (VARCHAR (20)) –emailстудента,
Таблица имеет первичный индекс по уникальному полю id, a также внешний ключ для связи с таблицей Person и для обеспечения целостности БД
CONSTRAINT FK_Person_GroupNames FOREIGN KEY (groupnames)
REFERENCES public."GroupNames" (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
Следующей таблицей является список группы (GroupName). Каждый студент не может существовать просто так и должен принадлежать какой-то группе.
Структура:
Id (integerNOTNULLDEFAULT) – уникальныйкодзаписи;
Namegroup (varchar (50) NOT NULL DEFAULT '') – названиегруппы;
Таблица имеет первичный индекс по уникальному полю GroupNameID
Следующей таблицей является список кафедры (Kafedra). Каждый преподаватель не может преподавать предметы просто так и должен принадлежать какой-то кафедре.
Структура:
KafedraID(integerNOTNULLAUTO INCREMENT) – уникальныйкодзаписи;
Name (varchar (20) NOT NULL DEFAULT '') – названиекафедры;
PrepodID(int (11)) – ссылка на уникальный ключ группы,Соответствует полю Prepod.PrepodID;
SuperSadist(varchar (20)NOTNULLDEFAULT) – ученнаястепеньпреподавателя.
Таблица имеет первичный индекс по уникальному полю KafedraID, а также внешний ключ для связи с таблицей Prepod и для обеспечения целостности БД
Следующей таблицей является список предметов (Predmet). Каждый преподаватель может вести предмет не только одинно и другие соответсвенно.
Структура:
PredmetID (int (11) NOT NULL AUTO INCREMENT) – уникальныйкодзаписи;
Credits (int (11) NOTNULLDEFAULT '') – кредит по данному предмету;
KafedraID (int (11)NOTNULLDEFAULT”) – кодкафедры, ведут данный предмет. Соответствует полю Kafedra.KafedraID;
Title (varchar (50)NOTNULLDEFAULT '') – название предмета.
Таблица имеет первичный индекс по уникальному полю PredmetID, а также внешние ключи для связи с таблицами Kafedra и для обеспечения целостности БД
CONSTRAINT fk_Predmet_Kafedra_KafedraID FOREIGN KEY (KafedraID)
REFERENCES public."Kafedra" (KafedraID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET NULL,
Следующей таблицей является список оценок (ball). Каждый студент может получить оценку не только один раз,но и в другой раз.
Структура:
EnrollmentID (int (11) NOT NULL AUTO INCREMENT) – уникальныйкодзаписи;
Ball (decimal() NOTNULLDEFAULT '') – оценка по данному предмету;
PredmetID (int (11)NOTNULLDEFAULT”) – кодпредмета, по которому он получил данную оценку. Соответствует полю Predmet.PredmetID;
StudentID (int (11)NOTNULLDEFAULT”) – кодстудента, который получил данную оценку. Соответствует полю Person.IDWheredisrcimintaor = ‘Student’;
GroupNameID (int (11) NOTNULLDEFAULT”) – кодгруппы, вкоторыйучитьсястудент, которыйполучилданнуюоценку. Эта строка не задействована, но учтена для дальнейших доработок. СоответствуетполюGroopNameID;
ТаблицаимеетпервичныйиндекспоуникальномуполюEnrollmentID, атакжевнешниеключидлясвязистаблицамиPersonиPredmetдля обеспечения целостности БД
CONSTRAINT fk_Ball_Pepson_PrepodID FOREIGN KEY (ID)
REFERENCES public."Person" (ID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET NULL,
CONSTRAINT fk_Ball_Pepson_StudentID FOREIGN KEY(ID)
REFERENCES public."Person" (ID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET NULL,
CONSTRAINT fk_Ball_Predmet_PpredmetID FOREIGN KEY (PredmetID)
REFERENCES public."Predmet" (PredmetID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE SET NULL,
Следующей таблицей является список локаций (Prepod_Location). Каждый преподаватель может вести предмет как в одной аудитории так и другой.
Структура:
Location (varchar (50) NOT NULL DEFAULT '') – названиеаудитории;
Каждый преподаватель может вести несколько предметов и каждыйпредмет (имеется в виду не особь, а его название. Например, «С++». Их в университете может быть несколько и они могут обслуживаться разными преподавателями) может принадлежать нескольким преподавателями. Поэтому для установления соответствий между предметами и преподавателями существует отдельная таблица Group_Predmet_Prepod.
Ее структура:
PredmetID (integerNOTNULLDEFAULT) – уникальныйкодзаписипредметов.Соответствует полю Predmet.PredmetID;
PrepodID (integerNOTNULLDEFAULT) – уникальныйкодзаписипреподователей. Соответствует полю Person.ID;
Таблица имеет первичные индексы по уникальному полю PredmetIDи PrepodID, а также внешние ключи для связи с таблицами Prepod и Predmet и для обеспечения целостности БД
CONSTRAINT fk_Group_Predmet_Prepod_PrepodID FOREIGN KEY (ID)
REFERENCES public."Person" (ID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT fk_Group_Predmet_PredmetID FOREIGN KEY (PredmetID)
REFERENCES public."Predmet" (ID) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE






