TỔNG QUAN CHỨC NĂNG CỦA HỆ THỐNG

Một phần của tài liệu Ứng dụng công nghệ node JS và react JS để tối ưu hệ thống quản lý điểm tại trường cao đẳng giao thông vận tải II (Trang 42)

7. Bố cục luận văn

2.3. TỔNG QUAN CHỨC NĂNG CỦA HỆ THỐNG

2.3.1. Quản trị hệ thống

- Có chức năng tạo tài khoản của sinh viên, tạo tài khoản của quản lý và phân quyền;

- Chức năng backup dữ liệu,...

2.3.2. Sinh viên

- Sinh viên có thể xem, in bảng điểm của tất cả các học phần, trung bình chung, trung bình chung tích lũy của mình, trên một trình duyệt bất kỳ.

- Chức năng phản hồi thông tin khi điểm không chính xác.

2.3.3. Phòng Đào tạo

a. Chức năng quản lý điểm

- Chuyên viên phòng Đào tạo được phân quyền quản lý học tập theo từng khóa, và có tài khoản, mật khẩu riêng;

- Chuyên viên có thể nhập, xem, chỉnh sửa điểm học tập của từng sinh viên, theo lớp học phần, theo học kỳ;

- Chức năng xuất file biểu mẫu, thống kê;

- Mọi chức năng nhập, xuất, xử lý điểm được thực hiện 1 cách tự động, nhanh chóng có hệ thống và bảo mật cao.

b. Chức năng quản lý sinh viên

- Chức năng nhập xuất danh sách sinh viên theo lớp sinh hoạt, lớp học phần;

- Chức năng chuyển sinh viên, dừng học, buộc thôi học;

- Chức năng xét học bổng, xét học tiếp, xét nhận Đồ án, khóa luận tốt nghiệp, xét tốt nghiệp. 2.4. THIẾT KẾ HỆ THỐNG 2.4.1. Công cụ hỗ trợ - Node.js v4.4.5; - Sublime Text 3; - SourceTree; - Robomongo 0.8.5; - Notepad++ 6.9.1.

2.4.1. Thiết kế hệ thống

a. Sơ đồ tổng thể của hệ thống, mô hình hoạt động tại trường Cao đẳng Giao thông vận tải II

Khi sinh viên mới nhập trường thì bộ phận quản lý sinh viên tiến hành cập nhật hồ sơ sinh viên mới có đầy đủ thông tin của từng sinh viên. Sau đó tiến hành phân lớp, tách lớp theo các chuyên ngành đã đăng kí từ đầu, in danh sách sinh viên của từng lớp và gửi danh sách đó cho bộ phận quản lý điểm cập nhật danh sách lớp cho các sinh viên. Đồng thời bộ phận này sẽ cập nhật danh mục môn học, cập nhật danh mục khoa, lớp học, loại hình đào tạo. Sau khi đã phân lớp, tách lớp xong bộ phận đào tạo lập kế hoạch đào tạo toàn khoá và kế hoạch giảng dạy từng kỳ cho từng lớp như: phân công giáo viên chủ nhiệm, các môn học trong học kỳ, giáo viên giảng dạy cho từng học phần.

Hình 2.1: Sơ đồ quản lý điểm sinh viên.

Mỗi giáo viên bộ môn sẽ phụ trách một số lớp. Kết thúc môn học giáo viên tổ chức thi. Sau khi tổ chức thi xong giáo viên đánh giá cho điểm từng sinh viên và ghi vào phiếu điểm của lớp đó, kí xác nhận và gửi cho bộ phận quản lý điểm. Bộ phận quản lý điểm tiến hành cập kiểm tra xem xét, nếu không có gì sai sót sẽ cập nhật từng điểm từng môn cho từng sinh viên vào

bảng. Điểm này sẽ được ghi là điểm lần 1 của sinh viên với môn học đó. Đồng thời bộ phận này sẽ gửi một bản sao phiếu điểm cho từng lớp học thông qua giáo viên chủ nhiệm. Đối với các sinh viên có điểm chưa đạt phải thi lần tiếp theo kế hoạch của phòng đào tạo. Giáo viên tiến hành tổ chức thi lần tiếp theo cho các sinh viên đó và đánh giá cho điểm vào phiếu điểm riêng gửi cho bộ phận quản lý điểm để bộ phận này cập nhật lại điểm cho các sinh viên đó. Đối với các sinh viên thi lần 2 chưa đạt thì phải học lại môn học đó, kế hoạch học có thể sinh viên tự liên hệ với giáo viên nhưng trong thời gian cho phép. Sau khi học lại xong giáo viên tổ chức thi và đánh giá điểm lần 3 cho các sinh viên đó.

Cuối mỗi kỳ học, bộ phận quản lý điểm tính điểm trung bình chung học kỳ cho từng sinh viên, thực hiện thống kê kết quả học tập của từng sinh viên. Đồng thời bộ phận này sẽ nhận phiếu điểm rèn luyện từ giáo viên chủ nhiệm các lớp để sau đó dựa vào các quy tắc tính toán và tiêu chuẩn xét mà phòng đào tạo đưa ra để xét học bổng. Thống kê các sinh viên học lại. thi lại gửi cho phòng đào tạo để có kế hoạch học lại, thi lại cho các sinh viên đó. Kết thúc năm học bộ phận quản lý điểm sẽ đưa ra danh sách những sinh viên được học bổng, bị học lại và thôi học.

Sau khi hoàn thành khóa học bộ phận quản lý điểm sẽ dựa vào điểm học tập và điểm rèn luyện của các sinh viên mà lập ra danh sách những sinh viên được làm đồ án, khóa luận tốt nghiệp. Sau khi có điểm bảo vệ đồ án, khóa luận tốt nghiệp thì bộ phận này sẽ cập nhật điểm này vào bảng điểm của từng sinh viên, sau đó sẽ tính điểm trung bình chung và cuối cùng sẽ xem xét sinh viên tốt nghiệp loại gì, và những sinh viên nào còn bị nợ môn không đủ điều kiện tốt nghiệp. Sau đó gửi cho phòng đào tạo cấp bằng cho các sinh viên đủ điều kiện ra trường và lập kế hoạch cho sinh viên không đủ điều kiện tốt nghiệp học và trả nợ các môn. Đối với các sinh viên tốt nghiệp ra trường,

bộ phận quản lý điểm in bảng điểm cá nhân. tổng kết toàn bộ kết quả học tập trong từng khoá học gửi cho từng sinh viên. Đồng thời in bằng tốt nghiệp ra trường cho các sinh viên theo kết quả xét của Hội đồng.

b. Lược đồ của hệ thống

* Danh sách tác nhân

STT Tác nhân Mô tả

1 Quản trị hệ thống

Là nhân viên quản trị hệ thống, được quyền đăng nhập để thực hiện chức năng quản trị hệ thống như tạo tài khoản của sinh viên, quản lý đào tạo. Phân quyền cho user quản lý đào tạo, backup dữ liệu.

2 Sinh viên Là những sinh viên có nhu cầu xem kết quả học

tập ở khoa mình đang học.

3 Quản lý đào tạo

Là người có quyền quản lý như chuyên viên phòng Đào tạo được quyền đăng nhập để thực hiện chức năng quản lý như quản lý sinh viên, quản lý khoá học, quản lý điểm …

c. Thiết kế cơ sở dữ liệu theo mô hình SQL

* Xác định thực thể

Hình 2.2: Thực thể SECTORS.

- Chức năng: lưu thông tin các ngành đào tạo;

- Quy ước: Trường sector_id là mã ngành đào tạo được quy ước trong chương trình đào tạo, sector_id là khóa chính và là duy nhất;

- Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin.

Hình 2.3: Thực thể CLSS.

- Chức năng: lưu thông tin các lớp sinh hoạt. - Quy ước:

+ Trường class_id là mã lớp sinh hoạt được quy ước trong ngành đào tạo, class_id là khóa chính và là duy nhất;

+ Trường sector_id là khóa phụ tham chiếu đến trường sector_id trong bảng SECTORS.

- Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin.

Hình 2.4: Thực thể STUDENTS.

- Chức năng: lưu thông tin sinh viên. - Quy ước:

+ Trường student_id là mã sinh viên được quy ước trong quyết định thành lập lớp, trường student_id là khóa chính và là duy nhất;

+ Trường class_id là khóa phụ tham chiếu đến trường class_id trong bảng CLSS;

+ Trường gender được quy ước: 1 (nam), 0 (nữ).

- Ràng buộc: Các trường có required giá trị True phải nhập đầy đủ thông tin.

Hình 2.5: Thực thể SUBJECTS.

- Chức năng: lưu thông tin môn học

- Quy ước: Trường subject_id là mã môn học được quy ước trong chương trình đào tạo, trường subject_id là khóa chính và là duy nhất.

- Ràng buộc:

+ Các trường có required giá trị True phải nhập đầy đủ thông tin; + Trường number được đặt mặc định trong chương trình đào tạo và chỉ nhận giá trị từ 1 đến 8.

Hình 2.6: Thực thể MARKS.

- Chức năng: lưu thông tin điểm của môn học.

- Quy ước: Trường student_id và subject_id là khóa ngoại của bảng. - Ràng buộc:

+ Các trường có required giá trị True phải nhập đầy đủ thông tin; + Các trường cc, gk, t1, t2, by_number chỉ nhận giá trị từ 0 đến 10.

* Xây dựng mô hình thực thể kết hợp

Hình 2.7: Mô hình thực thể kết hợp.

Hình 2.8: Mô hình cơ sở dữ liệu quan hệ.

d. Những lưu ý khi dùng CSDL

Trên đây là thiết kế CSDL SQL, nhưng khi thiết kế hệ thống dùng công nghệ Node.js thì nên sử dụng CSDL MongoDb. Vì trong Node.js có thư viện Mongoose, với các hàm giúp giao tiếp, xử lý với MongoDB nhanh gọn hơn.

Có thể chuyển đổi dữ liệu quan hệ sang lược đồ MongoDB bằng cách mô hình hóa lược đồ cho dữ liệu. Lược đồ dữ liệu của 2 kiểu dữ liệu là khác nhau, tuy nhiên cũng có một số điểm chung có thể xem xét để áp dụng vào nhau. Bảng dữ liệu dưới đây cung cấp một số các tham chiếu thuật ngữ giữa các thành phần CSDL quan hệ và MongoDB. Bảng 2.1: Bảng ánh xạ các thành phần giữa SQL và MongoDB SQL MONGODB Database Database Table Collection Row Document Index Index

Việc mô hình hóa khi chuyển từ RDBMs sang MongoDB cần áp dụng những điều kiện thực thể để thay đổi cấu trúc của lược đồ phù hợp. Có 2 cách để tổ chức mô hình lược đồ từ SQL sang MongoDB:

- Tận dụng lại các cấu trúc lược đồ dữ liệu quan hệ và cách tổ chức dữ liệu của MongoDB hướng kiểu 2-d (2-dimensional) của các hàng và cột trong SQL.

- Tổ chức dữ liệu theo hướng nhúng văn bản đơn hoặc trên mảng (embedded sub-documents and arrays).

e. Thiết kế giao diện

Chức năng đăng nhập chương trình dùng để kiểm tra tên người truy cập chương trình, chỉ có những người có tên và mật khẩu hợp lệ mới có thể truy cập và thai thác thông tin trong chương trình. Trước khi sử dụng chương trình, người dùng có quyền đặt quyền khai báo tên và mật khẩu của người dùng khác bằng chức năng khai báo người dùng. Khi khởi động, chương trình yêu cầu nhập tên người sử dụng vào ô Tên đăng nhập và nhập mật khẩu vào ô Mật khẩu, sau đó nhấn nút Đăng nhập để vào chương trình.

Đăng nhập chương trình, màn hình sau sẽ xuất hiện:

Điền thông tin đăng nhập người sử dụng bao gồm: - Tên đăng nhập: tài khoản để sử dụng chương trình; - Mật khẩu: mật khẩu được cấp cho tài khoản sử dụng.

Hình 2.10: Quản lý sinh viên.

Mục quản lý sinh viên để nhập danh sách sinh viên (bao gồm mã số sinh viên, họ tên, ngày tháng năm sinh, quê quán, giới tính) vào hệ thống, có thể nhập trực tiếp bằng tay hoặc nhập từ file excel.

Trong quản lý môn học chứa tất cả các môn học trong chương trình đào tạo, số tín chỉ và kí hiệu môn học.

Hình 2.12: Quản lý ngành đào tạo.

Có tất cả 4 ngành đào tạo:

+ Công nghệ kỹ thuật Giao thông;

+ Công nghệ kỹ thuật công trình Xây dựng; + Kế toán;

+ Công nghệ kỹ thuật Cơ khí.

Hình 2.13: Quản lý điểm của từng lớp học phần.

Hình 2.14: Quản lý lớp sinh hoạt.

Quản lý lớp sinh hoạt được sắp xếp theo từng ngành đào tạo. Trong từng lớp sinh hoạt thể hiện danh sách sinh viên của chuyên ngành đó.

Hình 2.15: Quản lý lớp học phần.

Quản lý lớp học phần được sắp xếp theo từng học kỳ, mỗi một lớp học phần thể hiện được số sinh viên đăng ký, số tín chỉ, cách tính điểm của học phần đó (theo tỉ lệ của điểm chuyên cần, điểm trung bình kiểm tra, điểm thi).

KẾT LUẬN CHƯƠNG 2

Chương 2 tập trung trình bày về tổng quan chức năng của hệ thống, đưa ra sơ đồ tổng thể của hệ thống, mô hình hoạt động; Trên cơ sở những phân tích, sử dụng các công cụ hỗ trợ và môi trường phát triển để tiến hành xây dựng và thiết kế chương trình.

Bên cạnh đó còn giới thiệu về trường Cao đẳng Giao thông vận tải II cũng như hiện trạng công tác quản lý điểm tại trường. Luận văn đã tiến hành khảo sát và phân tích các nội dung liên quan đến công tác quản lý điểm tại trường Cao đẳng Giao thông vận tải II, qua đó cho thấy những hạn chế cần phát triển của hệ thống cũ.

CHƯƠNG 3

GIẢI PHÁP TỐI ƯU HỆ THỐNG

Trong chương này, tiếp tục phân tích các vấn đề mà chính điều này dẫn đến hệ thống hiện tại chưa đáp ứng được các yêu cầu sử dụng tại tường Cao đẳng Giao thông vận tải II, từ đó đề xuất giải pháp cải thiện đến hiệu năng của hệ thống.

3.1. PHÂN TÍCH NGUYÊN NHÂN LÀM CHẬM HỆ THỐNG 3.1.1. Truy vấn database: sử dụng SQL server 2008 3.1.1. Truy vấn database: sử dụng SQL server 2008

Thực hiện các phiên kiểm tra trên laptop Lenovo T61, hệ điều hành Windows 7 64 bit với bộ vi xử lý 2.8 GHz, sử dụng phiên bản 64 bit của SQL Server 2008 Standard và MongoDB 1.4.1, ta nhận thấy hệ quản trị cơ sở dữ liệu SQL server 2008 đã bộc lộ những điểm yếu khi so sánh với MongoDB [6].

- So sánh chức năng Insert: Đây là điểm khác biệt rõ ràng nhất giữa SQL server và MongoDB.

Quá trình này được thực hiện bằng cách chèn 50.000 đối tượng độc lập sử dụng NoRM của MongoDB và LINQ tới SQL của SQL server 2008 với mô hình mẫu như hình 3.1.

Hình 3.2: So sánh chức năng Insert giữa SQL và MongoDB.

Dễ dàng nhận thấy, với 100 đối tượng và 1.000 đối tượng thì thời gian insert giữa hai CSDL là tương đương nhau, với 5.000 đối tượng thì đã có sự chênh lệch giữa hai CSDL này. Tuy nhiên, khi chèn 25.000 và 50.000 đối tượng thì thấy rõ với MongoBD thời gian insert ít hơn rất nhiều lần so với SQL server.

Ngoài ra nhìn vào lược đồ so sánh, ta cũng thấy rằng thời gian xử lý của MongoDB khi xử lý 5000 hay 50.000 đối tượng gần như tương đương nhau, sự sai khác chỉ trong khoảng vài giây. Trong khi đó, SQL lại bộc lộ khả năng xử lý chậm khi số lượng đối tượng tăng lên, cụ thể thời gian xử lý tăng lên gấp 16 lần khi so sánh giữa việc insert 5.000 và 50.000 đối tượng. Như vậy, giữa hai CSDL thì MongoDB có tốc độ xử lý nhanh và ổn định hơn nhiều so với SQL.

- So sánh tốc độ truy vấn: + Khi chỉ có khóa chính

Hình 3.3: So sánh tốc độ truy vấn từ cùng đối tượng khác nhau trong trường ID của mỗi bản ghi.

Nhìn vào hình 3.3, rõ ràng MongoDB vẫn tỏ ra vượt trội hơn hẳn so với SQL về hiệu suất. Cụ thể, trong trường hợp xử lý với số lượng đối tượng nhỏ (khoảng 50 đối tượng), thời gian xử lý của SQL và MongoDB sai lệch chỉ vào khoảng 0,02 giây, tốc độ truy vấn chênh lệch nhỏ (khoảng 125 đối tượng /1s). Tuy nhiên, khi số lượng đối tượng tăng lên, SQL cần thời gian xử lý nhiều hơn so với MongoDB. Đặc biệt, khi số lượng đối tượng cần xử lý lớn vào khoảng từ 25.000 đến 50.000 đối tượng thì thời gian xử lý của SQL gấp ba lần so với MongoDB. Như khi cùng xử lý 50.000 đối tượng, SQL mất 28 giây để xử lý thì MongoDB chỉ cần 10,4 giây. Tốc độ truy vấn khi chỉ có khóa chính của MongoDB trong trường hợp này là 4.808 đối tượng/1s, của SQL là

1.786 đối tượng/1s. Như vậy, tốc độ truy vấn của MongoDB nhanh gấp ba lần so với SQL.

+ Khi có khóa ngoại, mô hình mẫu lúc này có dạng như hình 3.4.

Hình 3.4: Mô hình mẫu 2.

Khi sử dụng khóa ngoại, tốc độ truy vấn giữa SQL và MongoDB vẫn có sự khác biệt và thể hiện tính vượt trội về mặt hiệu suất của MongoDB so với SQL. Tiến hành so sánh tương tự như trong trường hợp chỉ có khóa chính, ta thấy rằng thời gian xử lý đối với cùng một số lượng đối tượng của SQL bao giờ cũng lớn hơn rất nhiều so với MongoDB. Hay tốc độ truy vấn của

Một phần của tài liệu Ứng dụng công nghệ node JS và react JS để tối ưu hệ thống quản lý điểm tại trường cao đẳng giao thông vận tải II (Trang 42)

Tải bản đầy đủ (PDF)

(68 trang)