Đề tài: XÂY DỰNG HỆ THỐNG QUẢN LÝ SINH VIÊN, Hiện nay các tổ chức, doanh nghiệp đều áp dụng công nghệ thông tin vào quản lý các công việc thường ngày để thay thế cho việc quản lý một cách thủ công bằng sức người, vốn dễ nhầm lẫn, độ chính xác và tin cậy không cao, và ở lĩnh vực giáo dục cũng không ngoại lệ, Khoa Phát triển Nông thôn mỗi năm phải tiếp đón một lượng không nhỏ sinh viên nhập học. Do đó, đòi hỏi việc quản lý sinh viên phải được thực hiện một cách nhanh chóng và chính xác. Xuất phát từ nhu cầu đó, tôi đã quyết định xây dựng đề tài Quản lý sinh viên Khoa Phát triển Nông thôn. Hệ thống được viết bằng ngôn ngữ lập trình Python trên nền tảng Django Framework với mô hình MVT sử dụng hệ quản trị SQLite và các công nghệ web như HTML, CSS, Javascripts,... có đầy đủ các chức năng cần thiết phục vụ cho quá trình quản lý sinh viên. Đề tài tập trung xây dựng vào các chức năng: Quản lý bộ môn, ngành đào tạo, quản lý học phần, lớp, quản lý điểm, quản lý thông tin, nhập xuất danh sách sinh viên, giảng viên và bảng điểm,... Nhìn chung đề tài đã xây dựng được đầy đủ các yêu cầu cơ bản về một hệ thống quản lý sinh viên.
Trang 1TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN
Trang 2TRƯỜNG ĐẠI HỌC CẦN THƠ TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN
12 - 2022
Trang 3LỜI CẢM ƠN
Để hoàn thành luận văn tốt nghiệp một cách tốt nhất, ngoài sự nỗ lực và
cố gắng hết mình của bản thân tôi còn nhận được nhiều sự ủng hộ và giúp đỡ nhiệt tình khác
Lời đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất tới Th.S
Sử Kim Anh, đã tận tình hướng dẫn và chỉ bảo tôi trong suốt quá trình thực hiện luận văn tốt nghiệp
Tôi xin chân thành cảm ơn Quý thầy, cô trong Trường Công nghệ Thông tin và Truyền thông – Trường Đại học Cần Thơ đã cho tôi nền tảng kiến thức tốt và tạo mọi điều kiện thuận lợi cho tôi học tập và nghiên cứu Mặc dù đã cố gắng hoàn thành tốt công việc được phân công trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót nhất định Rất mong nhận được sự góp ý của Quý thầy, cô cùng các bạn để đề tài được hoàn chỉnh hơn, đồng thời tạo tiền đề tốt hơn cho những nghiên cứu về sau
Cuối cùng tôi xin kính chúc Quý thầy cô Trường Công nghệ Thông tin
và Truyền thông cùng tất cả mọi người dồi dào sức khỏe và thành công trong mọi việc
Tôi xin chân thành cảm ơn!
Cần Thơ, ngày … tháng … năm 2022
Sinh viên thực hiện
Lê Công Lý
Trang 4LỜI CAM KẾT
Tôi xin cam kết luận văn này được hoàn thành dựa trên các kết quả nghiên cứu của tôi và các kết quả nghiên cứu này chưa được dùng cho bất kì luận văn cùng cấp nào khác
Tất cả các tài liệu tham khảo từ các nghiên cứu liên quan đều có nguồn gốc rõ ràng từ danh mục tài liệu tham khảo trong luận văn Trong luận văn, không có việc sao chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham khảo
Cần Thơ, ngày … tháng … năm 2022
Sinh viên thực hiện
Lê Công Lý
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Cần Thơ, ngày … tháng … năm 2022
Giảng viên hướng dẫn
ThS Sử Kim Anh
Trang 6NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Cần Thơ, ngày … tháng … năm 2022
Trang 7MỤC LỤC
Trang
MỤC LỤC v
MỤC LỤC BẢNG ix
MỤC LỤC HÌNH x
DANH MỤC TỪ VIẾT TẮT xii
TÓM TẮT xiii
ABSTRACT xvi
PHẦN 1: GIỚI THIỆU 1
CHƯƠNG 1 : TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 2
1.3 MỤC TIÊU NGHIÊN CỨU 3
1.4 PHẠM VI CỦA ĐỀ TÀI 3
1.4.1 Đối tượng nghiên cứu 3
1.4.2 Phạm vi nghiên cứu 4
1.4.3 Về cơ sở lý thuyết 4
1.4.4 Về chức năng 4
1.4.5 Về kỹ thuật 5
1.5 PHƯƠNG PHÁP NGHIÊN CỨU 6
1.5.1 Thu thập dữ liệu 6
1.5.2 Phân tích hệ thống 6
1.5.3 Phần mềm và công nghệ phát triển 6
CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT 7
Trang 82.1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN 7
2.1.1 Khái niệm về hệ thống thông tin 7
2.1.2 Các thành phần hợp thành của hệ thống thông tin 9
2.2 TỔNG QUAN VỀ DJANGO FRAMEWORK 12
2.2.1 Django là gì? 12
2.2.2 Tìm hiểu về mô hình MVT của Django 12
2.2.3 Tại sao nên sử dụng Django? 14
2.3 NGÔN NGỮ LẬP TRÌNH PYTHON 15
2.3.1 Python là gì? 15
2.3.2 Tính năng chính của Python 15
2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE 16
2.4.1 SQLite là gì? 16
2.4.2 Tính năng của SQLite 17
2.4.3 Lệnh trong SQLite 17
2.4.4 Hạn chế của SQLite 18
PHẦN 2: NỘI DUNG 19
CHƯƠNG 1 : PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19
1.1 MÔ TẢ HỆ THỐNG 19
1.2 PHÂN TÍCH HỆ THỐNG 20
1.2.1 Sơ đồ tương tác của các tác nhân 20
1.2.2 Sơ đồ phân cấp chức năng 23
1.2.3 Sơ đồ luồng dữ liệu ở mức ngữ cảnh 23
1.2.4 Sơ đồ luồng dữ liệu ở mức đỉnh 24
1.2.5 Sơ đồ luồng dữ liệu ở mức đỉnh của tác nhân Phòng đào tạo 24
1.2.6 Mối quan hệ giữa các thực thể 25
Trang 91.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 27
1.3.1 Mô hình dữ liệu mức quan niệm (CDM) 27
1.3.2 Mô hình dữ liệu mức luận lý (LDM) 28
1.3.3 Mô hình dữ liệu mức vật lý (PDM) 29
1.3.4 Mô tả các thực thể 30
CHƯƠNG 2 : KẾT QUẢ NGHIÊN CỨU 35
2.1 CÀI ĐẶT HỆ THỐNG 35
2.1.1 Cài đặt Django 35
2.1.2 Cấu trúc thư mục của một dự án Django 37
2.1.3 Sử dụng PyCharm để lập trình với Django 37
2.2 GIAO DIỆN HỆ THỐNG QUẢN LÝ SINH VIÊN 39
2.2.1 Giao diện Đăng nhập 39
2.2.2 Giao diện trang chủ Phòng đào tạo 40
2.2.3 Giao diện quản lý bộ môn 40
2.2.4 Giao diện quản lý ngành 41
2.2.5 Giao diện quản lý lớp 42
2.2.6 Giao diện quản lý học phần 43
2.2.7 Giao diện quản lý học kỳ 43
2.2.8 Giao diện quản lý giảng dạy 44
2.2.9 Giao diện quản lý giảng viên 45
2.2.10 Giao diện quản lý sinh viên 45
2.2.11 Giao diện chức năng xem điểm danh của phòng đào tạo 46
2.2.12 Chức năng gửi thông báo cho giảng viên 46
2.2.13 Giao diện trang chủ của giảng viên 47
2.2.14 Giao diện xem thông tin giảng viên 47
Trang 102.2.15 Giao diện thêm điểm cho sinh viên 48
2.2.16 Giao diện cập nhật điểm cho sinh viên 48
2.2.17 Giao diện điểm danh sinh viên 49
2.2.18 Giao diện trang chủ của sinh viên 50
2.2.19 Giao diện thông tin sinh viên 50
2.2.20 Giao diện xem thông tin điểm danh 51
2.2.21 Giao diện xem kết quả học tập 51
2.2.22 Giao diện xem thông tin học phí 52
2.2.23 Giao diện đơn xin nghỉ phép 52
CHƯƠNG 3 : KIỂM THỬ VÀ ĐÁNH GIÁ 53
3.1 MÔI TRƯỜNG THỰC NGHIỆM 53
3.2 KẾT QUẢ KIỂM THỬ 53
PHẦN 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54
3.1 KẾT QUẢ ĐẠT ĐƯỢC 54
3.2 ƯU ĐIỂM 54
3.3 KHUYẾT ĐIỂM 55
3.4 HƯỚNG PHÁT TRIỂN 55
Trang 11
MỤC LỤC BẢNG
Trang
Bảng 1: Các phần mềm sử dụng 6
Bảng 2: Hạn chế của SQLite 18
Bảng 3: Thực thể CustomUser 30
Bảng 4: Thực thể Department 30
Bảng 5: Thực thể Assign 30
Bảng 6: Thực thể Major 31
Bảng 7: Thực thể Room 31
Bảng 8: Thực thể StudentResult 31
Bảng 9: Thực thể Session 32
Bảng 10: Thực thể Attendance 32
Bảng 11: Thực thể Grade 32
Bảng 12: Thực thể Staff 33
Bảng 13: Thực thể Subject 33
Bảng 14: Thực thể Student 34
Bảng 15: Kết quả kiểm thử hệ thống 53
Trang 12MỤC LỤC HÌNH
Trang
Hình 1: Mô hình xử lý thông tin đơn giản của hệ thống thông tin 8
Hình 2: Mô hình MVT trong Django Framework 13
Hình 3: Sơ đồ tương tác của tác nhân Sinh viên 20
Hình 4: Sơ đồ tương tác của tác nhân Giảng viên 21
Hình 5: Sơ đồ tương tác của tác nhân Phòng đào tạo 22
Hình 6: Sơ đồ phân cấp chức năng của hệ thống 23
Hình 7: Sơ đồ luồng dữ liệu ở mức ngữ cảnh 23
Hình 8: Sơ đồ luồng dữ liệu ở mức đỉnh 24
Hình 9: Sơ đồ luồng dữ liệu ở mức đỉnh của tác nhân Phòng đào tạo 24
Hình 10: Mối quan hệ giữa bộ môn với ngành 25
Hình 11: Mối quan hệ giữa ngành với lớp 25
Hình 12: Quan hệ giữa lớp với sinh viên 25
Hình 13: Quan hệ giữa bộ môn với giảng viên 26
Hình 14: Quan hệ giữa sinh viên với điểm 26
Hình 15: Mô hình dữ liệu mức quan niệm 27
Hình 16: Mô hình dữ liệu mức luận lý 28
Hình 17: Mô hình dữ liệu mức vật lý 29
Hình 18: Quá trình cài đặt Django 36
Hình 19: Chạy web server trong Django 38
Hình 20: Trang khởi tạo thành công Django 38
Hình 21: Giao diện đăng nhập 39
Hình 22: Thông báo khi nhập sai Email hoặc mật khẩu 40
Trang 13Hình 23: Giao diện trang chủ Phòng đào tạo 40
Hình 24: Giao diện quản lý bộ môn 41
Hình 25: Giao diện quản lý ngành 41
Hình 26: Giao diện quản lý lớp 42
Hình 27: Danh sách sinh viên khi nhấp vào tên lớp 42
Hình 28: Giao diện quản lý học phần 43
Hình 29:Giao diện quản lý học kỳ 43
Hình 30: Giao diện quản lý giảng dạy 44
Hình 31: Giao diện lập kế hoạch giảng dạy 44
Hình 32: Giao diện quản lý giảng viên 45
Hình 33: Giao diện quản lý sinh viên 45
Hình 34: Chức năng xem điểm danh của phòng đào tạo 46
Hình 35: Chức năng gửi thông báo cho giảng viên 46
Hình 36: Giao diện trang chủ của giảng viên 47
Hình 37: Giao diện xem thông tin của giảng viên 47
Hình 38: Giao diện nhập điểm cho sinh viên 48
Hình 39: Giao diện cập nhật điểm cho sinh viên 48
Hình 40: Giao diện điểm danh sinh viên 49
Hình 41: Giao diện cập nhật điểm danh sinh viên 49
Hình 42: Giao diện trang chủ của sinh viên 50
Hình 43: Giao diện thông tin sinh viên 50
Hình 44: Giao diện xem thông tin điểm danh 51
Hình 45: Giao diện xem kết quả học tập 51
Hình 46: Giao diện xem thông tin học phí 52
Hình 47: Giao diện đơn xin nghỉ phép 52
Trang 14DANH MỤC TỪ VIẾT TẮT
CNTT : Công nghệ thông tin
CSDL : Cơ Sở dữ liệu
CSS : Cascading Style Sheets
HTML : HyperText Markup Language
MVT : Model - View - Template
PHP : Hypertext Preprocessor
PNPT : Phát triển Nông thôn
SQL : Structured Query Language
Trang 15TÓM TẮT
Hiện nay các tổ chức, doanh nghiệp đều áp dụng công nghệ thông tin vào
quản lý các công việc thường ngày để thay thế cho việc quản lý một cách thủ
công bằng sức người, vốn dễ nhầm lẫn, độ chính xác và tin cậy không cao, và ở
lĩnh vực giáo dục cũng không ngoại lệ, Khoa Phát triển Nông thôn mỗi năm
phải tiếp đón một lượng không nhỏ sinh viên nhập học Do đó, đòi hỏi việc quản
lý sinh viên phải được thực hiện một cách nhanh chóng và chính xác Xuất phát
từ nhu cầu đó, tôi đã quyết định xây dựng đề tài Quản lý sinh viên Khoa Phát
triển Nông thôn Hệ thống được viết bằng ngôn ngữ lập trình Python trên nền
tảng Django Framework với mô hình MVT sử dụng hệ quản trị SQLite và các
công nghệ web như HTML, CSS, Javascripts, có đầy đủ các chức năng cần
thiết phục vụ cho quá trình quản lý sinh viên Đề tài tập trung xây dựng vào các
chức năng: Quản lý bộ môn, ngành đào tạo, quản lý học phần, lớp, quản lý
điểm, quản lý thông tin, nhập xuất danh sách sinh viên, giảng viên và bảng
điểm, Nhìn chung đề tài đã xây dựng được đầy đủ các yêu cầu cơ bản về một
hệ thống quản lý sinh viên
Từ khoá: Hệ thống, quản lý sinh viên, ứng dụng web, Django, quản lý
Trang 16ABSTRACT
Currently, organizations and businesses are applying technology to manage daily tasks to replace manual management by human effort, which is easy to confuse, with low accuracy and reliability and in the field of education
is no exception, the College of Rural Development has to welcome a large number of students every year Therefore, it is required that student management be done quickly and accurately Stemming from that need, I decided to build the topic of Student Management at College of Rural Development The system is written in Python programming language on Django Framework platform with MVC model using SQLite management system and web technologies such as HTML, CSS, Javascripts, with all necessary functions to serve for student management The topic focuses on the following functions: Subject management, training majors, course management, classes, score management, information management, import and export of student lists, lecturers and transcripts, In general, the topic has fully built the basic requirements of a student management system
Keywords: System, student management, web application, Django,
management
Trang 17PHẦN 1: GIỚI THIỆU CHƯƠNG 1: TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay, Công nghệ thông tin (CNTT) đã trở thành một ngành công nghiệp mũi nhọn, đó là một ngành khoa học kỹ thuật không thể thiếu trong thời đại CNTT phát triển như hiện nay, phải kể đến việc áp dụng tin học vào các lĩnh vực xã hội như quản lý, thông tin kinh tế,… Đã cho ra đời những phần mềm ứng dụng để thay thế về cơ bản các công tác quản lý, giảm nhẹ tới mức tối thiểu việc sử dụng sức người trong công tác quản lý, tăng cường hiệu quả tiết kiệm chi phí thời gian và sức lao động Ở nước ta hiện nay, các chương trình quản lý không còn xa lạ với chúng ta Quản lý đã xâm nhập vào các lĩnh vực như giáo dục, kinh doanh,… Đặc biệt trong giáo dục và đào tạo, công tác quản lý sinh viên trong quá trình học tập là rất quan trọng, phức tạp và đòi hỏi độ chính xác cao Ứng dụng CNTT vào trong quản lý giúp người dùng giảm thiểu việc quản
lý thủ công mất nhiều thời gian, tiết kiệm chi phí và nguồn nhân lực, từ đó nâng cao hiệu quả công việc và chất lượng sản phẩm cũng được nâng cao Cùng với
xu thế đó, việc đưa ứng dụng CNTT vào quản lý sinh viên các trường đại học
là một việc cần thiết để phục vụ cho việc quản lý thông tin sinh viên, quá trình học tập, kết quả học tập, thông tin cá nhân của sinh viên đã mang lại nhiều lợi ích cho công tác quản lý và đảm bảo tính chính xác cũng như sự bảo mật thông tin một cách chặt chẽ Chính vì vậy việc quản lý sinh viên là một việc rất quan trọng hiện nay không chỉ riêng đối với Khoa Phát triển Nông thôn mà còn tất cả các Khoa khác nói chung Việc quản lý các thông tin này đã được nhà trường thực hiện tuy nhiên nhìn về việc quản lý sinh viên ở cấp độ Khoa còn nhiều hạn chế, được thực hiện quản lý bằng sổ sách mất rất nhiều thời gian trong công tác quản lý cũng như trong công tác tìm kiếm Nắm bắt được xu thế đó, tôi đã tìm
hiểu và nghiên cứu xây dựng: “Hệ thống Quản lý sinh viên tại Khoa Phát triển
Nông thôn” nhằm hỗ trợ Khoa trong việc quản lý thông tin sinh viên một cách
có hiệu quả
Trang 181.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Vấn đề hoạt động quản lý sinh viên từ trước đến nay luôn thu hút sự quan tâm không chỉ của các nhà quản lý mà còn của các nhà nghiên cứu trong nước cũng như trên thế giới Đối với Việt Nam, đang tiến hành Công nghiệp hóa – Hiện đại hóa (CNH – HĐH) đất nước trong bối cảnh xu thế toàn cầu hóa và hội nhập quốc tế, hoạt động quản lý luôn là vấn đề được xã hội quan tâm Việc nghiên cứu phấn đấu nâng cao chất lượng hoạt động quản lý bao giờ cũng được xem là nhiệm vụ quan trọng trong công tác quản lý của các cơ sở đào tạo
Ở Việt Nam, nhất là kể từ năm 1990, công tác đào tạo ở nước ta đặc biệt quan tâm Vì vậy cho đến nay đã có khá nhiều công trình đề cập đến công tác quản lý đào tạo, quản lý sinh viên, nhưng phần lớn đều tập trung nhiều vào các chiến lược quản lý công tác đào tạo Trong đề tài này, tôi xin nêu một số công trình nghiên cứu cũng như một số bài viết liên quan đến hoạt động quản lý sinh viên
Tác giả Lê Thị Kim Chi (2009) “Đồ án Xây dựng phần mềm quản lý sinh
viên phòng công tác sinh viên trường Đại học An Giang” […] Ứng dụng công
nghệ thông tin vào các phòng ban công ty, xí nghiệp, trường học là nhu cầu tất yếu Cũng với mục đích trên, Phòng Công tác Sinh viên trường Đại học An Giang đang từng bước tin học hóa công tác quản lý Trong đó công tác quản lý
hồ sơ, chỗ ở, vay vốn,… của sinh viên là rất cần thiết Bởi lẽ công việc quản lý này của phòng đòi hỏi phải xử lý một số lượng lớn thông tin với độ chính xác cao Trong khi đó số lượng sinh viên ngày càng gia tăng nên công tác quản lý
dễ dẫn đến sai sót, tốn thời gian là không thể tránh khỏi Vì thế sự ra đời của phần mềm quản lý sinh viên mang lại những lợi ích: Tiết kiệm chi phí, thời gian, tránh sai sót cho người quản lý Công tác lưu trữ được an toàn và tiện ích
Tác giả VVOB Việt Nam và các Sở Giáo dục và Đào tạo (GD&ĐT) phối
hợp biên soạn (2013) Giáo trình “Ứng dụng Công nghệ thông tin trong quản lý
Nhà trường” quyển giáo trình góp phần nâng cao năng lực cán bộ quản lý trường
học, năm 2013, VVOB Việt Nam và các Sở GD&ĐT phối hợp phát triển cuốn tài liệu tập huấn Ứng dụng CNTT trong quản lý nhà trường, chú trọng đến những
Trang 19công cụ CNTT cụ thể dễ sử dụng và hữu ích trong những khía cạnh nhất định của công tác quản lý
Qua tìm hiểu các đề tài và các tài liệu nêu trên cho thấy mỗi đề tài hoặc tài liệu đã đi sâu giải quyết một số các khía cạnh, đề xuất một số giải pháp, biện pháp nhằm góp phần nâng cao chất lượng hoạt động quản lý ở phạm vi nhất
định Vì vậy, đề tài “Xây dựng hệ thống Quản lý sinh viên Khoa Phát triển Nông thôn” có vai trò và ý nghĩa quan trọng trong việc quản lý sinh viên và
nâng cao năng lực hoạt động quản lý tại Khoa PTNT
1.3 MỤC TIÊU NGHIÊN CỨU
Một là: Nghiên cứu về ứng dụng CNTT trong công tác quản lý sinh viên Khoa Phát triển Nông thôn tại Trường Đại học Cần Thơ nhằm góp phần nâng cao chất lượng phục vụ cho quá trình kiểm tra, kiểm soát, thống kê số lượng một cách có hiệu quả cho hoạt động quản lý sinh viên của Khoa, đảm bảo thống nhất trong cách quản lý sinh viên thông qua đó mang lại hiệu quả cho hoạt động quản lý, điều hành
Hai là: Qua khảo sát thực trạng công tác quản lý sinh viên tại Khoa Phát triển Nông thôn - Trường Đại học Cần Thơ, phân tích, đánh giá cụ thể công tác quản lý sinh viên, ứng dụng CNTT trong quản lý và đề xuất giải pháp khắc phục
Ba là: Nghiên cứu đưa ra hệ thống ứng dụng vào công tác quản lý sinh viên tại Khoa để góp phần nâng cao hiệu quả, đổi mới phương pháp, hiện đại hóa hơn trong công tác quản lý sinh viên của Khoa
1.4 PHẠM VI CỦA ĐỀ TÀI
1.4.1 Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài này là xây dựng hệ cơ sở dữ liệu công tác của Khoa Phát triển Nông thôn
Trang 201.4.2 Phạm vi nghiên cứu
Do thời gian nghiên cứu có hạn nên đề tài chỉ tập trung nghiên cứu trong phạm vi tại Khoa Phát triển Nông thôn - Trường Đại học Cần Thơ
1.4.3 Về cơ sở lý thuyết
Vận dụng lý thuyết phân tích hệ thống thông tin đã học để xây dựng các
mô hình phục vụ cho đề tài
Nắm vững phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu
Có kiến thức cơ bản về lập trình hướng đối tượng
Có kiến thức cơ bản về ngôn ngữ lập trình Python, HTML, CSS, Javascript và Django, Flask Framework
Cách sử dụng Bootstrap, JQuery, AJAX, JSON
Nắm vững kiến thức cơ bản về mô hình MVT
1.4.4 Về chức năng
Hệ thống Quản lý sinh viên Khoa Phát triển Nông thôn có các chức năng như sau:
Phòng đào tạo (Admin):
Đăng nhập – Đăng xuất
Import/Export file dữ liệu
Tổng hợp và xử lý
Quản lý bộ môn
Quản lý ngành và chương trình đào tạo của ngành
Quản lý thông tin thông tin các lớp học phần: mã học phần, tên học phần, mã cán bộ giảng dạy, số tiết học trong một buổi,…
Quản lý phòng học
Quản lý thông tin các cán bộ giảng dạy: mã cán bộ, tên cán bộ,…
Quản lý thông tin các sinh viên: mã số sinh viên, tên sinh viên,…
Quản lý thông tin các tiết đăng ký của cán bộ giảng dạy
Quản lý thông báo cho giảng viên và sinh viên
Trang 21 Cán bộ giảng dạy:
Đăng nhập – Đăng xuất
Quản lý lớp học phần được phân công
Nhập và chỉnh sửa điểm cho lớp học phần
Điểm danh và cập nhật điểm danh cho sinh viên
Xem lịch giảng dạy trong tuần
Cập nhật thông tin (địa chỉ, số điện thoại,…) và đổi mật khẩu
Gửi và phản hồi thông báo cho sinh viên, phòng đào tạo
Sinh viên:
Đăng nhập – Đăng xuất
Xem lịch học trong tuần
Xem kết quả học tập theo chương trình đào tạo
Cập nhật thông tin (địa chỉ, số điện thoại,…) và đổi mật khẩu
Xem thông tin học phí trong học kỳ
Gửi và phản hồi thông báo cho cán bộ giảng dạy
1.4.5 Về kỹ thuật
Xây dựng giao diện dễ nhìn, thân thiện
Tốc độ truy xuất nhanh
Đảm bảo tính chính xác dữ liệu
Đảm bảo an toàn, bảo mật
Chương trình dễ dàng mở rộng và phát triển
Sử dụng hệ quản trị cơ sở dữ liệu SQLite để quản lý cơ sở dữ liệu
Sử dụng ngôn ngữ lập trình Python, HTML, CSS, Bootstrap, Javascript, jQuery, Ajax,…
Sử dụng Django Framework 4.1.3
Chương trình chạy tốt trên các trình duyệt thông dụng như: Google Chrome, Cốc Cốc, Opera,…
Trang 221.5 PHƯƠNG PHÁP NGHIÊN CỨU
1.5.1 Thu thập dữ liệu
Thu thập thông tin từ nhiều nguồn khác nhau để từ đó làm cơ sở đánh giá
cụ thể, phân tích chi tiết và nghiên cứu xây dựng phần lý luận qua đó có đề xuất phương án dựa trên ý kiến chủ quan
Tìm kiếm, tham khảo cách thức hoạt động của các hệ thống tương tự Rút kinh nghiệm từ những hạn chế, khó khăn trong việc quản lý sinh viên từ đó xây dựng những dữ liệu cần thiết cho hệ thống
1.5.2 Phân tích hệ thống
Quá trình xây dựng hệ thống gồm các bước sau:
Thu thập dữ liệu
Thiết kế cơ sở dữ liệu
Thiết kế giao diện
1 PyCharm 2022.2.1 Lập trình ngôn ngữ Python, HTML, CSS,
JavaScript, jQuery, Ajax,…
2 PowerDesigner 16.5 Thiết kế các mô hình
3 Microsoft Excel 2013 Nhập, xuất dữ liệu
Trang 23CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN VỀ HỆ THỐNG THÔNG TIN
2.1.1 Khái niệm về hệ thống thông tin
Hệ thống thông tin (HTTT) là một hệ thống được tổ chức thống nhất từ trên xuống dưới, có chức năng xử lý, phân tích, tổng hợp các thông tin giúp các
“nhà quản lý” quản lý tốt cơ sở của mình, và trợ giúp ra quyết định hoạt động kinh doanh Một hệ thống quản lý được phân thành nhiều cấp từ trên xuống dưới
và chuyển từ dưới lên trên Ngày nay HTTT được ứng dụng rộng rãi trong cuộc sống vì có sự hỗ trợ của máy tính và chúng ta gọi là HTTT tự động hoá Để hiểu
rõ thuật ngữ này chúng ta xuất phát từ khái niệm hệ thống chung nhất, hệ thống nghiệp vụ (Business) rồi đến HTTT
2.1.1.1 Các hệ thống thông tin
Hệ thống nghiệp vụ: là một loại hệ thống bao gồm các hoạt động kinh
doanh, dịch vụ chẳng hạn như sản xuất, phân phối, lưu thông các sản phẩm, các hoạt động giáo dục, y tế, Nghiệp vụ là hoạt động của con người nhằm mang lại lợi ích hoặc lợi nhuận Việc xác định mục đích hoạt động nghiệp vụ vì “lợi ích” hay “lợi nhuận” chỉ mang tính tương đối và nó thật sự cần thiết để sau này
ta có thể kiểm nghiệm hệ thống đã đạt được yêu cầu và mục tiêu chưa?
Đặc điểm của các hệ thống nghiệp vụ vì có sự tham gia của con người nên hệ thống có hai đặc điểm chính là cơ chế điều khiển và thông tin Cơ chế điều khiển là sự quản lý trong nghiệp vụ và điều khiển cho hệ thống hướng đúng mục đích, đạt kết quả với chất lượng cao
Một hệ thống nghiệp vụ có thể phân làm ba hệ thống con:
Hệ thống quyết định: là hệ thống bao gồm con người, phương tiện và các
phương pháp tham gia đề xuất quyết định trong các hoạt động nghiệp vụ
Hệ thống tác nghiệp: là hệ thống bao gồm con người, phương tiện và các
phương pháp tham gia trực tiếp thực hiện các hoạt động nghiệp vụ (sản xuất trực tiếp) Đó là các hoạt động nhằm thực hiện có tính cách cạnh tranh để đạt được mục tiêu đã xác định của hệ quyết định
Trang 24 Hệ thống thông tin: là hệ thống bao gồm con người, phương tiện và các
phương pháp tham gia xử lý thông tin của các hoạt động nghiệp vụ (kinh doanh hay dịch vụ)
2.1.1.2 Nhiệm vụ và vai trò của hệ thống thông tin
Chức năng chính của HTTT là xử lý thông tin của hệ thống nghiệp vụ Quá trình xử lý thông tin như một mô hình hộp đen bao gồm: Bộ xử lý, thông tin đầu vào, thông tin đầu ra và thông tin phản hồi cần thiết của hệ thống Bộ xử
lý biến đổi dữ liệu đầu vào và cho ra thông tin đầu ra Hình 1 dưới đây chỉ ra
mô hình xử lý thông tin đơn giản
Nguồn: “Bài giảng Phân tích và thiết kế HTTT” Tác giả: Thạc Bình Cường
Hình 1: Mô hình xử lý thông tin đơn giản của hệ thống thông tin
Thông tin trong hệ thống nghiệp vụ có thể gồm hai loại chính:
Thông tin tự nhiên: là loại thông tin ở nguyên dạng khi nó phát sinh như
tiếng nói, công văn, hình ảnh v.v Việc xử lý thông tin này thuộc về công tác văn phòng với các kỹ thuật mang đặc điểm khác nhau
Thông tin có cấu trúc: là thông tin được cấu trúc hoá với khuôn dạng
nhất định thường biểu diễn dưới dạng sổ sách, bảng biểu, sơ đồ quy định
và nó dễ dàng được tin học hoá
Nhiệm vụ của hệ thống thông tin:
Xét về quan điểm hệ thống, nhiệm vụ HTTT có các hoạt động đối nội và đối ngoại:
Trang 25 Về đối ngoại: Hệ thống thông tin thu nhận thông tin từ môi trường bên ngoài và đưa thông tin ra môi trường bên ngoài Thí dụ như thông tin về giá cả, thị trường, sức lao động, nhu cầu hàng hoá,…
Về đối nội: Hệ thống thông tin là cầu nối liên lạc giữa các bộ phận của
hệ nghiệp vụ Nó cung cấp cho hệ tác nghiệp, hệ quyết định các thông tin gồm hai loại tự nhiên và cấu trúc nhằm phản ánh cơ cấu tổ chức nội
bộ và tình trạng hoạt động nghiệp vụ của hệ thống
Vai trò của hệ thống thông tin:
Hệ thống thông tin đóng vai trò trung gian giữa hệ thống nghiệp vụ và môi trường, giữa hệ thống con quyết định và hệ thống con tác nghiệp, cho ta cách nhìn nhận vai trò của hệ thống thông tin trong hệ thống nghiệp vụ Mỗi hệ thống con đều có đầu vào đầu ra Ngoài ra, HTTT cung cấp các thông tin cho các hệ quyết định và tác nghiệp Các thông tin xuất phát từ hệ tác nghiệp và hệ quyết định sẽ được HTTT chế biến, tổng hợp trước khi đưa ra môi trường bên ngoài
2.1.2 Các thành phần hợp thành của hệ thống thông tin
2.1.2.1 Đặc điểm của hệ thống thông tin
Hệ thống thông tin là hệ thống được tổ chức thống nhất từ trên xuống dưới có chức năng tổng hợp các thông tin giúp các nhà quản lý tốt cơ sở của mình và trợ giúp ra quyết định hoạt động nghiệp vụ Một hệ thống quản lý các nghiệp vụ được phân thành nhiều cấp do vậy các thông tin được xử lý và luân chuyển từ mức trên xuống dưới và chuyển từ các mức dưới lần lượt lên dần mức trên
2.1.2.2 Các thành phần cơ bản của hệ thống thông tin
Con người: HTTT cung cấp thông tin cho mọi người bao gồm cả người
quản lý và người sử dụng cuối Người sử dụng cuối là người tương tác trực tiếp với hệ thống và nó cung cấp dữ liệu cho hệ thống đồng thời nhận thông tin từ
nó
Trang 26Thủ tục: Đặc trưng bởi các mẫu bao gồm các dữ liệu mô tả công việc của
tất cả mọi người, cả người sử dụng cuối và nhân viên trong HTTT Thủ tục xác định các quy trình, thao tác và các công thức tính toán
Phần cứng: Bao gồm tất cả các thiết bị vật lý sử dụng trong HTTT Thiết
bị này bao gồm phần cứng máy tính như máy tính, các thiết bị đầu cuối, các thiết bị ngoại vi, máy in và cả các thiết bị không thuộc máy tính như máy chữ, máy kiểm tra chữ ký Nguồn cung cấp cần thiết cho các nhà điều hành máy tính như ruy băng, giấy viết và các mẫu tập hợp dữ liệu đặc biệt
Phần mềm: Bao gồm cả phần mềm hệ thống và phần mềm ứng dụng
Phần mềm hệ thống là các chương trình điều khiển phần cứng và môi trường phần mềm Các chương trình này gồm hệ điều hành, phần mềm giao tiếp, hệ thống quản trị cơ sở dữ liệu và các chương trình tiện ích Phần mềm ứng dụng bao gồm các chương trình trực tiếp hỗ trợ hệ thống trong việc xử lý dữ liệu để tạo ra thông tin yêu cầu
Tệp (File) dữ liệu: Hầu hết dữ liệu được xử lý trong HTTT phải được giữ
lại vì lý do pháp luật hoặc vì sự cần thiết được xử lý trong tương lai Những dữ liệu này được lưu trong file và cơ sở dữ liệu trên máy tính hoặc dưới dạng giấy trong các hồ sơ văn phòng Những file này là thành phần HTTT, được tạo ra trực tiếp hoặc lưu trữ trong file
Nếu chỉ xét về khía cạnh xử lý thông tin thì HTTT chỉ bao gồm hai thành phần chính là dữ liệu và xử lý
Các dữ liệu là các thông tin được cấu trúc hoá Với mỗi cấp quản lý lượng thông tin xử lý có thể rất lớn, đa dạng và biến động cả về chủng loại và cách thức xử lý Thông tin cấu trúc bao gồm luồng thông tin vào và thông tin ra
Luồng thông tin vào:
Các thông tin cần thiết cho quá trình xử lý, có thể là các thông tin phản ánh cấu trúc doanh nghiệp và các thông tin phản ánh hoạt động của doanh nghiệp Chúng được phân thành ba loại sau:
Trang 27 Thông tin cần cho tra cứu: Thông tin dùng chung cho hệ thông và ít bị thay đổi Các thông tin này thường được cập nhật một lần và chỉ dùng cho tra cứu khi xử lý thông tin sau này
Thông tin luân chuyển chi tiết: Loại thông tin chi tiết về hoạt động của đơn vị, khối lượng thông tin thường rất lớn, cần phải xử lý kịp thời
Thông tin luân chuyển tổng hợp: Loại thông tin được tổng hợp từ hoạt động của các cấp thấp hơn, thông tin này thường cô đọng, xử lý định kỳ theo lô
Luồng thông tin ra:
Thông tin đầu ra được tổng hợp từ các thông tin đầu vào và phụ thuộc
vào nhu cầu quản lý trong từng trường hợp cụ thể, từng đơn vị cụ thể Thông tin
ra là kết quả của việc tra cứu nhanh về một đối tượng cần quan tâm, đồng thời
phải đảm bảo sự chính xác và kịp thời
Các thông tin đầu ra quan trọng nhất được tổng hợp trong quá trình xử
lý là các báo cáo tổng hợp, thống kê, thông báo Các mẫu biểu báo cáo thống kê phải phản ánh cụ thể trực tiếp, sát với từng đơn vị
Ngoài những yêu cầu được cập nhật thông tin kịp thời cho hệ thống, luồng thông tin ra phải được thiết kế linh hoạt mềm dẻo Đây là chức năng thể hiện tính mở, và khả năng giao diện của hệ thống với môi trường bên ngoài Thông tin đầu ra gắn với chu kỳ thời gian tuỳ ý theo yêu cầu của bài toán quản
lý cụ thể, từ đó ta có thể lọc bớt được thông tin thừa trong quá trình xử lý
Các xử lý là các quy trình, các phương pháp, chức năng xử lý thông tin
và biến đổi thông tin Các xử lý nhằm vào hai mục đích chính:
Sản sinh các thông tin có cấu trúc theo thể thức quy định như các chứng
từ giao dịch, các sổ sách báo cáo thông kê
Cung cấp các thông tin trợ giúp quyết định, thông thường là các thông tin cần thiết cho lựa chọn quyết định của lãnh đạo, hoặc các lựa chọn tự động trong các quyết định dựa trên giải thuật
Trang 282.2 TỔNG QUAN VỀ DJANGO FRAMEWORK
2.2.1 Django là gì?
Django là một Framework lập trình Web bậc cao, mã nguồn mở miễn phí và được phát hành công khai lần đầu tiên vào năm 2005 Framework này ra đời để hỗ trợ xây dựng các ứng dụng web và được triển khai ngay trên máy chủ web, giúp các nhà phát triển nhanh chóng tạo ra một giao diện website giàu tính năng, bảo mật và có thể mở rộng
Lý do khiến Django phổ biến là bởi Framework này sở hữu một cộng đồng rất lớn Thậm chí, họ đã xây dựng một trang web riêng biệt dành cho Django, nơi các nhà phát triển có thể đóng góp các Package của bên thứ ba, bao gồm xác thực, ủy quyền, hệ thống CMS (Content Management System) chính thức được hỗ trợ bởi Django, tiện ích bổ sung thương mại điện tử,…
Ưu điểm rất lớn của Framework Django là nó có các mô hình giao thoa hoàn hảo nhưng nó cũng có thể hoạt động với việc triển khai các mô hình ánh
xạ hướng đối tượng (Data Mapper Pattern) Nó cũng giúp dễ dàng tuần tự hóa
dữ liệu và phân phát theo định dạng XML hoặc JSON Điều này rất hữu ích khi tạo dịch vụ web hoặc một trang web hoàn toàn cung cấp dữ liệu được sử dụng bởi các trang web hoặc ứng dụng khác
2.2.2 Tìm hiểu về mô hình MVT của Django
Django sử dụng mô hình MVT (Model-View-Template) thay vì mô hình MVC (Model-View-Controller) Đây là một mô hình bao gồm code HTML với ngôn ngữ Template của Django, được thiết kế với mục đích chính là hỗ trợ những người đã từng làm việc với HTML Mô hình MVT bao gồm:
Model (M): là lớp có chức năng truy cập và lưu trữ dữ liệu Từ cách thức truy cập, phương thức dữ liệu, cho đến mối quan hệ các dữ liệu Model trong Django là một cách định nghĩa về cách lưu trữ thông tin, một Model bao gồm các trường và các hành động về dữ liệu sẽ lưu trữ, định nghĩa này không khác gì định nghĩa Lớp (Class) trong lập trình hướng đối
Trang 29tượng, nói cách khác Model chính là cách gọi khác của Lớp trong Django
View (V): là lớp chứa các logic, giúp truy cập dữ liệu qua Model và truyền đến Template tương ứng Trong Django, một trang web được tạo
ra bởi các hàm View, Django sẽ chọn View nào tùy thuộc vào trình định
vị tài nguyên thống nhất (URL) mà chúng ta đã thiết lập
Template (T): là lớp hiển thị Nó lưu trữ những gì liên quan đến việc hiển thị dữ liệu trên web hoặc các nền tảng khác Hệ thống Template của Django cung cấp các thẻ có các chức năng tương tự như các câu lệnh trong Python, chẳng hạn như thẻ if dùng để kiểm tra điều kiện, thẻ for dùng trong vòng lặp,… Ngoài ra, nếu dùng Django Admin Site (một hệ thống quản lý Model của Django) thì Django cũng hỗ trợ nhiều cách để giao tiếp dữ liệu với Template
Có thể thấy, mô hình MVT là biến thể của mô hình MVC Về bản chất MVT và MVC đều giống nhau, đều chia ứng dụng ra thành ba thành phần: phần
xử lý logic, phần hiển thị và phần thao tác với cơ sở dữ liệu Hình 2 bên dưới chỉ ra mô hình MVT trong Django Framework
Nguồn: https://blog.aiprobably.com
Hình 2: Mô hình MVT trong Django Framework
Trang 302.2.3 Tại sao nên sử dụng Django?
2.2.3.1 Django đơn giản và nhanh chóng
Một trong những mục tiêu chính của Django là đơn giản hóa công việc cho lập trình viên Để làm điều đó, Django Framework sử dụng:
Nguyên tắc phát triển nhanh chóng: tức là các nhà phát triển có thể thực hiện nhiều phép lặp một lúc thay vì phải bắt đầu lại từ đầu
Nguyên lý DRY (Don’t Repeat Yourself – Không lặp lại) có nghĩa là các nhà phát triển có thể tái sử dụng các đoạn mã hiện có và tập trung vào
nó Các đoạn mã trùng lặp không cần thiết sẽ được framework này loại
bỏ, từ đó giảm số lượng mã, tiết kiệm được nhiều thời gian hơn
2.2.3.2 Bảo mật
Bảo mật cũng là ưu tiên hàng đầu của Django Nó là một trong những Framework có hệ thống bảo mật tốt nhất hiện nay Nhờ hệ thống đó, các nhà phát triển có thể tránh các vấn đề về bảo mật phổ biến như: Clickjacking, Cross-site scripting, Cross-site request forgery, SQL injection,… Framework này còn thường xuyên phát hành các bản vá bảo mật, nó được xem là Framework đi đầu trong việc phản hồi các lỗ hổng bảo mật và cảnh báo các Framework khác
2.2.3.3 Phù hợp với mọi dự án website
Với Django, có thể giải quyết các dự án ở bất kỳ quy mô nào (từ trang web đơn giản cho đến những ứng dụng web truyền tải cao) Django có nhiều tính năng bổ sung và có thể mở rộng Có thể tạo các ứng dụng xử lý lưu lượng truy cập lớn hoặc khối lượng lớn thông tin thông qua Django
Django hoạt động đa nền tảng (cross-platform), có thể chạy dự án trên Mac, Linux hoặc PC đều được Django hoạt động với hầu hết các cơ sở dữ liệu chính và cho phép sử dụng cơ sở dữ liệu khác nhau tùy thuộc vào dự án, thậm chí có thể sử dụng nhiều cơ sở dữ liệu cùng lúc
Trang 312.2.3.4 Cộng đồng người dùng và thiết lập hoàn thiện
Django khởi tạo khá tốt, điều này đã được chứng nhận bởi thời gian và một số người sử dụng khung công tác này Nó có một cộng đồng người dùng lớn, được hỗ trợ truy cập thông qua nhiều diễn đàn, kênh và các chuyên trang web Dễ dàng nhận được sự trợ giúp khi các vấn đề liên quan đến Django cũng như dễ dàng tìm thấy nhà phát triển chạy dự án cho công ty
là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và linh động, làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết mã kịch bản và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
2.3.2 Tính năng chính của Python
Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ
ràng Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như C++, Java, C# Python làm cho việc lập trình trở nên thú vị, cho phép tập trung vào những giải pháp chứ không phải cú pháp
Miễn phí, mã nguồn mở: Có thể tự do sử dụng và phân phối Python, thậm
chí là dùng nó cho mục đích thương mại Vì Python là ứng dụng mã nguồn mở, không những có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của nó Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập nhật
Khả năng di chuyển: Các chương trình Python có thể di chuyển từ nền
tảng này sang nền tảng khác và chạy nó mà không có bất kỳ thay đổi nào Nó chạy liền mạch trên hầu hết tất cả các nền tảng như Windows, macOS, Linux,…
Trang 32Khả năng mở rộng và có thể nhúng: Giả sử một ứng dụng đòi hỏi sự
phức tạp rất lớn, có thể dễ dàng kết hợp các phần đoạn mã bằng C, C++ và những ngôn ngữ khác (có thể gọi được từ C) vào mã Python Điều này sẽ cung cấp cho ứng dụng của người dùng những tính năng tốt hơn cũng như khả năng
có thể được thực hiện mà không cần biên dịch, những ngôn ngữ lập trình khác khó có thể làm được
Ngôn ngữ thông dịch cấp cao: Không giống như C/C++, với Python,
không phải lo lắng những nhiệm vụ khó khăn như quản lý bộ nhớ, dọn dẹp những dữ liệu vô nghĩa, Khi chạy đoạn mã Python, nó sẽ tự động chuyển đổi
mã sang ngôn ngữ máy tính có thể hiểu Không cần lo lắng về bất kỳ hoạt động
ở cấp thấp nào
Thư viện tiêu chuẩn lớn: Để giải quyết những tác vụ phổ biến, Python có
một số lượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình trở nên dễ thở hơn rất nhiều, đơn giản vì không phải tự viết tất cả đoạn mã Ví dụ: Cần kết nối
cơ sở dữ liệu MySQL trên máy chủ web, có thể nhập thư viện MySQLdb và sử dụng nó Những thư viện này được kiểm tra kỹ lưỡng và được sử dụng bởi hàng trăm người Vì vậy, có thể chắc chắn rằng nó sẽ không làm hỏng đoạn mã hay ứng dụng của mình
Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập
trình hướng đối tượng (OOP) giúp giải quyết những vấn đề phức tạp một cách trực quan Với OOP, có thể phân chia những vấn đề phức tạp thành những tập nhỏ hơn bằng cách tạo ra các đối tượng
2.4 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLITE
2.4.1 SQLite là gì?
SQLite là hệ quản trị cơ sở dữ liệu (DBMS) quan hệ tương tự như MySQL, Đặc điểm nổi bật của SQLite so với các DBMS khác là gọn, nhẹ, đơn giản, đặt biệt không cần mô hình server-client, không cần cài đặt, cấu hình hay khởi động nên không có khái niệm tài khoản, mật khẩu hay quyền hạn trong SQLite Dữ liệu cũng được lưu ở một file duy nhất SQLite thường không được
Trang 33sử dụng với các hệ thống lớn nhưng với những hệ thống ở quy mô vừa và nhỏ thì SQLite không thua các DBMS khác về chức năng hay tốc độ Vì không cần cài đặt hay cấu hình nên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm,… vì tránh được những rắc rối trong quá trình cài đặt
2.4.2 Tính năng của SQLite
Giao dịch trong SQLite tuân thủ theo nguyên tắc ACID (viết tắt của Atomicity, Consistency, Isolation, Durability) là một khái niệm cơ sở dữ liệu
mà các chuyên gia thường tìm kiếm khi đánh giá các cơ sở dữ liệu và kiến trúc ứng dụng Đối với một cơ sở dữ liệu đáng tin cậy tất cả bốn thuộc tính trên cần phải đạt được
SQLite hỗ trợ với đầy đủ tính năng với các khả năng nâng cao như các chỉ mục một phần, các chỉ mục về các biểu thức, JSON và các biểu thức bảng chung Một sở dữ liệu hoàn chỉnh được lưu trữ trong một tệp đa nền tảng duy nhất Phù hợp với sử dụng dưới dạng định dạng tệp ứng dụng Hỗ trợ các cơ sở
dữ liệu có kích thước terabyte và các chuỗi có kích thước gigabyte Không cần cấu hình, thiết lập hoặc quản trị Trong một số trường hợp, SQLite nhanh hơn
hệ thống tệp tin trực tiếp I/O
SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và Windows (Win32, WinCE, WinRT)
2.4.3 Lệnh trong SQLite
Các lệnh SQLite chuẩn để tương tác với cơ sở dữ liệu quan hệ là giống như SQL Chúng là CREATE, SELECT, INSERT, UPDATE, DELETE và DROP Những lệnh này có thể được phân chia thành ba nhóm tùy theo tính năng hoạt động của chúng:
Nhóm ngôn ngữ định nghĩa dữ liệu (DDL)
Nhóm ngôn ngữ thao tác dữ liệu (DML)
Nhóm ngôn ngữ truy vấn dữ liệu (DQL)
Trang 342.4.4 Hạn chế của SQLite
Một số tính năng của SQL92 không được hỗ trợ trong SQLite được liệt
kê trong Bảng 2.1 dưới đây:
Bảng 2: Hạn chế của SQLite
RIGHT OUTER JOIN Chỉ có LEFT OUTER JOIN được thực hiện
FULL OUTER JOIN Chỉ có LEFT OUTER JOIN được thực hiện
ALTER TABLE Các biến thể RENAME TABLE và ADD
COLUMN của lệnh ALTER TABLE được hỗ trợ DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT không được hỗ trợ
không hỗ trợ FOR EACH STATEMENT
VIEWs VIEWs trong SQLite là chỉ đọc, không thể thực
thi câu lệnh DELETE, INSERT hoặc UPDATE trên một view
GRANT và REVOKE Các quyền truy cập duy nhất có thể được áp dụng
là các quyền truy cập file thông thường (normal file) của hệ điều hành
Nguồn: https://freetuts.net/gioi-thieu-sqlite-sqlite-la-gi-1719.html
Trang 35PHẦN 2: NỘI DUNG CHƯƠNG 1: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1.1 MÔ TẢ HỆ THỐNG
Công tác quản lý sinh viên đóng vai trò hết sức quan trọng đối với hoạt
động của một Khoa trong các trường Đại học và Cao đẳng Đề tài “Xây dựng hệ
thống quản lý sinh viên Khoa Phát triển Nông thôn” đặt ra các vấn đề cơ bản
như sau: Thể hiện được mô hình tổ chức quản lý sinh viên theo ngành, theo lớp,… Quản lý các môn học của các lớp theo học kỳ và kết quả học tập của sinh viên đối với các môn học đó Hệ thống còn phải cho phép tạo ra các báo cáo từ kết quả học tập của sinh viên nhằm phục vụ công tác điều hành huấn luyện như: Tổng kết kết quả học tập theo kỳ, theo năm, in bảng điểm học kỳ,…
Ngoài các chức năng chính như trên, hệ thống này còn có thêm một số chức năng khác như: cập nhật các danh mục lớp, danh mục loại hình đào tạo, danh mục ngành học,… Có thể mô tả sơ lược các công việc chính (đối với một khóa học) trong hệ thống quản lý sinh viên của một Khoa như sau:
Với mỗi lớp đã có cập nhật danh sách sinh viên của lớp
Với mỗi học kỳ cần cập nhật danh sách học phần, danh sách các lớp học phần sẽ mở trong kỳ
Khi có kết quả thi của các lớp học phần, giảng viên sẽ cập nhật điểm học phần cho lớp theo học kỳ
Với nhiều chức năng được tích hợp để hỗ trợ cho việc quản lý được thuận tiện, hệ thống gồm các User được phân quyền để thực hiện các nhiệm vụ và chức năng khác nhau giúp công việc được phân chia rõ ràng, đem lại sự tiện dụng cho người dùng cũng như cho quá trình bảo trì, phát triển sau này
Trang 361.2 PHÂN TÍCH HỆ THỐNG
1.2.1 Sơ đồ tương tác của các tác nhân
Sơ đồ tương tác (Use Case) là một kỹ thuật thường được sử dụng trong
hệ thống và kỹ thuật phần mềm để các đối tượng người dùng có thể nắm rõ được các yêu cầu chức năng của hệ thống Ngoài ra, sơ đồ tương tác còn là một kỹ thuật có khả năng mô tả sự tương tác giữa hệ thống và người dùng trong cùng một môi trường và vì cùng một mục đích cụ thể Sự tương tác này có thể là một trong hai trường hợp sau:
Cách thức các đối tượng người dùng bên ngoài tương tác với hệ thống
Cách thức hệ thống này tương tác với những hệ thống khác
1.2.1.1 Sơ đồ tương tác của tác nhân Sinh viên
Tên tác nhân: Sinh viên
Điều kiện: Tác nhân sinh viên phải đăng nhập vào hệ thống
Mô tả: Tác nhân sinh viên khi đăng nhập vào hệ thống sẽ có thể thực hiện các chức năng như: Tìm điểm, tìm lịch học, xem được thông tin điểm danh và thông tin học phí trong một học kỳ Sơ đồ tương tác của tác nhân sinh viên được
mô tả qua Hình 3 bên dưới
Hình 3: Sơ đồ tương tác của tác nhân Sinh viên
<<extend>>
Sinh viên
Đăng nhập
Tìm theo mã học phần
Tìm theo mã học kỳ
Tìm điểm
Tìm lịch học
Tra cứu học phí
Tra cứu điểm danh
Đăng xuất