- •Project consultation pointing to relevant chapters
- •Annotation
- •Аннотация
- •Түйіндеме
- •1.5Final Goals
- •2Application architecture
- •2.1Enterprise JavaBeans (ejb)
- •2.2Bpm Process Engine
- •2.2.1Introduction
- •2.2.2What is bpmn?
- •2.2.3Bpmn 2.0 constructs Custom extensions
- •2.2.4Engine api
- •2.2.5Business archives
- •2.2.6Versioning of process definitions
- •2.2.7Generating a process diagram
- •2.3Integrating bpm into project
- •2.4Web Services
- •2.5Application Design
- •3Database Architecture
- •3.1Dbms
- •3.2Schemas Design
- •3.3Data Model Overview Table «Catalog» - Catalog of subjects which would be available in a faculty on certain term with some number of credits
- •Table «Class» - a set of lessons which will be tough by some instructor
- •Table «Class_Enroll» - Enroll for a class
- •Table «Class_Grades» - Grades of student for some class
- •Table «Student_Schedule» - Student Schedule of classes
- •Table «Subject» - Some area of study in education
- •Table «Term» - Special Period of time, which has name, start date and end date
- •3.4Activiti Database tables
- •Benefits
- •4Network and Servers
- •4.1Design
- •Benefits
- •5Bpmn usage in Middleware
- •6Conclusion
- •7References
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 |
|
