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

3Database Architecture

3.1Dbms

As DBMS it was selected to use PostgreSQL.

PostgreSQL or simply postgres -  is an object-relational database management system (ORDBMS). It is released under an MIT-style license and is thus free and open source software. As with many other open-source programs, PostgreSQL is not controlled by any single company — a global community of developers and companies develops the system.

The reason to use postgres was its popularity and stability, many companies use this database.

3.2Schemas Design

It was decided to use only one instance of Postgres Database and one schema in it named uni.

CREATE DATABASE uni WITH OWNER = postgres ENCODING = 'UTF8' CONNECTION LIMIT = -1;

This database schema will contain tables from uni project and bpm engine.

In the Figure 3.1 we have the ERD diagram of schema tables.

This tables are the basic tables for educational process. Each table has unique primary key which gets from sequence.

Figure 3.1 – Entity relationship diagram

3.3Data Model Overview Table «Catalog» - Catalog of subjects which would be available in a faculty on certain term with some number of credits

Relationships

Columns

Association

Notes

0..* Catalog.faculty_id

1 Faculty.PK_Faculty

0..* Catalog.term_id

1 Term.PK_Term

0..* Catalog.subject_id

1 Subject.PK_Subject

Table «Class» - a set of lessons which will be tough by some instructor

Relationships

Columns

Association

Notes

0..* Class.term_id

1 Term.PK_Term

0..* Student_Schedule.class_id

1 Class.PK_Class

0..* Class_Schedule.class_id

1 Class.PK_Class

0..* Class.faculty_id

1 Faculty.PK_Faculty

0..* Class_Enroll.class_id

1 Class.PK_Class

0..* Class_Grades.class_id

1 Class.PK_Class

0..* Class_Groups.class_id

1 Class.PK_Class

0..* Class_Instructors.class_id

1 Class.PK_Class

Table «Class_Enroll» - Enroll for a class

Relationships

Columns

Association

Notes

0..* Class_Enroll.class_id

1 Class.PK_Class

0..* Class_Enroll.student_id

1 Student.PK_Student

Table «Class_Grades» - Grades of student for some class

Relationships

Columns

Association

Notes

0..* Class_Grades.instructor_id

1 Instructor.PK_Instructor

0..* Class_Grades.class_id

1 Class.PK_Class

0..* Class_Grades.student_id

1 Student.PK_Student

Table «Class_Groups» - Class will be divided to groups and in each group there are some number of available seats

Relationships

Columns

Association

Notes

0..* Class_Groups.class_id

1 Class.PK_Class

Table «Class_Instructors» - Instructors who will teach each group

Relationships

Columns

Association

Notes

0..* Class_Instructors.instructor_id

1 Instructor.PK_Instructor

0..* Class_Instructors.class_id

1 Class.PK_Class

Table «Class_Schedule» - Class schedule of lessons, when, where it will be and who will teach

Relationships

Columns

Association

Notes

0..* Class_Schedule.class_id

1 Class.PK_Class

Table «Course» - Divider of educational area

Relationships

Columns

Association

Notes

0..* Subject.course_id

1 Course.PK_Course

Table «Faculty» - Educational Division

Relationships

Columns

Association

Notes

0..* Catalog.faculty_id

1 Faculty.PK_Faculty

0..* Class.faculty_id

1 Faculty.PK_Faculty

Table «Instructor» - A person who will teach students or assist in the educational process of students

Relationships

Columns

Association

Notes

0..* Class_Instructors.instructor_id

1 Instructor.PK_Instructor

0..* Class_Grades.instructor_id

1 Instructor.PK_Instructor

Table «Student» - A person who came to study

Relationships

Columns

Association

Notes

0..* Student_Schedule.student_id

1 Student.PK_Student

0..* Class_Enroll.student_id

1 Student.PK_Student

0..* Class_Grades.student_id

1 Student.PK_Student

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]