MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC TỪ VIẾT TẮT MỞ ĐẦU 1 1. Tính cấp thiết của đề tài 1 2. Nội dung nghiên cứu của đề tài 1 3. Đối tượng và phạm vi nghiên cứu của đề tài 1 4. Cấu trúc của đề tài 2 CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 3 1.1. Tổng quan về phần mềm 3 1.1.1. Phần mềm 3 1.1.2. Các đặc trưng của phần mềm 3 1.1.3. Phân loại phần mềm 5 1.1.4. Mô hình phát triển được sử dụng trong bài 6 1.2. Giới thiệu về Công ty Bảo Anh 7 1.3. Công cụ phát triển 8 1.3.1. Lập trình ASP.NET (C) 8 1.3.2. Tổng quan về SQL 10 1.3.3. Mô hình cơ sở dữ liệu ClientServer 13 1.3.4. Ngôn ngữ lập trình C 16 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19 2.1. Khảo sát bài toán 19 2.1.1. Khảo sát sơ bộ 19 2.1.2. Mô tả bài toán 19 2.2. Phân tích thiết kế hệ thống. 20 2.2.1. Sơ đồ Usecase. 20 2.2.2. Biểu đồ tuần tự và trạng thái các chức năng 24 2.3. Thiết kế cơ sở dữ liệu 36 2.3.1. Bảng hồ sơ nhân viên 37 2.3.2. Bảng nhân viên 37 2.3.3. Bảng chức vụ 38 2.3.4. Bản dân tộc 38 2.3.5. Bảng học vấn 38 2.3.6. Bảng lương 38 2.3.7. Bảng phòng ban 38 2.3.8. Bảng chứng minh nhân dân 39 2.3.9. Bảng tôn giáo 39 2.3.10. Bảng quan hệ gia đình 39 2.3.11. Mô hình quan hệ 40 CHƯƠNG 3: XÂY DỰNG PHẦN MỀM 41 3.1. Giao diện đăng nhập 41 3.2. Giao diện quản lý nhân viên 41 3.3. Giao diện quản lý phòng ban 42 3.4. Giao diện quản lý chức vụ 43 3.5. Giao diện quản lý dân tộc 44 3.6. Giao diện quản lý tôn giáo 45 3.7. Giao diện quản lý học vấn 46 3.8. Giao diện quản lý lương 47 KẾT LUẬN 49 DANH MỤC TÀI LIỆU THAM KHẢO 50
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
CÔNG TY BẢO ANH
Hà Nội – 2017
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
MAI HOÀNG TRUNG
XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN SỰ
CÔNG TY BẢO ANH
Chuyên ngành : Công nghệ thông tin
Mã ngành : D480201
NGƯỜI HƯỚNG DẪN : Th.S LÊ THỊ VUI
Hà Nội - 2017
Trang 3LỜI CAM ĐOAN
Em xin cam đoan những nội dung số liệu và kết quả nghiên cứu trong đồ ánnày là thành quả từ sự nghiên cứu của bản thân em và chưa hề được sử dụng trongbất kỳ đợt bảo vệ nào Tất cả tài liệu tham khảo sử dụng trong đồ án đều được tríchdẫn nguồn rõ ràng trong danh mục tài liệu tham khảo
Nếu có bất cứ sự sao chép không hợp lệ hay vi phạm nào, em xin hoàn toànchịu trách nhiệm
Hà Nội, ngày tháng 06 năm 2017
Sinh viên thực hiện
Mai Hoàng Trung
Trang 4LỜI CẢM Ơ N
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗtrợ, giúp đỡ dù ít hay nhiều, dù là trực tiếp hay dán tiếp của người khác Trong suốtthời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rấtnhiều sự quan tâm, giúp đỡ của Thầy Cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến Thầy Cô ở Khoa Công NghệThông Tin trường Đại Học Tài Nguyên và Môi Trường Hà Nội đã cùng với tri thức
và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho em trong suốt thờigian học tập tại trường
Em xin chân thành cảm ơn Th.S Lê Thị Vui đã tận tâm hướng dẫn em Trongthời gian được học tập và thực hành dưới sự hướng dẫn của cô, em không nhữngthu được rất nhiều kiến thức bổ ích
Xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, đã luôn là nguồn độngviên to lớn, giúp em vượt qua những khó khăn trong suốt quá trình học tập và thựchiện đồ án tốt nghiệp
Mặc dù đã rất cố gắng hoàn thiện đồ án với tất cả sự nỗ lực, tuy nghiên đồ án
“Xậy dựng phần mềm quản lý nhân sự công ty Bảo Anh” chắc chắn sẽ không thể
tránh khỏi những thiếu sót Em rất mong nhận được sự quan tâm, thông cảm vànhững đóng góp quý báu của các Thầy Cô để đồ án này ngày càng hoàn thiện hơn
Hà Nội, Tháng Năm 2017Sinh viên thực hiện
Trang 5MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Nội dung nghiên cứu của đề tài 1
3 Đối tượng và phạm vi nghiên cứu của đề tài 1
4 Cấu trúc của đề tài 2
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 3
1.1 Tổng quan về phần mềm 3
1.1.1 Phần mềm 3
1.1.2 Các đặc trưng của phần mềm 3
1.1.3 Phân loại phần mềm 4
1.1.4 Mô hình phát triển được sử dụng trong bài 5
Hình 1.1: Mô hình Waterfall (Thác nước) 5
1.2 Giới thiệu về Công ty Bảo Anh 6
1.3 Công cụ phát triển 7
1.3.1 Lập trình ASP.NET (C#) 7
Hình 1.2: Người dùng tương tác với ứng dụng web 8
1.3.2 Tổng quan về SQL 9
1.3.3 Mô hình cơ sở dữ liệu Client/Server 12
1.3.4 Ngôn ngữ lập trình C# 14
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18
2.1 Khảo sát bài toán 18
2.1.1 Khảo sát sơ bộ 18
2.1.2 Mô tả bài toán 18
2.2 Phân tích thiết kế hệ thống 19
2.2.1 Sơ đồ Use-case 19
Hình 2.1: Biểu đồ Use-case tổng quát 19
Hình 2.2: Biểu đồ Use-case phân rã chức năng quản lý nhân viên 20
Trang 6Hình 2.3: Biểu đồ Use-case phân ra chức năng quản lý phòng ban 20
Hình 2.4: Biểu đồ Use-case mức phân rã chức năng quản lý chức vụ 21
Hình 2.5: Biểu đồ Use-case phân rã chức năng quản lý lương 21
2.2.2 Biểu đồ tuần tự và trạng thái các chức năng 23
Hình 2.6: Biểu đồ tuần tự chức năng đăng nhập 23
23
Hình 2.7: Biểu đồ tuần tự chức năng đăng xuất 23
Hình 2.8: Biểu đồ tuần tự chức năng thêm nhân viên mới 24
Hình 2.9: Biểu đồ tuần tự chức năng cập nhật thông tin nhân viên 24
Hình 2.10: Biểu đồ tuần tự chức năng xóa nhân viên 25
Hình 2.11: Biểu đồ tuần tự chức năng xem danh sách nhân viên 25
Hình 2.12: Biểu đồ tuần tự chức năng thêm phòng ban mới 26
Hình 2.13: Biểu đồ tuần tự chức năng cập nhật thông tin phòng ban 26
Hình 2.14: Biểu đồ tuần tự chức năng xóa phòng ban 27
Hình 2.15: Biểu đồ tuần tự chức năng thêm chức vụ mới 27
Hình 2.16: Biểu đồ tuần tự chức năng cập nhật thông tin chức vụ 28
Hình 2.17: Biểu đồ tuần tự chức năng xóa chức vụ 28
Hình 2.18: Biểu đồ tuần tự chức năng chi lương 29
Hình 2.19: Biểu đồ trạng thái chức năng đăng nhập 29
Hình 2.20: Biểu đồ trạng thái chức năng đăng xuất 30
Hình 2.21: Biểu đồ trạng thái chức năng thêm nhân viên mới 30
Hình 2.22: Biểu đồ trạng thái chức năng cập nhật thông tin nhân viên 31
Hình 2.23: Biểu đồ trạng thái chức năng xóa nhân viên 31
Hình 2.24: Biểu đồ trạng thái chức năng thêm phòng ban mới 32
Hình 2.25: Biểu đồ trạng thái chức năng cập nhật thông tin phòng ban 32
Trang 7Hình 2.26: Biểu đồ trạng thái chức năng xóa phòng ban 33
Hình 2.27: Biểu đồ trạng thái chức năng thêm chức vụ mới 33
Hình 2.28: Biểu đồ trạng thái chức năng cập nhật thông tin chức vụ 34
Hình 2.29: Biểu đồ trạng thái chức năng xóa chức vụ 34
Hình 2.30: Biểu đồ trạng thái chức năng chi lương 35
2.3 Thiết kế cơ sở dữ liệu 35
2.3.1 Bảng hồ sơ nhân viên 36
2.3.2 Bảng nhân viên 36
2.3.3 Bảng chức vụ 36
2.3.4 Bản dân tộc 37
2.3.5 Bảng học vấn 37
2.3.6 Bảng lương 37
2.3.7 Bảng phòng ban 37
2.3.8 Bảng chứng minh nhân dân 37
2.3.9 Bảng tôn giáo 37
2.3.10 Bảng quan hệ gia đình 38
2.3.11 Mô hình quan hệ 38
Hình 2.31: Mô hình quan hệ 38
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM 40
3.1 Giao diện đăng nhập 40
40
Hình 3.1: Form đăng nhập 40
- Giám đốc (Admin) hoặc nhân viên (User) ghi mã nhân viên (Username) và mật khẩu (Password) 40
- Hệ thống sẽ lấy thông tin từ dữ liệu người dùng 40
- Nếu thông tin được nhập có trong dữ liệu thì đăng nhập thành công và chuyển đên giao diện trang chủ phần mềm 40
- Nếu thông tin được nhập không có trong dữ liệu thì đăng nhập thất bại và hiển thị lên bảng thông báo sai mã nhân viên hoặc mật khẩu 40
Trang 83.2 Giao diện quản lý nhân viên 40
40
Hình 3.2: Form nhân viên 40
Admin quản lý nhân viên ở giao diện này: 40
- Thêm nhân viên: sử dụng lệnh thêm để thêm thông tin nhân viên mới bằng cách nhập toàn bộ thông tin mới vào các ô như: mã nhân viên, họ, tên,… sau đó sử dụng lệnh lưu để lưu thông tin nhân viên mới vào kho dữ liệu Nếu để trống sẽ hiển thị lên thông báo thông tin này không được để trống 41
- Sửa nhân viên: Chọn nhân viên cần sửa trong danh sách nhân viên sau đó sử dụng lệnh sửa Sau khi thay đổi thông tin nhân viên thành công sử dụng lệnh lưu để lưu thông tin mới thay đổi vào kho dữ liệu hoặc sử dụng lệnh hủy để hủy bỏ quá trình sửa thông tin nhân viên 41
- Xóa nhân viên: Chọn nhân viên cần xóa sử dung lệnh xóa để xóa nhân viên khỏi danh sách nhân viên và dữ liệu của nhân viên này trong kho dữ liệu 41
- Câp nhật: Reset lại bảng danh sách nhân viên 41
- In: Xuất ra danh sách nhân viên trong thời điểm hiên tại 41
- Tìm kiếm: tìm kiếm thông tin nhân viên trong danh sách nhân viên 41
3.3 Giao diện quản lý phòng ban 41
41
Hình 3.3: Form phòng ban 41
Admin quản lý danh sách phòng ban trong giao diện này: 41
- Thêm phòng ban: sử dụng lệnh thêm sau đó nhập thông tin phòng ban mới sau đó sử dụng lệnh lưu để lưu thông tin phòng ban mới vào kho dữ liệu 41
- Sửa phòng ban: sử dụng lệnh sửa sau đó chỉnh sửa thông tin phòng ban sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 42
- Xóa phòng ban: trước tiên phải di chuyển toàn bộ nhân viên trong phòng ban định xóa sang phòng ban mới, sau đó sử dụng lệnh xóa để xóa phòng ban trong danh sách phòng ban và kho dữ liệu 42
3.4 Giao diện quản lý chức vụ 42
Trang 9Hình 3.4: Form chức vụ 42
Admin quản lý danh sách chức vụ trong giao diện này: 42
- Thêm chức vụ: sử dụng lệnh thêm sau đó nhập thông tin chức vụ mới sau đó sử dụng lệnh lưu để lưu thông tin chức vụ mới vào kho dữ liệu 42
- Sửa chức vụ: sử dụng lệnh sửa sau đó chỉnh sửa thông tin chức vụ sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 42
- Xóa chức vụ: trước tiên phải di chuyển toàn bộ nhân viên có chức vụ định xóa sang chức vụ mới, sau đó sử dụng lệnh xóa để xóa chức vụ trong danh sách chức vụ và kho dữ liệu 42
3.5 Giao diện quản lý dân tộc 43
43
Hình 3.5: Form dân tộc 43
Admin quản lý danh sách dân tộc trong giao diện này: 43
- Thêm dân tộc: sử dụng lệnh thêm sau đó nhập thông tin dân tộc mới sau đó sử dụng lệnh lưu để lưu thông tin dân tộc mới vào kho dữ liệu 43
- Sửa dân tộc: sử dụng lệnh sửa sau đó chỉnh sửa thông tin dân tộc sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 43
- Xóa dân tộc: chọn dân tộc cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách dân tộc và kho dữ liệu 43
3.6 Giao diện quản lý tôn giáo 44
44
Hình 3.6: Form tôn giáo 44
Admin quản lý danh sách tôn giáo trong giao diện này: 44
- Thêm tôn giáo: sử dụng lệnh thêm sau đó nhập thông tin tôn giáo mới sau đó sử dụng lệnh lưu để lưu thông tin tôn giáo mới vào kho dữ liệu 44
- Sửa tôn giáo: sử dụng lệnh sửa sau đó chỉnh sửa thông tin tôn giáo sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 44
Trang 10- Xóa tôn giáo: chọn tôn giáo cần xóa và sử dụng lệnh xóa để xóa thông tin trong
danh sách tôn giáo và kho dữ liệu 44
3.7 Giao diện quản lý học vấn 45
45
Hình 3.7: Form trình độ học vấn 45
Admin quản lý danh sách trình độ học vấn trong giao diện này: 45
- Thêm học vấn: sử dụng lệnh thêm sau đó nhập thông tin học vấn mới sau đó sử dụng lệnh lưu để lưu thông tin học vấn mới vào kho dữ liệu 45
- Sửa học vấn: sử dụng lệnh sửa sau đó chỉnh sửa thông tin học vấn sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 45
- Xóa học vấn: chọn học vấn cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách tôn giáo và kho dữ liệu 45
3.8 Giao diện quản lý lương 46
Hình 3.8: Form lương 46
46
Hình 3.9: Form xuất lương thực lãnh 46
Admin quản lý danh sách mức lương trong giao diện này: 46
- Thêm mức lương: sử dụng lệnh thêm sau đó mức lương mới sau đó sử dụng lệnh lưu để lưu mức lương mới vào kho dữ liệu 47
- Sửa mức lương: sử dụng lệnh sửa sau đó chỉnh sửa thông tin mức lương sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 47
- Xóa học vấn: chọn mức lương cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách mức lương và kho dữ liệu 47
KẾT LUẬN 48
1 Kết quả đạt được 48
Bước đầu xây dựng được một hệ thống quản lý nhân sự cơ bản hoàn chỉnh cho công ty Cổ phần tin học và thương mại Bảo Anh 48
2 Hạn chế 48
Trang 113 Kinh nghiệm thu được 48
4 Hướng phát triển 48
DANH MỤC TÀI LIỆU THAM KHẢO 48
DANH MỤC HÌNH ẢNH MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Nội dung nghiên cứu của đề tài 1
3 Đối tượng và phạm vi nghiên cứu của đề tài 1
4 Cấu trúc của đề tài 2
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU 3
1.1 Tổng quan về phần mềm 3
1.1.1 Phần mềm 3
1.1.2 Các đặc trưng của phần mềm 3
1.1.3 Phân loại phần mềm 4
1.1.4 Mô hình phát triển được sử dụng trong bài 5
Hình 1.1: Mô hình Waterfall (Thác nước) 5
1.2 Giới thiệu về Công ty Bảo Anh 6
1.3 Công cụ phát triển 7
1.3.1 Lập trình ASP.NET (C#) 7
Hình 1.2: Người dùng tương tác với ứng dụng web 8
1.3.2 Tổng quan về SQL 9
1.3.3 Mô hình cơ sở dữ liệu Client/Server 12
1.3.4 Ngôn ngữ lập trình C# 14
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18
Trang 122.1 Khảo sát bài toán 18
2.1.1 Khảo sát sơ bộ 18
2.1.2 Mô tả bài toán 18
2.2 Phân tích thiết kế hệ thống 19
2.2.1 Sơ đồ Use-case 19
Hình 2.1: Biểu đồ Use-case tổng quát 19
Hình 2.2: Biểu đồ Use-case phân rã chức năng quản lý nhân viên 20
Hình 2.3: Biểu đồ Use-case phân ra chức năng quản lý phòng ban 20
Hình 2.4: Biểu đồ Use-case mức phân rã chức năng quản lý chức vụ 21
Hình 2.5: Biểu đồ Use-case phân rã chức năng quản lý lương 21
2.2.2 Biểu đồ tuần tự và trạng thái các chức năng 23
Hình 2.6: Biểu đồ tuần tự chức năng đăng nhập 23
23
Hình 2.7: Biểu đồ tuần tự chức năng đăng xuất 23
Hình 2.8: Biểu đồ tuần tự chức năng thêm nhân viên mới 24
Hình 2.9: Biểu đồ tuần tự chức năng cập nhật thông tin nhân viên 24
Hình 2.10: Biểu đồ tuần tự chức năng xóa nhân viên 25
Hình 2.11: Biểu đồ tuần tự chức năng xem danh sách nhân viên 25
Hình 2.12: Biểu đồ tuần tự chức năng thêm phòng ban mới 26
Hình 2.13: Biểu đồ tuần tự chức năng cập nhật thông tin phòng ban 26
Hình 2.14: Biểu đồ tuần tự chức năng xóa phòng ban 27
Hình 2.15: Biểu đồ tuần tự chức năng thêm chức vụ mới 27
Hình 2.16: Biểu đồ tuần tự chức năng cập nhật thông tin chức vụ 28
Hình 2.17: Biểu đồ tuần tự chức năng xóa chức vụ 28
Hình 2.18: Biểu đồ tuần tự chức năng chi lương 29
Hình 2.19: Biểu đồ trạng thái chức năng đăng nhập 29
Trang 13Hình 2.20: Biểu đồ trạng thái chức năng đăng xuất 30
Hình 2.21: Biểu đồ trạng thái chức năng thêm nhân viên mới 30
Hình 2.22: Biểu đồ trạng thái chức năng cập nhật thông tin nhân viên 31
Hình 2.23: Biểu đồ trạng thái chức năng xóa nhân viên 31
Hình 2.24: Biểu đồ trạng thái chức năng thêm phòng ban mới 32
Hình 2.25: Biểu đồ trạng thái chức năng cập nhật thông tin phòng ban 32
Hình 2.26: Biểu đồ trạng thái chức năng xóa phòng ban 33
Hình 2.27: Biểu đồ trạng thái chức năng thêm chức vụ mới 33
Hình 2.28: Biểu đồ trạng thái chức năng cập nhật thông tin chức vụ 34
Hình 2.29: Biểu đồ trạng thái chức năng xóa chức vụ 34
Hình 2.30: Biểu đồ trạng thái chức năng chi lương 35
2.3 Thiết kế cơ sở dữ liệu 35
2.3.1 Bảng hồ sơ nhân viên 36
2.3.2 Bảng nhân viên 36
2.3.3 Bảng chức vụ 36
2.3.4 Bản dân tộc 37
2.3.5 Bảng học vấn 37
2.3.6 Bảng lương 37
2.3.7 Bảng phòng ban 37
2.3.8 Bảng chứng minh nhân dân 37
2.3.9 Bảng tôn giáo 37
2.3.10 Bảng quan hệ gia đình 38
2.3.11 Mô hình quan hệ 38
Hình 2.31: Mô hình quan hệ 38
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM 40
3.1 Giao diện đăng nhập 40
40
Hình 3.1: Form đăng nhập 40
Trang 14- Giám đốc (Admin) hoặc nhân viên (User) ghi mã nhân viên (Username) và mật
khẩu (Password) 40
- Hệ thống sẽ lấy thông tin từ dữ liệu người dùng 40
- Nếu thông tin được nhập có trong dữ liệu thì đăng nhập thành công và chuyển đên giao diện trang chủ phần mềm 40
- Nếu thông tin được nhập không có trong dữ liệu thì đăng nhập thất bại và hiển thị lên bảng thông báo sai mã nhân viên hoặc mật khẩu 40
3.2 Giao diện quản lý nhân viên 40
40
Hình 3.2: Form nhân viên 40
Admin quản lý nhân viên ở giao diện này: 40
- Thêm nhân viên: sử dụng lệnh thêm để thêm thông tin nhân viên mới bằng cách nhập toàn bộ thông tin mới vào các ô như: mã nhân viên, họ, tên,… sau đó sử dụng lệnh lưu để lưu thông tin nhân viên mới vào kho dữ liệu Nếu để trống sẽ hiển thị lên thông báo thông tin này không được để trống 41
- Sửa nhân viên: Chọn nhân viên cần sửa trong danh sách nhân viên sau đó sử dụng lệnh sửa Sau khi thay đổi thông tin nhân viên thành công sử dụng lệnh lưu để lưu thông tin mới thay đổi vào kho dữ liệu hoặc sử dụng lệnh hủy để hủy bỏ quá trình sửa thông tin nhân viên 41
- Xóa nhân viên: Chọn nhân viên cần xóa sử dung lệnh xóa để xóa nhân viên khỏi danh sách nhân viên và dữ liệu của nhân viên này trong kho dữ liệu 41
- Câp nhật: Reset lại bảng danh sách nhân viên 41
- In: Xuất ra danh sách nhân viên trong thời điểm hiên tại 41
- Tìm kiếm: tìm kiếm thông tin nhân viên trong danh sách nhân viên 41
3.3 Giao diện quản lý phòng ban 41
41
Hình 3.3: Form phòng ban 41
Admin quản lý danh sách phòng ban trong giao diện này: 41
- Thêm phòng ban: sử dụng lệnh thêm sau đó nhập thông tin phòng ban mới sau đó sử dụng lệnh lưu để lưu thông tin phòng ban mới vào kho dữ liệu 41
Trang 15- Sửa phòng ban: sử dụng lệnh sửa sau đó chỉnh sửa thông tin phòng ban sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa
thông tin 42
- Xóa phòng ban: trước tiên phải di chuyển toàn bộ nhân viên trong phòng ban định xóa sang phòng ban mới, sau đó sử dụng lệnh xóa để xóa phòng ban trong danh sách phòng ban và kho dữ liệu 42
3.4 Giao diện quản lý chức vụ 42
Hình 3.4: Form chức vụ 42
Admin quản lý danh sách chức vụ trong giao diện này: 42
- Thêm chức vụ: sử dụng lệnh thêm sau đó nhập thông tin chức vụ mới sau đó sử dụng lệnh lưu để lưu thông tin chức vụ mới vào kho dữ liệu 42
- Sửa chức vụ: sử dụng lệnh sửa sau đó chỉnh sửa thông tin chức vụ sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 42
- Xóa chức vụ: trước tiên phải di chuyển toàn bộ nhân viên có chức vụ định xóa sang chức vụ mới, sau đó sử dụng lệnh xóa để xóa chức vụ trong danh sách chức vụ và kho dữ liệu 42
3.5 Giao diện quản lý dân tộc 43
43
Hình 3.5: Form dân tộc 43
Admin quản lý danh sách dân tộc trong giao diện này: 43
- Thêm dân tộc: sử dụng lệnh thêm sau đó nhập thông tin dân tộc mới sau đó sử dụng lệnh lưu để lưu thông tin dân tộc mới vào kho dữ liệu 43
- Sửa dân tộc: sử dụng lệnh sửa sau đó chỉnh sửa thông tin dân tộc sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 43
- Xóa dân tộc: chọn dân tộc cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách dân tộc và kho dữ liệu 43
3.6 Giao diện quản lý tôn giáo 44
44
Trang 16Hình 3.6: Form tôn giáo 44
Admin quản lý danh sách tôn giáo trong giao diện này: 44
- Thêm tôn giáo: sử dụng lệnh thêm sau đó nhập thông tin tôn giáo mới sau đó sử dụng lệnh lưu để lưu thông tin tôn giáo mới vào kho dữ liệu 44
- Sửa tôn giáo: sử dụng lệnh sửa sau đó chỉnh sửa thông tin tôn giáo sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 44
- Xóa tôn giáo: chọn tôn giáo cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách tôn giáo và kho dữ liệu 44
3.7 Giao diện quản lý học vấn 45
45
Hình 3.7: Form trình độ học vấn 45
Admin quản lý danh sách trình độ học vấn trong giao diện này: 45
- Thêm học vấn: sử dụng lệnh thêm sau đó nhập thông tin học vấn mới sau đó sử dụng lệnh lưu để lưu thông tin học vấn mới vào kho dữ liệu 45
- Sửa học vấn: sử dụng lệnh sửa sau đó chỉnh sửa thông tin học vấn sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa thông tin 45
- Xóa học vấn: chọn học vấn cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách tôn giáo và kho dữ liệu 45
3.8 Giao diện quản lý lương 46
Hình 3.8: Form lương 46
46
Hình 3.9: Form xuất lương thực lãnh 46
Admin quản lý danh sách mức lương trong giao diện này: 46
- Thêm mức lương: sử dụng lệnh thêm sau đó mức lương mới sau đó sử dụng lệnh lưu để lưu mức lương mới vào kho dữ liệu 47
Trang 17- Sửa mức lương: sử dụng lệnh sửa sau đó chỉnh sửa thông tin mức lương sau đó sử dụng lệnh lưu để lưu thông tin vào kho dữ liệu hoặc lệnh hủy để hủy quá trình sửa
thông tin 47
- Xóa học vấn: chọn mức lương cần xóa và sử dụng lệnh xóa để xóa thông tin trong danh sách mức lương và kho dữ liệu 47
KẾT LUẬN 48
1 Kết quả đạt được 48
Bước đầu xây dựng được một hệ thống quản lý nhân sự cơ bản hoàn chỉnh cho công ty Cổ phần tin học và thương mại Bảo Anh 48
2 Hạn chế 48
3 Kinh nghiệm thu được 48
4 Hướng phát triển 48
DANH MỤC TÀI LIỆU THAM KHẢO 48
Trang 18DANH MỤC TỪ VIẾT TẮT
CSDL Cơ sở dữ liệu
SQL Structured Query Languege - ngôn ngữ truy vấn mang tính cấu trúcHTML HyperText Markup Language - ngôn ngữ đánh dấu siêu văn bản
Trang 19MỞ ĐẦU
1 Tính cấp thiết của đề tài
Quản lí nhân sự là một trong những vấn đề then chốt của mọi công ty Quản
lí nhân sự không tốt sẽ dẫn đến nhiều vấn đề bất cập trong công ty Chúng ta luônthấy những tình trạng chấm nhầm công hoặc lưu sai thông tin nhân viên,… như vậy
sẽ dẫn đến những xáo trộn nhân sự Vì thế yêu cầu đặt ra là làm thế nào để có thể
lưu trữ hồ sơ nhân viên một cách hiệu quả nhất
Căn cứ khoa học thực tiễn: Ngày nay thật khó để tìm một ngành nghề haymột lĩnh vực mà Công nghệ thông tinCNTT không chen chân vào Nước ta trongnhững năm gần đây, lĩnh vực quản lí này đã được nhiều công ty phần mềm quantâm giải quyết Công Ty Bảo Anh bao gồm nhiều phòng, ban,… vì thế nguồn nhân
sự là rất đông đảo và cần một phương pháp quản lí dễ dàng và hiệu quả Hiện naycông ty đang sử dụng một phần mềm để quản lí nhân sự và em muốn dựa vào đó đểphát triển một phần mềm quản lí khác hiệu quả và đơn giản hơn
2 Nội dung nghiên cứu của đề tài
- Khảo sát thực tế quản lý nhân sự tại công ty Bảo Anh
- Nghiên cứuvề phương pháp xây dựng và quản lý một dự án phần mềm
- Phân tích thiết kế, xây dựng bài toán quản lý nhân sự tại công ty Bảo Anh.
- Nghiên cứu sử dụng Microsoft Visual Studio và SQL Server để xây dựngphần mềm quản lý nhân sự
3 Đối tượng và phạm vi nghiên cứu của đề tài
Đối tượng nghiên cứu
Xây dựng phần mềm quản lý nhân sự cho công ty Bảo Anh, để giải quyếtvấn đề về quản lý nhân sự thực tế tại công ty
Trang 20- Phỏng vấn.
- Tài Liệu
- Khảo sát theo các biểu mẫu, checklist phản hồi
Phương pháp phân tích tổng hợp:
Mục đích để chúng minh từng luận điểm của đề tài có tính thuyết phục hơn
4 Cấu trúc của đề tài
Ngoài phần mở đầu và kết luận, đồ án gồm 3 chương:
Chương 1: Tổng Quan Về Đề Tài
Chương 2: Phân Tích Và Thiết Kế Hệ Thống
Chương 3: Xây Dựng Phần Mềm
2
Trang 21CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI NGHIÊN CỨU
1.1 Tổng quan về phần mềm
1.1.1 Phần mềm
Khái niệm phần mềm lâu nay vẫn được đồng nhất với khái niệm chươngtrình của máy tính Ở mức nào độ nào đó thì khái niệm này vẫn đúng trong quy môhọc đường Khi phần mềm đã phát triển đến đỉnh cao và trở thành công nghệ thìkhái niệm phần mềm đã được định nghĩa một cách chính xác Theo nhà tin họcngười Mỹ - Tiến sĩ Roger Pressman thì phần mềm là tổng thể của ba thành phầnchính: các chương trình máy tính, các cấu trúc dữ liệu có liên quan và tài liệu hướngdẫn sử dụng Định nghĩa này cho thấy sự khác nhau trong việc lập trình ở quy môhọc đường với lập trình ở quy mô công nghiệp, nó xác định thành phần của phầnmềm trong công nghệ phần mềm tổng quát và đầy đủ hơn nhiều so với khái niệmthông thường
1.1.2 Các đặc trưng của phần mềm
Một phần mềm là một tập hợp các chương trình thực hiện tự động hóa một
số các nhiệm vụ nghiệp vụ Cho dù phần mềm được phát triển để làm nhiệm vụ nào
đi nữa thì các phần mềm đều có điểm chung, đó là: đặc tính, tính đáp ứng và loạicủa ứng dụng
•Sự lưu trữ dữ liệu: dữ liệu được mô tả ở dạng vật lý, trong một máy có thểđọc được các khuôn dạng dữ liệu Việc tìm kiếm dữ liệu được hiểu là bạn có thểtruy nhập vào dữ liệu ở dạng lưu trữ của nó
-Xử lý:
Xử lý bao gồm một chuỗi các lệnh hoặc các sự kiện có liên quan với nhaulàm việc với các dữ liệu Kết quả của một xử lý có thể là: làm thay đổi cơ sở dữ
3
Trang 22liệu, đưa dữ liệu trả lời ra các thiết bị đầu cuối, máy in hoặc in ra giấy, có thể lànhững yêu cầu về trang thiết bị được suy diễn ra về các tình huống các phần tử.
-Ràng buộc:
•Ràng buộc về thứ tự trước: bắt buộc về thứ tự trước là điều kiện đầu tiênphải được đáp ứng để có thể bắt đầu quá trình xử lý
•Ràng buộc về thứ tự sau: là điều kiện cần phải thỏa mãn đề quá trình xử lý
có thể hoàn thành được Cụm câu lệnh này được đưa vào cuối quá trình xử lý
•Ràng buộc về thời gian: bao gòm ràng buộc về thời gian xử lý, thời gianphân chia cho một quá trình xử lý, thời gian yêu cầu đối với các quá trình xử lý bênngoài, thời gian xử lý đồng bộ, thời gian trả lời cho quá trình xử lý với giao diệnbên ngoài
•Ràng buộc về mặt cấu trúc: có thể hiểu là bao gồm việc xác định loại đầuvào và đầu ra của các dữ liệu nào được cho phép, quá trình xử lý được thực hiệnnhư thế nào và mối quan hệ giữa các quá trình với nhau
•Ràng buộc về điều khiển: liên quan đến việc duy trì mối quan hệ về dữ liệu
•Ràng buộc về suy diễn: đó là những khả năng có thể xảy ra từ một ứngdụng, dựa vào các kết quả trước đó hoặc có thể dựa vào quan hệ về dữ liệu ta có thểdẫn đến một kết quả khác nhau
Trang 23•Chương trình điều khiển thiết bị (Drive): giúp hệ điều hành nhận biết vàđiều khiển sử dụng các thiết bị phần cứng.
•Chương trình dịch: dịch các ứng dụng từ ngôn ngữ máy sang ngôn ngữngười dùng
-Phần mềm ứng dụng: Bao gồm 4 nhóm
•Phần mềm kinh doanh: hỗ trợ việc quản lý, sản xuất kinh doanh,…
•Phần mềm năng suất: giúp nâng cao năng suất và hiệu quả cho công việccủa người dùng
•Phần mềm giáo dục, tham khảo: hỗ trợ cho quá trình học tập Ví dụ như cácphần mềm từ điển, trả lời câu hỏi trắc nghiệm,…
•Phần mềm giải trí: các phần mềm game, ca nhạc,xem phim,…
1.1.4 Mô hình phát triển được sử dụng trong bài
Hình 1.1: Mô hình Waterfall (Thác nước)
Mô hình này bao gồm các giai đoạn xử lý nối tiếp nhau như được mô tảtrong Hình 1.1
Phân tích yêu cầu và tài liệu đặc tả (Requirements and Specifications): là giaiđoạn xác định những “đòi hỏi” (“What”) liên quan đến chức năng và phi chức năng
mà hệ thống phần mềm cần có Giai đoạn này cần sự tham gia tích cực của kháchhàng và kết thúc bằng một tài liệu được gọi là “Bản đặc tả yêu cầu phần mềm” hay
5
Trang 24SRS (software requirement specification), trong đó bao gồm tập hợp các yêu cầu đãđược duyệt (reviewed) và nghiệm thu (approved) bởi những người có trách nhiệmđối với dự án (từ phía khách hàng) SRS chính là nền tảng cho các hoạt động tiếptheo cho đến cuối dự án.
Phân tích hệ thống và thiết kế (System Analysis and Design): là giai đoạnđịnh ra “làm thế nào” (“How”) để hệ thống phần mềm đáp ứng những “đòi hỏi”(“What”) mà khách hàng yêu cầu trong SRS Đây là chính là cầu nối giữa “đòi hỏi”(“What”) và mã (Code) được hiện thực để đáp ứng yêu cầu đó
Hiện thực và kiểm thử từng thành phần (Coding and Unit Test): là giai đoạnhiện thực “làm thế nào” (“How”) được chỉ ra trong giai đoạn “Phân tích hệ thống vàthiết kế”
Kiểm thử (Test): giai đoạn này sẽ tiến hành kiểm thử mã (code) đã được hiệnthực, bao gồm kiểm thử tích hợp cho nhóm các thành phần và kiểm thử toàn hệthống (system test) Một khâu kiểm thử cuối cùng thường được thực hiện là nghiệmthu (acceptance test), với sự tham gia của khách hàng trong vai trò chính để xácđịnh hệ thống phần mềm có đáp ứng yêu cầu của họ hay không
Cài đặt và bảo trì (Deployment and Maintenance): đây là giai đoạn cài đặt,cấu hình và huấn luyện khách hàng Giai đoạn này sửa chữa những lỗi của phầnmềm (nếu có) và phát triển những thay đổi mới được khách hàng yêu cầu (như sửađổi, thêm hay bớt chức năng/đặc điểm của hệ thống)
Thực tế cho thấy đến những giai đoạn sau mới có khả năng nhận ra sai sóttrong những giai đoạn trước và phải quay lại để sửa chữa Đây chính là kiểuwaterfall dạng lặp (Iterative Waterfall) và được minh hoạ trong Hình 1.1
1.2 Giới thiệu về Công ty Bảo Anh
Công ty Cổ phần Tin học và Thương mại Bảo Anh nguyên là Trung tâm Tinhọc - Điện lạnh - Thiết bị văn phòng và dạy nghề được thành lập từ năm 1995,thuộc Viện Khoa Học Việt Nam
Công ty là một trong những doanh nghiệp có uy tín ở Việt Nam hiện nay vớinhiệm vụ chính là phân phối cung cấp thiết bị dạy nghề, tin học, máy tính, máy in,điện tử, viễn thông, trang thiết bị văn phòng, máy Điều hoà nhiệt độ, thiết bị làm
6
Trang 25lạnh Đồng thời nghiên cứu ứng dụng, chuyển giao công nghệ trong lĩnh vực côngnghệ thông tin, điện tử, viễn thông, tự động hoá điều khiển
Công Ty Cổ Phần Tin Học Và Thương Mại Bảo Anh gồm 7 phòng ban:
- Khó khăn trong việc tính lương, bảo hiểm, phúc lợi cho nhân viên
- Không hỗ trợ tốt cho nhu cầu quản lý nhân sự theo dự án công việc củacông ty
Với thực tế công tác quản lý nhân sự cùng với các vấn đề tồn tại trên thì việcxây dựng một phần mềm quản lý nhân sự tại công ty là giải pháp cũng như xu thếtất yếu phù hợp với chiến lược xậy dựng và phát triển công ty trong dài hạn
1.3 Công cụ phát triển
1.3.1 Lập trình ASP.NET (C#)
Trong nhiều năm qua, ASP đã được cho rằng đó thực sự là một lựa chọnhàng đầu cho web developers trong việc xây dựng những web sites trên nền máychủ web Windows bởi nó vừa linh hoạt mà lại đầy sức mạnh Đầu năm 2002,Microsoft đã cho ra đời một công nghệ mới đó chính là ASP.NET Đây thực sự làmột bước nhảy vượt bậc của ASP cả về phương diện tinh tế lẫn hiệu quả chocác developers Nó tiếp tục cung cấp khả năng linh động về mặt hỗ trợ ngôn ngữ,nhưng hơn hẳn về mặt lĩnh vực ngôn ngữ script vốn đã trở nên hoàn thiện và trở
7
Trang 26thành ngôn ngữ cơ bản của các developers Việc phát triển trong ASP.NET khôngchỉ yêu cầu hiểu biết về HTML và thiết kế web mà còn khả năng nắm bắt nhữngkhái niệm của lập trình và phát triển hướng đối tượng.
Hình 1.2: Người dùng tương tác với ứng dụng web
ASP.Net là kỹ thuật lập trình và phát triển ứng dụng web ở phía Server(Server-side) dựa trên nền tảng của Microsoft Net Framework
Hầu hết, những người mới đến với lập trình web đều bắt đầu tìm hiểu những
kỹ thuật ở phía Client (Client-side) như: HTML, Java Script, CSS ( Cascading StyleSheets) Khi Web browser yêu cầu một trang web (trang web sử dụng kỹ thuậtclient-side), Web server tìm trang web mà Client yêu cầu, sau đó gửi về cho Client.Tất cả các xử lý lệnh ASP.Net đều được thực hiện tại Server và do đó, gọi là kỹthuật lập trình ở phía server
Sự thật là có rất nhiều kỹ thuật server-side với điểm mạnh và điểm yếu riêngnhưng ASP.NET có những tính năng gần như là duy nhất:
-ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gủivới chúng Hiện tại, thì NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác
8
Trang 27nhau mà đa phần đều có thể được sử dụng để xây dựng nên những websites ASP.NET Chẳng hạn như C# (C sharp) và Visual Basic.
-Nhưng trang ASP.NET được biên dịch trước Thay vì phải đọc và thôngdịch mỗi khi trang web được yêu cầ, ASP.Net biên dịch những trang web độngthành những tập tin DLL mà Server có thể thi hành nhanh chóng và hiệu quả Chínhđiều này tạo ra bước tiến nhảy vọt về hiệu suất so với ASP
-ASP đã cả khả năng toàn quyền truy xuất tới các chức năng của NETFramework Hỗ trợ XML, web services, giao tiếp với CSDL, email… và rất nhiềucác kỹ thuật khác được tích hợp vào NET, giúp bạn tiết kiệm được công sức
-ASP cho phép bạn phân chia các đoạn mã server-side và HTML Khi bạnphải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lậptrình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiếtkế
-ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trongnhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập
SQL là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực.Nếu bạn không có nhiều thời gian để nghiên cứu sâu về tin học mà lại có nhiều dữliệu cần phải được phân tích, xử lý, thì hãy dùng SQL vì SQL đơn giản nhưng rấthiệu quả Hầu hết tất cả các ngôn ngữ lập trình cấp cao đều có hỗ trợ SQL Có thể
kể ra như: MS Visual Basic, MS Access, MS Visual Foxpro, Dbase, Paradox,Oracle,…
- Lịch sử phát triển:
Đầu tiên SQL được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trênmáy đơn lẻ Do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn
9
Trang 28theo mô hình khách/chủ (Client/Server), nhiều phần mềm sử dụng ngôn ngữ SQL
đã ra đời mà điển hình là MS SQL Server, Oracle, Sybase,… Trong mô hìnhkhách/chủ, toàn bộ CSDL được tập trung lưu trữ trên máy chủ (Server), mọi thaotác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL Máy trạm(Client) chỉ dùng để cập nhật dữ liệu cho máy chủ hoặc lấy thông tin từ máy chủ
Trên lĩnh vực đang phát triển hiện nay là Internet, ngôn ngữ SQL lại càngđóng vai trò quan trọng hơn Nó được sử dụng để nhanh chóng tạo ra các trang Webđộng (Dynamic Web Page) Trang Web động thường có nội dung được lấy ra từCSDL SQL có thể được sử dụng như một chất keo kết dính giữa CSDL và trangWeb Khi người dùng yêu cầu, SQL sẽ thực hiện việc truy cập thông tin trong CSDLtrên máy chủ và hiển thị kết quả trên trang Web Và SQL cũng là công cụ để cậpnhật thông tin cho CSDL đó
- Đối tượng làm việc:
Đối tượng của SQL là các bảng dữ liệu và các bảng này bao gồm nhiều cột
và hàng Cột được gọi là trường và hàng là bản ghi của bảng Cột với tên gọi vàkiểu dữ liệu xác định tạo nên cấu trúc của bảng Khi bảng được tổ chức có hệ thốngcho một mục đích, công việc nào đó ta có là một CSDL Trong công việc hàng ngàythường gặp rất nhiều loại bảng khác nhau như bảng danh sách nhân viên, danh sáchphòng ban, bảng lương, bảng quyết toán,… Khi bảng này được lưu thành CSDL thì
có thể dùng SQL để phân tích, xử lý thông tin trong đó Kết quả thực hiện của SQLthường là một bảng mới Ví dụ ta yêu cầu SQL lấy ra từ bảng Danh sách nhân viênnhững nhân viên có nhà ở Hà Nội thì SQL sẽ trả về một bảng mới chỉ chứa các nhânviên có nhà ở Hà Nội SQL còn được dùng để cập nhật thông tin cho các CSDL đã
có Ví dụ như cần phải xóa tất cả các phiếu xuất kho hai năm trước đây chẳng hạn.Bạn có thể mở bảng dữ liệu Phiếu xuất kho ra và tìm kiểm rồi xóa từng phiếu mộtcách thủ công, vừa mất thời gian, vừa có khả năng nhầm lẫn hoặc bỏ sót Khi đóbạn nên dùng SQL với thời gian thực hiện chỉ tính bằng giây và đảm bảo không có
sự nhầm lẫn hay bỏ sót nào cả Trong những trường hợp như vậy, kết quả câu lệnhSQL không phải là bảng mới mà chính là bảng đã được bổ sung cập nhật dữ liệutheo yêu cầu SQL luôn luôn thao tác trên các bảng SQL dùng để phân tích, tổnghợp số liệu từ các bảng đã có sẵn, tạo nên các dạng bảng mới, sửa đổi cấu trúc, dữ
10
Trang 29liệu của các bảng đã có Sau khi thực hiện một hay một chuỗi các lệnh SQL là cóthể đủ số liệu để tạo ra báo cáo theo yêu cầu công việc Vì mục tiêu của các chươngtrình quản lý CSDL là quản lý dữ liệu được lưu trữ trong các bảng nên SQL đượcdùng rất thường xuyên trong mọi công việc.
- SQL có khả năng đáp ứng hầu hết các yêu cầu đối với việc cập nhật, phântích dữ liệu từ các bảng Sau đây chúng ta sẽ điểm qua một số công dụng chính củaSQL
•Chọn lọc một số cột nhất định trong bảng dữ liệu
•Lọc các bản ghi theo những tiêu chuẩn khác nhau
•Sắp xếp các bản ghi theo những tiêu chuẩn khác nhau
•Cập nhật, xóa các bản ghi trên toàn bảng theo những điều kiện khác nhau
•Kết hợp hai hay nhiều bảng theo chiều ngang
•Nối hai hay nhiều bảng theo chiều dọc
•Tạo bảng mới, thay đổi cấu trúc bảng đã có
•Thực hiện các phép tính toán thống ke theo từng nhóm
•Kết nối với dữ liệu trên máy chủ (server)
•Kết hợp các trang Web với CSDL bằng lệnh SQL
- Có thể phân ra hai loại câu lệnh SQL: một loại tổng hợp dữ liệu sang bảngmới ( bảng mới có thể chỉ tồn tại trong bộ nhớ hoặc được ghi ra đĩa) và một loại chỉcập nhật dữ liệu, cấu trúc của các bảng đã có Bảng mới được tạo ra từ câu lệnhSQL có thể được sử dụng ở mọi nơi trong chương trình có yêu cầu dữ liệu dạngbảng, đặc biệt dùng cho báo cáo (report), danh sách (list), đối tượng lưới (grid),
- Ưu điểm của SQL
•Câu lệnh đơn giản, dễ nhớ, dễ sử dụng và rất ngắn gọn
•Tốc độ rất cao do được tối ưu hóa với những công nghệ mới
•Khả năng thực hiện những yêu cầu phức tạp của công việc
- Một trong những lí do khiến SQL ngày càng phổ biến hơn đó là SQL rất dễ
sử dụng Người dùng không nhất thiết phải là một chuyên gia tin học hay một ngườibiết lập trình vẫn có thể ứng dụng SQL để xử lý công việc của mình Thực hiệnđược điều đó là nhờ có các công cụ trực quan giúp tạo ra các câu lệnh SQL mộtcách dễ dàng, hiệu quả, đó là các Query (câu hỏi truy vấn) trong các phần mềm có
sử dụng SQL Mỗi Query là một câu lệnh SQL được xây dựng hoàn chỉnh và ghi lại
để có thể mang ra sử dụng bất cứ lúc nào Sản phẩm của một Query là một bảngmới thì bảng này lại có thể sử dụng trong một Query khác Cứ như vậy ta có 1 chuỗicác Query cho đến khi đi đến kết quả cuối cùng
11
Trang 301.3.3 Mô hình cơ sở dữ liệu Client/Server
- Mô hình Client/Server:
Là một mô hình nổi tiếng trong mạng máy tính được áp dụng rất rộng rãi và
là mô hình của mọi trang web hiện có Ý tưởng của mô hình này là máy con (đóngvai trò là máy khách) gửi một yêu cầu (request) để máy chủ (đóng vai trò ngườicung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách
- Mô hình Client/Server như sau:
Client/Server là mô hình tổng quát nhất, trên thực tế thì một server có thểđược nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn Khi nhậnđược 1 yêu cầu từ client, server này có thể gửi tiếp yêu cầu vừa nhận được choserver khác, ví dụ như database server vì bản thân nó không thể xử lý yêu cầu nàyđược Máy server có thể thi hành các nhiệm vụ đơn giản hoặc phức tạp Ví dụ nhưmột máy chủ trả lời thời gian hiện tại trong ngày, khi một máy client yêu cầu lấythông tin vè thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do server định
ra, nếu yêu cầu được chấp nhận thì máy server sẽ trả về thông tin mà client yêu cầu
Có rất nhiều các dịch vụ server trên mạng nhưng nó đều hoạt động theo nguyên lý
là nhận các yêu cầu từ client sau đó xử lý và trả kết quả cho client yêu cầu Thôngthường chương trình server và client được thi hành trên hai máy khác nhau Cho dùlúc nào server cũng ở trạng thái sẵn sàng chờ nhận yêu cầu từ client nhưng trên thực
tế một tiến trình liên tác qua lại (interaction) giữa client và server lại bắt đầu ở phíaclient, khi mà client gửi yêu cầu tới server Các chương trình server thường đều thihành ở mức ứng dụng (tầng ứng dụng của mạng) Sự thuận lợi của phương phápnày là nó có thể làm việc trên bất cứ một mạng máy tính nào có hỗ trợ giao thứctruyền thông chuẩn cụ thể ở đây là giao thức TCP/IP Với các giao thức chuẩn nàycũng giúp cho các nhà sản xuất có thể tích hợp nhiều sản phẩm khác nhau của họlên mạng mà không gặp khó khăn gì Với các chuẩn này thì các chương trình servercho một dịch vụ nào đấy có thể thi hành trên một hệ thống chia sẻ thời gian(timesharing system) với nhiều chương trình và dịch vụ khác hoặc nó có thể chạytrên chính một máy tính cá nhân bình thường Có thể có nhiều chương server cùnglàm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính Với môhình trên chúng ta có thể nhận thấy rằng mô hình client/server chỉ mang đặc điểm
12
Trang 31của phần mềm không liên quan gì đến phần cứng mặc dù trên thực tế yêu cầu chomột máy server là cao hơn nhiều so với máy client Lý do là bởi vì máy server phảiquản lý rất nhiều các yêu cầu từ các client khác nhau trên mạng.
Ưu và nhược điểm chính: Có thể nói rằng với mô hình client/server thì mọithứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa(bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin,…) với nhiều dịch
vụ đa dạng mà mô hình cũ không thể làm được Mô hình client/server cung cấp mộtnền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kếhướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)…Một trong những vấn đềnảy sinh trong mô hình này đó là tính an toàn và bảo mật thông tin trên mạng Dophải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ xảy ra hiệntượng thông tin truyền trên mạng bị lộ
- Client:
Trong mô hình client/server, người ta còn định nghĩa cụ thể cho một máyclient là một máy trạm mà chỉ được sử dụng bởi một người dùng với đề muốn thểhiện tính độc lập cho nó Máy client có thể sử dụng các hệ điều hành bình thườngnhư :Win9x, DOS, OS/2,… Bản thân mỗi một client cũng đã được tích hợp nhiềuchức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN,WAN theo mô hình client/server thì nó còn có thể sử dụng thêm các chức năng do
hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch
vụ do các server trên mạng này cung cấp), ví dụ như nó có thể yêu cầu lấy dữ liệu
từ một server hay gửi dữ liệu lên server đó…Thực tế trong các ứng dụng của môhình client/server, các chức năng hoạt động chính là sự kết hợp giữa client và servervới sự chia sẻ tài nguyên, dữ liệu trên cả 2 máy
Vai trò của client: Trong mô hình client/server, client được coi như là người
sử dụng các dịch vụ trên mạng do một hay nhiều máy chủ cung cấp và server đượccoi như là người cung cấp dịch vụ để trả lời các yêu cầu của các client Điều quantrọng là phải hiểu được vai trò của nó trong một mô hình cụ thể, một máy clienttrong mô hình này lại có thể là một máy server trong mô hình khác Ví dụ cụ thểnhư một máy trạm làm việc như một client bình thường trong mạng LAN nhưngđồng thời nó có thể đóng vai trò như một máy in chủ (printer server) cung cấp dịch
13
Trang 32vụ in ấn từ xa cho nhiều người khác (client) sử dụng Client được hiểu như là bề nổicủa các dịch vụ trên mạng, nếu có thông tin vào hoặc ra thì chúng sẽ được hiển thịtrên máy client.
- Server:
Server còn được định nghĩa như là một máy tính nhiều người sử dụng(multiuser computer) Vì một server phải quản lý nhiều yêu cầu từ các client trênmạng cho nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với cáctình năng hoạt động độc lập song song với nhau như hệ điều hành UNIX,WINDOWS…Server cung cấp và điều khiển các tiến trình truy cập vào tài nguyêncủa hệ thống Các ứng dụng chạy trên server phải được tách rời nhau để một lỗi củaứng dụng này không làm hỏng ứng dụng khác Tính đa nhiệm đảm bảo một tiếntrình không sử dụng toàn bộ tài nguyên hệ thống
Vai trò của Server: Như đã nói ở trên, server như là một nhà cung cấp cácdịch vụ cho các client yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn,truyền file, hệ thống…Các ứng dụng server cung cấp các dịch vụ mang tính chứcnăng để hỗ trợ cho các hoạt động trên các máy client có hiệu quả hơn Sự hỗ trợ củacác dịch vụ này có thể là toàn bộ hoặc chỉ một phẩn thông qua IPC Để đảm bảotính an toàn trên mạng cho nên server này còn có vai trò như là một nhà quản lýtoàn bộ quyền truy cập dữ liệu của các máy client, nói cách khác đó là vai trò quảntrị mạng Có rất nhiều cách thức hiện nay nhằm quản trị có hiệu quả, một trongnhững cách đang được sử dụng đó là dùng tên Login và Mật khẩu
1.3.4 Ngôn ngữ lập trình C#
1.3.4.1 Đặc điểm của C#
- C# được xây dựng và kiến trúc bởi Anders Hejlsberg, người đã viết nêntrình
biên dịch Pascal và có nhiều đóng góp cho Delphi cũng như Java
- C# là một trong rất nhiều ngôn ngữ lập trình được hỗ trợ bởi .NETFramework
- C# do Microsoft đề ra là ngôn ngữ hướng đối tượng rất thuần nhất và trongsáng, nó hiện thực hầu hết các tính chất của mô hình hướng đối tượng giông nhưJava
14
Trang 33- C# sẽ được dịch ra mã máy để chạy trên nền Net, nền này cung cấp rấtnhiều đối tượng mạnh, phong phú và đa dạng để giải quyết nhiều vấn đề phổ biếntrong lập trình.
- Ngôn ngữ C# chứa các từ khóa cho việc khai báo những kiểu lớp đối tượngmới và những phương thức hay thuộc tính của lớp và cho việc thực thi đóng gói, kếthừa và đa hình ba thuộc tính cơ bản của bất cứ ngôn ngữ lập trình hướng đốitượng
- C# hỗ trợ giao diện interface, nó được xem như một cam kết với một lớpcho những dịch vụ mà giao diện quy định Trong ngôn ngữ C#, một lớp chỉ có thể
kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong ngôn ngữC++, tuy nhiên một lớp có thể thực thi nhiều giao diện
- Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (component –oriented), như là những thuộc tính, những sự kiện Lập trình hướng thành phầnđược hỗ trợ bởi CLR cho phép lưu trữ metadata với mã nguồn cho một lớp.Metadata mô tả cho một lớp, bao gồm những phương thức và những thuộc tính của
nó, cũng như những sự bảo mật cần thiết và những thuộc tính khác Mã nguồn chứađựng những logic cần thiết để thực hiện những chức năng của nó
- Ngôn ngữ C# là ngôn ngữ hỗ trợ việc truy cập bộ nhớ trực tiếp sử dụngkiểu con trỏ của C++ và từ khóa cho dấu ngoặc [] trong toán tử
Tóm lại, đặc điểm của ngôn ngữ lập trình C# có thể nói gọn như sau:
•C# là ngôn ngữ đơn giản
•C# là ngôn ngữ hiện đại
•C# là ngôn ngữ hướng đối tượng
•C# là ngôn ngữ mạnh mẽ và mềm dẻo
•C# là ngôn ngữ có ít từ khóa
•C# là ngôn ngữ hướng module
•C# sẽ trở nên phổ biến trong tương lai
1.3.4.2 Ưu, nhược điểm khi sử dụng ngôn ngữ lập trình C#
- Ưu điểm:
C# được kế thừa những ưu điểm của C/C++, bỏ đi những dư thừa không cầnthiết gây khó khăn cho người sử dụng
•Câu lệnh C# đơn giản, ít từ khóa
•Tính năng debug rất thuận tiện
15