AlexMin 5 달 전
부모
커밋
d2c6532f77

+ 0 - 0
Документы/~$ализ БД проекта.docx


BIN
Документы/~WRL4037.tmp


+ 259 - 0
Документы/Анализ БД проекта.docx

@@ -0,0 +1,259 @@
+                             Оглавление
+Создание БД для ИС <<Учебная часть>>	1
+
+
+          Создание БД для ИС <<Учебная часть>>
+                               Введение
+	 Цель документа
+Данный документ представляет собой руководство по созданию базы данных для информационной системы, разработанной для учебной части образовательного учреждения.
+	 Область применения базы данных
+База данных будет использоваться для хранения информации о студентах, преподавателях, расписании занятий, успеваемости и других данных, необходимых для управления учебным процессом.
+                           Обзор системы
+	Информационная система предназначена для управления учебным процессом, обеспечивая доступ к актуальным учебным материалам, оценкам, расписанию занятий и другой информации.
+	Функциональные требования к базе данных
+	База данных должна поддерживать операции по учету студентов и преподавателей, формированию расписания занятий, управлению учебным процессом и доступу к электронным образовательным ресурсам.
+	Нефункциональные требования к базе данных
+	База данных должна обеспечивать высокую производительность, надежность, безопасность и масштабируемость.
+              Проектирование базы данных
+	 Описание сущностей и их атрибутов
+- Сущности: роли, пользователи, кафедры, специальности, группы, студенты, корпусы (филиалы), преподаватели, дисциплины преподавателей, дисциплины групп, расписание, оценки, посещаемость.
+- Атрибуты: данные о студентах (ФИО, группа, контактные данные), данные о преподавателях (ФИО, предметы), данные о занятиях (дата, время, аудитория), данные об успеваемости (оценки).	
+	Полученные таблицы БД:
+ Роли:
+ ID (ключ)
+ Название (varying (30))
+ Пользователи
+ ID (ключ)
+ Фамилия (varying (30))
+ Имя (varying (30))
+ Отчество (varying (30))
+ Почта (varying (30))
+ Номер телефона (varying (30))
+ Год рождения (date)
+ ID роли (вторичный ключ)
+ Кафедры
+ ID (ключ)
+ Название (varying (30))
+ Специальности
+ ID (ключ)
+ Название (varying (30))
+ ID кафедры (вторичный ключ)
+ Группы
+ ID (ключ)
+ ID специальности (вторичный ключ) 
+ Дата поступления (date)
+ Название (varying (5))
+ Студенты
+ ID пользователя (вторичный ключ)
+ ID группы (вторичный ключ)
+ Корпусы(филиалы)
+ ID
+ Заведующий
+ Адрес
+ Преподаватели
+ ID пользователя (вторичный ключ)
+ ID кафедры (вторичный ключ)
+ Дисциплины
+ ID (ключ)
+ Название (varying (30))
+ ID кафедры (вторичный ключ)
+ Количество часов (int)
+ Дисциплины преподавателей
+ ID
+ ID преподавателя (вторичный ключ)
+ ID кафедры (вторичный ключ)
+ Дисциплины групп
+ ID (ключ)
+ Семестр
+ ID дисциплины преподователя (вторичный ключ)
+ ID группы (вторичный ключ)
+ Расписание
+ ID (ключ)
+ Дата (date)
+ Номер (smallint)
+ ID дисциплина (вторичный ключ)
+ ID корпус (вторичный ключ)
+ Оценки
+ ID (ключ)
+ ID студента (вторичный ключ)
+ ID группы (вторичный ключ)
+ Дата (date)
+ Оценка (int)
+ Название работы (varying (30))
+ Посещаемость
+ ID (ключ)
+ ID расписание (вторичный ключ)
+ ID студента (вторичный ключ)
+ Посещение (bool)
+Полученные таблицы
+--роли
+create table Roles
+(
+	Id SERIAL primary key,
+	name character varying(30) unique
+);
+--пользователи
+create table Users
+(
+	Id Serial primary key,
+	first_name character varying(30) not null,
+	last_name character varying(30) not null,
+	middle_name character varying(30),
+	mail character varying(50) not null unique,
+	phone_number character varying(20) unique,
+	date_birth date,
+	Id_role int references Roles(Id) not null
+);
+--Кафедры
+create table Departments
+(
+	Id SERIAL primary key,
+	name character varying(70) unique not null
+);
+--Специальности
+create table Specialties
+(
+	Id SERIAL primary key,
+	name character varying(70) unique not null,
+	Id_department int references Departments(Id) not null
+);
+--Группы
+create table "Groups"
+(
+	Id Serial primary key,
+	Id_specialty int references Specialties(Id) not null,
+	start_date date not null,
+	name character varying(5) not null
+);
+--студенты
+create table Students
+(
+	user_Id int references Users(Id) primary key,
+	group_Id int references "Groups"(Id) not null
+);
+--корпусы (филиалы)
+create table Buildings
+(
+	Id serial primary key,
+	Mgr int references Users(Id) not null,--заведующий
+	address character varying(70) not null
+);
+--преподаватели
+create table Teachers
+(
+	user_Id int references Users(Id) primary key,
+	department_Id int references Departments(Id)
+);
+--дисциплины
+create table Disciplines
+(
+	Id serial primary key,
+	name character varying(60) not null,
+	department_Id int references Departments(Id) not null,
+	academic_hours int not null
+);
+--дисциплины преподавателей
+create table TeachersDisciplines
+(
+	Id serial primary key,
+	teacher_Id int references Teachers(user_Id) not null,
+	discipline_Id int references Disciplines(Id) not null
+);
+--дисциплины групп
+create table GroupDiscipline
+(
+	Id serial primary key,
+	semester int,
+	teacher_discipline_Id int references TeachersDisciplines(Id) not null,
+	group_Id int references "Groups"(Id) not null
+);
+--расписание
+create table Timetables
+(
+	Id serial primary key,
+	class_date date not null,
+	class_number smallint,
+	group_discipline_Id int references GroupDiscipline(Id) not null,
+   buildind_Id int references Buildings(Id) not null
+);
+--оценки
+create table StudentGrades
+(
+	Id Serial primary key,
+	student_Id int references Students(user_Id) not null,
+	group_discipline_Id int references GroupDiscipline(Id) not null,
+	graded_at date,
+	grade smallint not null,
+	work_name character varying(70)
+);
+--посещаемость
+create table Attendance
+(
+	Id serial primary key,
+	timetable_Id int references Timetables(Id) not null,
+	student_Id int references Students(user_Id) not null,
+	attended bool not null
+);
+	Связи таблиц:
+                               Таблица 1
+                                  Связь
+                               Таблица 1
+Timetables
+                          один ко многим
+Attendance
+Students
+                          один ко многим
+Attendance
+Students
+                          один ко многим
+StudentGrades
+GroupDiscipline
+                          один ко многим
+StudentGrades
+GroupDiscipline
+                          один ко многим
+Timetables
+Buildings
+                          один ко многим
+Timetables
+Groups
+                          один ко многим
+GroupDiscipline
+TeachersDisciplines
+                          один ко многим
+GroupDiscipline
+Disciplines
+                          один ко многим
+TeachersDisciplines
+Teachers
+                          один ко многим
+TeachersDisciplines
+Departments
+                          один ко многим
+Disciplines
+Departments
+                          один ко многим
+Teachers
+Users
+                          один ко многим
+Teachers
+Users
+                          один ко многим
+Buildings
+Users
+                          один ко многим
+Students
+Groups
+                          один ко многим
+Students
+Specialties
+                          один ко многим
+Groups
+Departments
+                          один ко многим
+Specialties
+Roles
+                          один ко многим
+Users
+	Диаграмма БД
+

+ 16 - 0
Документы/разработка_БД.docx

@@ -1,3 +1,19 @@
+Роли
+Пользователи
+Кафедры
+Специальности
+Группы
+Студенты
+корпусы (филиалы)
+преподаватели
+дисциплины
+дисциплины преподавателей
+дисциплины групп
+Расписание
+Оценки
+посещаемость
+
+
 --роли
 create table Roles
 (