1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Công nghệ thông tin: Xây dựng phần mềm quản lý tiền lương cho doanh nghiệp

77 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Phần Mềm Quản Lý Tiền Lương Cho Doanh Nghiệp
Tác giả Lương Ngọc Hoàng Anh
Người hướng dẫn Th.S Đào Thị Hưng
Trường học Trường Đại Học Hải Phòng
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Hải Phòng
Định dạng
Số trang 77
Dung lượng 1,84 MB

Nội dung

Thông qua dữ liệu của hệ thống thông tin quản lý tiền lương và thu nhập, công ty và nhân viên có thể nắm rõ tình hình thực hiện công việc, sử dụng làm thông tin để lên các báo cáo theo y

Trang 1

TRƯỜNG ĐẠI HỌC HẢI PHÒNG Khoa Công Nghệ Thông Tin

BÁO CÁO ĐỒ ÁN TỐT NGHIỆP

CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN Tên đề tài: Xây dựng phần mềm quản lý tiền lương cho DN

Giảng viên hướng dẫn :Th.S Đào Thị Hưng Sinh viên thực hiện : Lương Ngọc Hoàng Anh

Mã sinh viên : 203148201158

Hải Phòng, tháng 4 năm 2024

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan đề tài “Xây dựng phần mềm quản lý tiền lương cho doanh nghiệp”

là công trình nghiên cứu cá nhân của tôi trong thời gian qua Toàn bộ nội dung và kết quả nghiên cứu là do tôi tự tìm hiểu, phân tích một cách khách quan, trung thực, có nguồn gốc rõ ràng và chưa được công bố dưới bất kỳ hình thức nào Tôi xin chịu hoàn toàn trách nhiệm nếu

có sự không trung thực trong thông tin sử dụng trong công trình nghiên cứu này

Hải Phòng, tháng 4 năm 2024 Sinh viên thực hiện

Lương Ngọc Hoàng Anh

Trang 3

LỜI CẢM ƠN

Để có kiến thức và kết quả thực tế ngày hôm nay, trước hết em xin chân thành cảm ơn các Thầy, Cô trong khoa Công Nghệ Thông Tin trường Đại Học Hải Phòng đã giảng dạy và trang bị cho em những kiến thức cơ bản Bên cạnh đó, em xin gửi lời cảm ơn chân thành đến

cô Đào Thị Hưng đã tận tình chỉ dạy và truyền đạt cho em những kinh nghiệm cũng như những kiến thức quý báu trong suốt thời gian học tập vừa qua

Với thời gian thực hiện còn hạn chế và sự hiểu biết còn nhiều bỡ ngỡ nên bài báo cáo của em sẽ không tránh khỏi những thiếu sót Nên em mong nhận được ý kiến đóng góp để em

có thể đúc kết được nhiều bài học và kinh nghiệm cho bản thân, từ đó giúp ích được nhiều cho

em khi chính thức bước vào môi trường làm việc sau này

Cuối cùng, em xin gửi đến quý Thầy Cô lời chúc sức khỏe và thành công trong sự nghiệp giảng dạy Chúc Trường đại học Hải Phòng ngày càng phát triển và thành công Một phần cũng do kiến thức còn hạn chế nên đề tài khó tranh khỏi những sai xót Em rất mong nhận được ý kiến đóng góp của thầy cô và các bạn để bài làm của em được hoàn hảo hơn

Em xin chân thành cảm ơn!

Hải Phòng, tháng 4 năm 2024 Sinh viên thực hiện

Lương Ngọc Hoàng Anh

Trang 4

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

MỤC LỤC iii

MỤC LỤC HÌNH ẢNH vii

MỤC LỤC BẢNG viii

MỞ ĐẦU ix

CHƯƠNG I: GIỚI THIỆU CÔNG CỤ VÀ NGÔN NGỮ LỰA CHỌN 1

1.1 Visual Studio 1

1.1.1 Visual Studio là gì 1

1.1.2 Cấu trúc của Visual Studio 2

1.1.3 Các tính năng của Visual Studio 3

1.2 Ngôn ngữ lập trình C# (C Sharp) 5

1.2.1 Khái niệm cơ bản 5

1.2.2 Lịch sử hình thành 6

1.2.3 Mục tiêu của việc phát triển C# 6

1.2.4 Ưu điểm của ngôn ngữ C# 7

1.2.5 Nhược điểm của ngôn ngữ C# 10

1.2.6 Ứng dụng của C# 10

1.3 SQL Server 11

1.3.1 Giới Thiệu SQL Server 11

1.3.2 Cài Ðặt SQL Server (Installation) 12

1.3.3 Lịch sử ra đời SQL Server và các phiên bản 13

1.3.4 Các thành phần cơ bản trong SQL Server 14

Trang 5

CHƯƠNG II: KHẢO SÁT HỆ THỐNG 17

2.1 Khảo sát sơ bộ 17

2.1.1 Khái niệm về HRM ? 17

2.1.2 Phần mềm HRM là gì ? 17

2.1.3 Các chức năng cơ bản của phần mềm HRM 17

2.1.4 Khái niệm mô hình 3 lớp 18

2.1.5 Lợi thế của mô hình 3 lớp 19

2.2 Khảo sát chi tiết 20

2.2.1 Khảo sát hiện trạng 20

2.2.2 Hạn chế 20

2.3 Danh sách các trang 20

2.3.1 Các chức năng chính của phần mềm 20

2.3.2 Các yêu cầu chức năng 21

2.3.3 Các yêu cầu phi chức năng 23

CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24

3.1 Biểu đồ Usecase 24

3.1.1 Xác định Actor 24

3.1.2 Xác định các UseCase 25

3.1.3 Biểu đồ Usecase tổng quát 26

3.1.4 Sơ đồ Usecase phân rã chức năng đăng nhập 26

3.1.5 Sơ đồ Usecase phân rã chức năng quản lý nhân viên 27

3.1.6 Sơ đồ Usecase phân rã chức năng quản lý tiền lương 27

3.1.7 Sơ đồ Usecase phân rã chức năng quản lý chấm công 28

3.1.8 Sơ đồ Usecase phân rã chức báo cáo và thống kê 28

Trang 6

3.1.9 Sơ đồ Usecase phân rã chức năng thêm thông tin 29

3.1.10 Sơ đồ Usecase phân rã chức năng sửa thông tin 29

3.1.11 Sơ đồ Usecase phân rã chức năng xóa thông tin 30

3.1.12 Sơ đồ Usecase phân rã chức năng in thông tin 30

3.2 Đặc tả các Usecase 30

3.2.1 Đặc tả Usecase đăng ký tài khoản 30

3.2.2 Đặc tả Usecase đăng nhập tài khoản 31

3.2.3 Đặc tả Usecase xem thông tin tiền lương 32

3.2.4 Đặc tả Usecase xem thông tin nhân viên 32

3.2.5 Đặc tả Usecase xem thông tin chi tiết nhân viên 33

3.2.6 Đặc tả Usecase xem thông tin chi tiết tiền lương 33

3.2.7 Đặc tả Usecase chọn thông tin nhân viên 33

3.2.8 Đặc tả Usecase thêm thông tin 34

3.2.9 Đặc tả Usecase sửa thông tin 34

3.2.10 Đặc tả Usecase xóa thông tin 35

3.2.11 Đặc tả Usecase thanh toán tiền lương 36

3.2.12 Đặc tả Usecase báo cáo thống kê 37

3.2.13 Đặc tả Usecase lưu thông tin 37

3.2.14 Đặc tả Usecase in thông tin 38

3.3 Biểu đồ tuần tự 39

3.3.1 Biểu đồ tuần tự chức năng đăng nhập 39

3.3.2 Biểu đồ tuần tự chức năng đăng xuất 40

3.3.3 Biểu đồ tuần tự chức năng xem thông tin nhân viên 41

3.3.4 Biểu đồ tuần tự chức năng xem thông tin tiền lương 42

Trang 7

3.3.5 Biểu đồ tuần tự sửa chức năng thông tin 43

3.3.6 Biểu đồ tuần tự chức năng thêm thông tin 44

3.3.7 Biểu đồ tuần tự chức năng xóa thông tin 45

3.4 Thiết kế cơ sở dữ liệu 45

3.4.1 Các thuộc tính cơ bản của cơ sở dữ liệu 45

3.4.2 Biểu đồ thực thể liên kết 46

3.4.3 Danh mục các bảng 47

3.4.4 Biểu đồ lớp 55

CHƯƠNG IV: GIAO DIỆN DEMO VÀ KẾT QUẢ THỰC NGHIỆM 56

4.1 Giao diện cơ bản của phần mềm 56

4.1.1 Giao diện quản lý nhân viên 56

4.1.2 Giao diện quản lý tiền lương 56

4.1.3 Giao diện quản lý nâng lương 57

4.1.4 Giao diện quản lý loại ca 57

4.1.5 Giao diện quản lý hợp đồng lao động 58

4.1.6 Giao diện quản lý dân tộc của nhân viên 59

4.1.7 Giao diện báo cáo chấm công nhân viên 59

4.1.8 Giao diện quản lý chức vụ 60

4.1.9 Giao diện quản lý chấm công 61

KẾT LUẬN 61

TÀI LIỆU THAM KHẢO 63

Trang 8

MỤC LỤC HÌNH ẢNH

Hình 1: Sơ đồ phân cấp chức năng tổng quát 22

Hình 2: Biều đồ Usecase tổng quát 26

Hình 3: Sơ đồ Usecase phân rã chức năng đăng nhập 26

Hình 4: Sơ đồ Usecase phân giã chức năng quản lý nhân viên 27

Hình 5: Sơ đồ Usecase phân rã chức năng quản lý tiền lương 27

Hình 6: Sơ đồ Usecase phân rã chức năng quản lý chấm công 28

Hình 7: Sơ đồ Usecase phân rã chức báo cáo và thống kê 28

Hình 8: Sơ đồ Usecase phân rã chức năng thêm thông tin 29

Hình 9: Sơ đồ Usecase phân rã chức năng sửa thông tin 29

Hình 10: Sơ đồ Usecase phân rã chức năng xóa thông tin 30

Hình 11: Sơ đồ Usecae phân rã chức năng in thông tin 30

Hình 12: Biểu đồ tuần tự chức năng đăng nhập 39

Hình 13: Biểu đồ tuần tự chức năng đăng xuất 40

Hình 14: Biểu đồ tuần tự chức năng xem thông tin nhân viên 41

Hình 15: Biểu đồ tuần tự chức năng xem thông tin tiền lương 42

Hình 16: Biểu đồ tuần tự chức năng sửa thông tin 43

Hình 17: Biểu đồ tuần tự chức năng thêm thông tin 44

Hình 18: Biểu đồ tuần tự chức năng xóa thông tin 45

Hình 19: Database – Mô hình dữ liệu quan hệ 46

Hình 20: Giao diện quản lý nhân viên 56

Hình 21: Giao diện quản lý tiền lương 56

Hình 22: Giao diện danh sách nâng lương 57

Hình 23: Giao diện quản lý loại ca 57

Hình 24: Giao diện quản lý hợp đồng lao động 58

Hình 25: Giao diện quản lý dân tộc của nhân viên 59

Hình 26: Giao diện báo cáo chấm công nhân viên 60

Hình 27: Giao diện quản lý chức vụ 61

Hình 28: Giao diện quản lý chấm công 61

Trang 9

MỤC LỤC BẢNG

Bảng 3 1: Bảng nhân viên 47

Bảng 3 2: Bảng lương 47

Bảng 3 3: Bảng phòng ban 48

Bảng 3 4: Bảng bộ phận 48

Bảng 3 5: Bảng chức vụ 48

Bảng 3 6: Bảng phòng ban 48

Bảng 3 7: Bảng chấm công 49

Bảng 3 8: Bảng loại công 49

Bảng 3 9: Bảng tăng ca 49

Bảng 3 10: Bảng loại ca 50

Bảng 3 11: Bảng bảo hiểm 50

Bảng 3 12: Bảng hợp đồng lao động 50

Bảng 3 13: Bảng khen thưởng, kỷ luật 51

Bảng 3 14: Bảng dân tộc 51

Bảng 3 15: Bảng tôn giáo 51

Bảng 3 16: Bảng kỳ công 52

Bảng 3 17: Bảng công nhân viên 52

Bảng 3 18: Bảng công ty 53

Bảng 3 19: Bảng thôi việc 53

Bảng 3 20: Bảng điều chuyển 53

Bảng 3 21: Bảng phụ cấp 54

Bảng 3 22: Bảng ứng lương 54

Trang 10

MỞ ĐẦU

1 Lý do chọn đề tài

Bước vào thời đại công nghệ 4.0 khoa học kỹ thuật, tin học đã trở thành một lĩnh vực quan trọng, thiết yếu trong quá trình hội nhập và phát triển của đất nước hiện nay Các lĩnh vực trong cuộc sống đã và đang có sự hỗ trợ đắc lực của các ứng dụng tin học nhằm nâng cao chất lượng và hiệu quả công việc Đặc biệt, đối với các doanh nghiệp, việc ứng dụng tin học trở thành một nhu cầu hết sức quan trọng để có thể tồn tại và phát triển trên thị trường đầy cạnh tranh ngày nay Xuất phát từ xu thế chung của xã hội, hàng loạt các phần mềm phục vụ hoạt động sản xuất, kinh doanh, quản trị đã ra đời và để đáp ứng nhu cầu cấp thiết của các doanh nghiệp hiện nay

Ở nước ta, công tác quản lý tại các cơ quan, xí nghiệp đang trở nên phổ biến và quan trong Trong một công ty, một trong những công việc quan trọng nhất chính là việc hỗ trợ quản lý tiền lương Các công ty rất cần một hệ thống thông tin có khả năng cung cấp thông tin một cách chính xác, kịp thời và phù hợp nhằm hỗ trợ họ hoàn thành các công việc, chức năng của mình Thông qua dữ liệu của hệ thống thông tin quản lý tiền lương và thu nhập, công ty

và nhân viên có thể nắm rõ tình hình thực hiện công việc, sử dụng làm thông tin để lên các báo cáo theo yêu cầu Hệ thống thông tin quản lý thu nhập hỗ trợ quyết định quản trị nguồn nhân lực đặc biệt các thông tin về lương, thưởng…có liên quan đến các nguồn thông tin bên ngoài và hệ thống thông tin khác trong doanh nghiệp

Có thể nói rằng, nhân sự, tiền lương và các khoản trích theo lương là một trong những vấn đề được cả doanh nghiệp và người lao động quan tâm Vì vậy việc hạch toán, phân bổ chính xác nhân sự tiền lương cùng các khoản trích theo lương vào giá thành sản phẩm sẽ một phần giúp cho doanh nghiệp có sức cạnh tranh trên thị trường nhờ giá cả hợp lý Qua đó cũng góp cho người lao động thấy được quyền và nghĩa vụ của mình trong việc tăng năng suất lao động, từ đó thúc đẩy việc nâng cao chất lượng lao động của doanh nghiệp Mặt khác việc tính đúng, tính đủ và thanh toán kịp thời tiền lương cho người lao động cũng là động lực thúc đẩy

họ hăng say sản xuất và yên tâm tin tưởng vào sự phát triển của doanh nghiệp

Trang 11

Hiện nay, công việc quản lý nhân sự và tiền lương cho nhân viên thì nhiều doanh nghiệp đang sử dụng bảo tính Excel để hỗ trợ quản lí tuy nhiên cũng không đem lại nhiều lợi ích cho người sử dụng Bởi Excel chỉ là công cụ tính toán chính xác và nhanh chóng nhưng nó không

có khả năng quản lý 1 hệ thống cơ sở dữ liệu không thể giúp doanh nghiệp nắm rõ toàn bộ thông tin đầy đủ về toàn bộ hệ thống

Từ thực trạng đó nên có 1 hệ thống quản lý hồ sơ và tính lương cho nhân viên Đưa tin học vào quản lý nhân sự và tiền lương giúp đáp ứng được việc cung cấp thông tin về nhân viên, tiền lương một cách chính xác, kịp thời, giảm bớt thời gian tra cứu, đáp ứng yêu cầu của các doanh nghiệp nhanh hơn

Qua đó, em đã nhận thấy tầm quan trọng của phần mềm quản lý toán lương tại công

ty Chính vì vậy, em đã chọn đề tài “Xây dựng phần mềm quản tiền lương cho doanh nghiệp”

2 Mục tiêu nghiên cứu

Mục tiêu chung:

Xây dựng phần mềm quản lý dữ và hệ thống thông tin để quản lý nhân viên và tiền lương của doanh nghiệp nhằm nhằm nâng cao hiệu quả hoạt động và công tác quản lý thông tin trong doanh nghiệp

Mục tiêu cụ thể:

Đánh giá hiện trạng quản lý dữ liệu ở một số doanh nghiệp ở nước ta hiện nay

Xây dựng phần mềm quản lý tiền lương dành cho máy tính

Được người dùng chấp nhận

Ứng dụng các kiến thức về khoa học và công nghệ của khoa công nghê thông tin trường Đại học Hải Phòng đã học được để xây dựng phần mềm và tạo lập cơ sở dữ liệu về công tác quản lý nhân sự và tiền lương

Xây dựng được tài liệu cho phần mềm, cập nhật dữ liệu, báo cáo, in ấn thông tin, quản trị hệ thống và quy chế vận hành của phần phần mềm

Trang 12

Cung cấp thông tin môt cách chính xác, dễ dàng, đầy đủ, nhanh chóng, phục vụ tốt quá trình quản lý lương và nhân sự, phục vụ tốt cho các đơn vị sử dụng tiêu biểu như kế toán

Tận dụng năng lực tài nguyên (hệ thống máy tính), năng lực con người nhằm nâng cao hiệu quả công tác quản lý

3 Đối tượng và phương pháp nghiên cứu

Đối tượng nghiên cứu:

Các phần mềm quản lý nhân sự và tiền lương cho doanh nghiệp

Phương pháp nghiên cứu:

Thu thập thông tin, khảo sát thực tế, phỏng vấn nhân viên công ty, tham khảo các nội dung trên mạng, …

Phương pháp phát triển hệ thống thông tin quản lý

Phương pháp phân tích hệ thông thông tin quản lý

4 Phạm vi nghiên cứu

Hệ thống thông tin quản lý về tiền lương, các khoản trích theo lương và thực hiện các báo cáo liên quan tới tiền lương trong các doanh nghiệp ở Việt Nam

Các tài liệu đã được nghiên cứu và kiểm định trên Internet

5 Nội dung nghiên cứu

Phần mềm quản lý là phần mềm ứng dụng trên máy vi tính có nhiệm vụ tin học hóa các quy trình của doanh nghiệp Đây cũng chính là hệ thống dùng để nạp, quản trị các thông số,

dữ liệu và giá trị thông tin của một doanh nghiệp

Phân hệ trung tâm của chương trình, liên kết và chia sẻ dữ liệu với các phân hệ khác, phân hệ này cho phép lưu trữ, chỉnh sửa và hệ thống hóa dữ liệu một cách chuẩn xác

Trong lập trình, thường 1 phần mềm quản lý sẽ bao gồm các module chương trình, mỗi module là một chương trình con dưới dạng các hàm hoặc thủ tục để thực hiện một công việc

Trang 13

nào đó theo thiết kế đã định Do đó phần mềm quản lý thường được sử dụng cho phần mềm

hệ thống

6 Cấu trúc báo cáo

Ngoài phần mở đầu, kết luận, phụ lục, các danh mục và tài liệu tham khảo thì nội dung

đề tài được chia thành 4 chương:

Chương I: Giới thiệu công cụ và ngôn ngữ lựa chọn

Chương II: Khảo sát hệ thống

Chương III: Phân tích và thiết kế hệ thống

Chương IV: Giao diện Demo và kết quả thực nghiệm

Trang 14

CHƯƠNG I: GIỚI THIỆU CÔNG CỤ VÀ NGÔN NGỮ LỰA CHỌN

1.1 Visual Studio

1.1.1 Visual Studio là gì

Microsoft Visual Studio là một môi trường phát triển tích hợp (IDE) từ Microsoft Microsoft Visual Studio còn được gọi là "Trình soạn thảo mã nhiều người sử dụng nhất thế giới ", được dùng để lập trình C++ và C# là chính Nó được sử dụng để phát triển chương trình máy tính cho Microsoft Windows, cũng như các trang web, các ứng dụng web và các dịch vụ web Visual Studio sử dụng nền tảng phát triển phần mềm của Microsoft như Windows API, Windows Forms, Windows Presentation Foundation, Windows Store và Microsoft Silverlight

Nó có thể sản xuất cả hai ngôn ngữ máy và mã số quản lý

Visual Studio bao gồm một trình soạn thảo mã hỗ trợ IntelliSense cũng như cải tiến mã nguồn Trình gỡ lỗi tích hợp hoạt động cả về trình gỡ lỗi mức độ mã nguồn và gỡ lỗi mức độ máy Công cụ tích hợp khác bao gồm một mẫu thiết kế các hình thức xây dựng giao diện ứng dụng, thiết kế web, thiết kế lớp và thiết kế giản đồ cơ sở dữ liệu Nó chấp nhận các plug-in nâng cao các chức năng ở hầu hết các cấp bao gồm thêm hỗ trợ cho các hệ thống quản lý phiên bản (như Subversion) và bổ sung thêm bộ công cụ mới như biên tập và thiết kế trực quan cho các miền ngôn ngữ cụ thể hoặc bộ công cụ dành cho các khía cạnh khác trong quy trình phát triển phần mềm

Trang 15

Visual Studio hỗ trợ nhiều ngôn ngữ lập trình khác nhau và cho phép trình biên tập mã

và gỡ lỗi để hỗ trợ (mức độ khác nhau) hầu như mọi ngôn ngữ lập trình Các ngôn ngữ tích hợp gồm có C, C++ và C++/CLI (thông qua Visual C++), VB.NET (thông qua Visual Basic.NET), C# (thông qua Visual C#) và F# (như của Visual Studio 2010) Hỗ trợ cho các ngôn ngữ khác như J++/J#, Python và Ruby thông qua dịch vụ cài đặt riêng rẽ Nó cũng hỗ trợ XML/XSLT, HTML/XHTML, JavaScript và CSS

1.1.2 Cấu trúc của Visual Studio

Visual Studio không hỗ trợ cho bất kỳ ngôn ngữ lập trình nào về giải pháp hoặc công

cụ thực chất, thay vào đó nó cho phép cắm chức năng được mã hóa như là một VSPackage Khi cài đặt, các chức năng có sẵn như là một dịch vụ IDE cung cấp ba dịch vụ: SVsSolution cung cấp khả năng liệt kê các dự án và các giải pháp; SVsUIShell cung cấp cửa sổ và giao diện người dùng và SVsShell Ngoài ra, IDE cũng có trách nhiệm điều phối và cho phép truyền thông giữa các dịch vụ Tất cả các biên tập viên, nhà thiết kế, các loại dự án

và các công cụ khác được thực hiện theo VSPackages Visual Studio sử dụng COM để truy cập VSPackages Visual Studio SDK cũng bao gồm Managed Package Framework (MPF) là một tập hợp quản lý bao bọc quanh các COM-interfaces cho phép các gói được viết bằng bất

kỳ ngôn ngữ nào Tuy nhiên, MPF không cung cấp tất cả các chức năng bộc lộ trong Visual Studio COM-interfaces Các dịch vụ có thể được tiêu thụ để tạo ra các gói khác, để thêm chức năng cho Visual Studio IDE

Hỗ trợ cho các ngôn ngữ lập trình được thêm vào bằng cách sử dụng một VSPackage đặc biệt được gọi là một dịch vụ ngôn ngữ Một dịch vụ ngôn ngữ định nghĩa giao tiếp khác nhau mà việc thực hiện VSPackage có thể thực hiện để hỗ trợ thêm cho các chức năng khác nhau Các chức năng có thể được thêm vào theo cách này bao gồm cú pháp màu, hoàn thành báo cáo kết quả, kết hợp đôi, công cụ chú giải tham số thông tin, danh sách thành viên và đánh dấu lỗi trên nền biên dịch.Nếu giao diện được thực hiện, các tính năng sẽ

có sẵn ngôn ngữ Dịch vụ ngôn ngữ sẽ được thực hiện trên cơ sở mỗi ngôn ngữ Việc triển khai có thể tái sử dụng mã từ phân tích cú pháp hoặc trình biên dịch cho ngôn ngữ.Dịch vụ ngôn ngữ có thể được triển khai hoặc trong mã nguồn gốc hoặc mã số quản lý Đối với mã

Trang 16

nguồn gốc, thì cả COM-interfaces gốc hoặc Babel Framework (một phần của Visual Studio SDK) đều có thể được sử dụng Đối với mã số quản lý thì các MPF sẽ bao hàm các dịch vu quản lý văn bản

1.1.3 Các tính năng của Visual Studio

- Biên tập mã

Giống như bất kỳ IDE khác, nó bao gồm một trình soạn thảo mã hỗ trợ tô sáng cú pháp và hoàn thiện mã bằng cách sử dụng IntelliSense không chỉ cho các biến, hàm và các phương pháp mà còn các cấu trúc ngôn ngữ như vòng điều khiển hoặc truy vấn IntelliSense được hỗ trợ kèm theo cho các ngôn ngữ như XML, Cascading Style Sheets và JavaScript khi phát triển các trang web và các ứng dụng web Các đề xuất tự động hoàn chỉnh được xuất hiện trong một hộp danh sách phủ lên trên đỉnh của trình biên tập mã Trong Visual Studio 2008 trở đi, nó có thể được tạm thời bán trong suốt để xem mã che khuất bởi nó Các trình biên tập mã được sử dụng cho tất cả các ngôn ngữ được hỗ trợ

- Trình gỡ lỗi

Visual Studio có một trình gỡ lỗi hoạt động vừa là một trình gỡ lỗi cấp mã nguồn và là một trình gỡ lỗi cấp máy Nó hoạt động với cả hai mã quản lý cũng như ngôn ngữ máy và có thể được sử dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ bởi Visual Studio Ngoài ra, nó cũng có thể đính kèm theo quy trình hoạt động và theo dõi và gỡ lỗi những quy trình Nếu mã nguồn cho quá trình hoạt động có sẵn, nó sẽ hiển thị các mã như nó đang được chạy Nếu mã nguồn không có sẵn, nó có thể hiển thị các tháo gỡ Các Visual Studio debugger cũng có thể tạo bãi bộ nhớ cũng như tải chúng sau để gỡ lỗi Các chương trình đa luồng cao cấp cũng được hỗ trợ Trình gỡ lỗi có thể được cấu hình sẽ được đưa ra khi một ứng dụng đang chạy ngoài Visual Studio bị treo môi trường

- Thiết kế

- Windows Forms Designer: được sử dụng để xây dựng GUI sử dụng Windows Forms;

bố trí có thể được xây dựng bằng các nút điều khiển bên trong hoặc khóa chúng vào bên cạnh

Trang 17

mẫu Điều khiển trình bày dữ liệu (như hộp văn bản, hộp danh sách, vv) có thể được liên kết với các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn Các điều khiển dữ liệu ràng buộc có thể được tạo ra bằng cách rê các mục từ cửa sổ nguồn dữ liệu lên bề mặt thiết kế Các giao diện người dùng được liên kết với mã sử dụng một mô hình lập trình hướng sự kiện Nhà thiết

kế tạo ra bằng C thăng hay VB.NET cho ứng dụng

- WPF Designer: có tên mã là Cider, được giới thiệu trong Visual Studio 2008 Giống

như Windows Forms Designer, hỗ trợ kéo và thả ẩn dụ Sử dụng tương tác người-máy nhắm mục tiêu theo Windows Presentation Foundation Nó hỗ trợ các chức năng WPF bao gồm kết nối dữ liệu và tự động hóa bố trí quản lý Nó tạo ra mã XAML cho giao diện người dùng Các tập tin XAML được tạo ra là tương thích với Microsoft Expression Design, sản phẩm thiết kế theo định hướng Các mã XAML được liên kết với mã đang sử dụng một mô hình code-behind

- Web designer/development: Visual Studio cũng bao gồm một trình soạn thảo và thiết

kế trang web cho phép các trang web được thiết kế bằng cách kéo và thả các đối tượng Nó được sử dụng để phát triển các ứng dụng ASP.NET và hỗ trợ HTML, CSS và JavaScript Nó

sử dụng mô hình code-behind để liên kết với mã ASP.NET Từ Visual Studio 2008 trở đi, công cụ bố trí được sử dụng bởi các nhà thiết kế web được chia sẻ với Microsoft Expression Web Ngoài ra ASP.NET MVC Framework hỗ trợ cho công nghệ MVC là tải xuống riêng biệt và dự án ASP.NET Dynamic Data có sẵn từ Microsoft

- Class designer: Các lớp thiết kế được dùng để biên soạn và chỉnh sửa các lớp (bao

gồm cả các thành viên và truy cập của chúng) sử dụng mô hình UML Các lớp thiết kế có thể tạo ra mã phác thảo C thăng và VB.NET cho các lớp và cá phương thức Nó cũng có thể tạo

ra sơ đồ lớp từ các lớp viết tay

- Data designer: Thiết kế dữ liệu có thể được sử dụng để chỉnh sửa đồ họa giản đồ cơ

sở dữ liệu bao gồm các bảng, khóa chính, khóa ngoại và các rằng buộc Nó cũng có thể được

sử dụng để thiết kế các truy vấn từ các giao diện đồ họa

Trang 18

- Mapping designer: Từ Visual Studio 2008 trở đi, thiết kế ánh xạ được dùng

bởi Language Integrated Query để thiết kế các ánh xạ giữa các giản đồ cơ sở dữ liệu và các lớp để đóng gói dữ liệu Các giải pháp mới từ cách tiếp cận ORM, ADO.NET Entity Framework sẽ thay thế và cải thiện các công nghệ cũ

- Khả năng mở rộng

- Visual Studio cho phép các nhà phát triển viết các phần mở rộng cho Visual Studio để

mở rộng tính năng của nó Những phần mở rộng "cắm vào" Visual Studio và mở rộng tính năng của nó Các phần mở rộng đến ở dạng macro, add-in và các gói Các macro đại diện cho các nhiệm vụ lặp đi lặp lại và hành động mà các nhà phát triển có thể ghi lại theo chương trình

để tiết kiệm, các cài đặt Các chế độ biệt lập của vỏ tạo ra một AppID mới, nơi các gói được cài đặt Những thứ này được bắt đầu với một thực thi khác nhau Nó nhằm mục đích cho sự phát triển của môi trường phát triển tùy chỉnh, hoặc cho một ngôn ngữ cụ thể hoặc một kịch bản cụ thể Các chế độ tích hợp cài đặt các gói vào AppID của các phiên bản Professional / Standard / Team System, do đó các công cụ tích hợp vào các phiên bản Visual Studio Shell là miễn phí tải về

- Sau khi phát hành Visual Studio 2008, Microsoft đã tạo ra Visual Studio Gallery Nó phục vụ như vị trí trung tâm cho đăng tải thông tin về phần mở rộng cho Visual Studio Phát triển cộng đồng cũng như phát triển thương mại có thể tải lên thông tin về các phần mở rộng của họ đến Visual Studio.NET 2002 thông qua Visual Studio 2010 Người sử dụng trang web

có thể đánh giá và xem lại các phần mở rộng để giúp đánh giá chất lượng các phần mở rộng được đăng RSS feed thông báo cho người dùng trên bản cập nhật tới trang web và các tính năng gắn thẻ cũng được lên kế hoạch

1.2 Ngôn ngữ lập trình C# (C Sharp)

1.2.1 Khái niệm cơ bản

C# (C Sharp, đọc là "xi-sáp") là một ngôn ngữ lập trình hướng đối tượng đa năng,

mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của họ Tên

của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu

Trang 19

số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java

C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với

các sản phẩm Turbo Pascal, Delphi, J++, WFC Phiên bản gần đây nhất là 9.0, được phát hành vào năm 2020 cùng với Visual Studio 2019 phiên bản 16.8

1.2.2 Lịch sử hình thành

Cái tên "C sharp" được lấy cảm hứng từ ký hiệu âm nhạc, trong đó một dấu thăng sau nốt nhạc "#" nghĩa là một nốt được chơi cao hơn nửa cung Điều này tương tự như trường hợp đặt tên của ngôn ngữ của C++, trong đó "++" chỉ ra rằng giá trị của một biến nên được tăng lên 1 Biểu tượng # cũng giống với bốn ký tự "+" (trong một lưới 2x2), ngụ ý rằng ngôn ngữ

là một phiên bản tăng cường của C++ (gấp đôi C++) Bởi vì giới hạn kỹ thuật của việc hiển thị (các font chuẩn, trình duyệt ) và sự thật là ký tự thăng không hiện diện trong đa số các bàn phím, ký tự # đã được chọn để diễn đạt một cách tương đương trong cách viết tên ngôn ngữ

Hậu tố "#" đã được sử dụng bởi một số ngôn ngữ khác của.NET là các biến thể của các ngôn ngữ hiện tại, bao gồm J# (một ngôn ngữ.NET cũng được thiết kế bởi Microsoft có nguồn gốc từ Java 1.1), A# (từ Ada) và ngôn ngữ lập trình chức năng F#.Việc triển khai ban đầu của Eiffel for.NET được gọi là Eiffel# Hậu tố cũng đã được sử dụng cho các thư viện, chẳng hạn như Gtk# (một wrapper NET cho GTK+ và các thư viện GNOME khác) và Cocoa#

1.2.3 Mục tiêu của việc phát triển C#

Tiêu chuẩn ECMA liệt kê các mục tiêu của việc thiết kế ngôn ngữ C#:

- Ngôn ngữ được dự định là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đến nhiều mục đích sử dụng, và là một ngôn ngữ lập trình hướng đối tượng

- Ngôn ngữ và việc triển khai đáp ứng các nguyên tắc của ngành kỹ thuật phần mềm như kiểm tra chặt chẽ kiểu dữ liệu, kiểm tra giới hạn mảng, phát hiện các trường hợp sử dụng

Trang 20

các biến chưa có dữ liệu, và tự động thu gom rác Tính mạnh mẽ, sự bền bỉ, và năng suất của việc lập trình là rất quan trọng đối với ngôn ngữ này

- Ngôn ngữ sẽ được sử dụng để phát triển các thành phần của phần mềm theo hướng thích hợp cho việc triển khai trong các môi trường phân tán

- Khả năng di chuyển (portability) là rất quan trọng, đặc biệt là đối với những lập trình viên

đã quen với C và C++

- Hỗ trợ quốc tế hóa

- Ngôn ngữ sẽ được thiết kế để phù hợp với việc viết các ứng dụng cho cả hai hệ thống: hosted và nhúng, từ các phần mềm quy mô lớn, đến các phần mềm chỉ có các chức năng đơn giản

- Mặc dù các ứng dụng C# có tính kinh tế đối với các yêu cầu về bộ nhớ và chế độ xử lý, ngôn ngữ này không cạnh tranh trực tiếp về hiệu năng và kích thước đối với ngôn ngữ C hoặc assembly

1.2.4 Ưu điểm của ngôn ngữ C#

- C# là ngôn ngữ đơn giản, mạnh mẽ

C# được dựng trên nền tảng C++ và Java, ảnh hưởng bởi Delphi, VisualBasic nên ngôn ngữ C# được thừa hưởng các ưu điểm vào loại bỏ các yếu điểm của các ngôn ngữ trên, vì vậy

nó khá đơn giản, đồng thời loại bỏ các cú pháp dư thừa và thêm vào đó các cú pháp cải tiến hơn

C# là ngôn ngữ lập trình bậc cao, đa nền tảng vì vậy nó dễ dàng tiếp cận và phù hợp cho người mới bắt đầu học, ví dụ câu lệnh kinh điển dành cho người mới bắt đầu học là in

ra dòng chữ "Hello world", với C# ta chỉ cần 1 câu lệnh: System.Console.WriteLine("Hello world");

- C# là ngôn ngữ đa năng và hiện đại

C# phù hợp cho việc phát triển trong thời đại 4.0, bao gồm việc phát triển web, mobile app, game, học máy và trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain, microservices

Trang 21

- C# là một ngôn ngữ lập trình hướng đối tượng đồng thời hỗ trợ lập trình chức năng

C# hỗ trợ mạnh mẽ cho phương pháp lập trình hướng đối tượng, ngoài ra C# còn hỗ trợ các phương pháp lập trình chức năng thông qua các biểu thức lamba, khớp mẫu, functions, các thuộc tính bất biến

- C# là ngôn ngữ gõ tĩnh, định kiểu mạnh, hỗ trợ gõ động

C# được gõ tĩnh nên nó mang đầy đủ các ưu việt của phương pháp gõ tĩnh như bảo đảm

an toàn kiểu, tự động phân tích và nhận biết lỗi cú pháp ngay trong quá trình viết mã

Ngoài ra khi sử dụng C# kết hợp với IDE Visual Studio, C# được hỗ trợ gợi ý code bởi Visual Studio IntelliCode sử dụng trí tuệ nhân tạo giúp cho việc viết code trở nên nhanh chóng và dễ dàng hơn

- C# là một ngôn ngữ ít từ khóa

C# có khoảng hơn 80 từ khóa

- C# là một trong các ngôn ngữ lập trình phổ biến và phát triển nhất

Theo TIOBE Index, tính đến tháng 10/2020, C# là ngôn ngữ phổ biến thứ 5 thế giới Theo PYPL, tính đến tháng 10/2020, C# là ngôn ngữ được cộng đồng quan tâm và chia

Trang 22

- Ngoài ra C# còn có những ưu điểm:

C# là ngôn ngữ lập trình mã nguồn mở,vì vậy C# là miễn phí với tất cả mọi người, đồng thời mọi người đều có thể cùng tham gia phát triển, đề xuất thiết kế ngôn ngữ C#

C# là ngôn ngữ đa nền tảng vì vậy có thể biên dịch trên nhiều nền tảng máy tính khác nhau (Windows, Linux, MacOS)

C# có hiệu suất cao và tốc độ thực thi nhanh do sử dụng trình biên dich trung gian (CLR), điểm cộng nữa là tốc độ phát triển phần mềm nhanh chóng so với đa số các ngôn ngữ hiện tại C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ ngoài ra có thể viết C# bằng bất kỳ text editor nào khác như Visual Studio Code, Vim, Netbeam

C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, song cũng được bổ sung các yếu tố mang tính hiện đại nên dễ dàng tiếp cận cho người mới học và học nhanh với C#

C# được thiết kế và phát triển bởi Microsoft nên rất được Microsoft quan tâm và hỗ trợ

Trang 23

1.2.5 Nhược điểm của ngôn ngữ C#

C# theo một hướng nào đó, là ngôn ngữ lập trình phản ánh trực tiếp nhất đến NET Framework mà tất cả các chương trình.NET chạy, và nó phụ thuộc mạnh mẽ vào framework này Mọi dữ liệu cơ sở đều là đối tượng, được cấp phát và hủy bỏ bởi trình dọn rác Garbage-Collector (GC), và nhiều kiểu trừu tượng khác chẳng hạn như class, delegate, interface, exception phản ánh rõ ràng những đặc trưng của.NET runtime

So sánh với C và C++, ngôn ngữ này bị giới hạn và được nâng cao ở một vài đặc điểm nào đó, nhưng không bao gồm các giới hạn sau đây:

- Các con trỏ chỉ có thể được sử dụng trong chế độ không an toàn Hầu hết các đối tượng được tham chiếu an toàn, và các phép tính đều được kiểm tra tràn bộ đệm Các con trỏ chỉ được sử dụng để gọi các loại kiểu giá trị; còn những đối tượng thuộc bộ gom rác thì chỉ được gọi bằng cách tham chiếu

- Các đối tượng không thể được giải phóng tường minh

- Chỉ có đơn kế thừa, nhưng có thể cài đặt nhiều interface trừu tượng (abstract interfaces) Chức năng này làm đơn giản hóa sự thực thi của thời gian thực thi

- C# thì an-toàn-kiểu (typesafe) hơn C++

- Cú pháp khai báo mảng khác nhau (“int [ ] a = new int [ 5 ]”)

- Kiểu thứ tự được thay thế bằng tên miền không gian

Trang 24

- Phát triển web front end (Blazor WebAssembly,Uno platform)

- Phát triển desktop app (Winform, WPF, UWP,WinUI, Mono, Uno, MAUI,Blazor desktop )

- Phát triển game 2D, 3D đa nền tảng (Game engine:Unity, Monogame, Godot, Stride, CryEngine, Flax Engine, Evergine, NeoAxis, XNA )

- Phát triển thực tế ảo (VR), thực tế tăng cường(AR), thực tế hỗn hợp (MR) (HoloLens,Unity,CryEngine, Oculus quest )

- Phát triển ứng dụng đồ họa 2D,3D đa nền tảng (2D: SkiaSharp, ImageSharp ; 3D: OpenTK, SharpDX, SharpVulkan, Vulkan.NET, Veldrid, Silk.NET, Helix Toolkit, Aspose )

- Phát triển mobile app, IOS native, Android native (Xamarin,MAUI,Uno platform)

- Phát triển đám mây (Azure,AWS,Google Cloud )

- Học máy và trí tuệ nhân tạo (ML.Net, TensorFlow, csiSharp )

- Data science, bigdata (csiSharp, Apache Spark)

- Blockchain (NEO, Stratis)

- Microservices and containers

- Internet of thing (IoT,5G)

- Hệ thống nhúng (Raspberry pi, PLC)

1.3 SQL Server

1.3.1 Giới Thiệu SQL Server

SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management

System (RDBMS) ) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client

và máy cài SQL Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS

SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…

Trang 25

Một vài ấn bản SQL Server:

- Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy

cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánh địa chỉ

12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu)

- Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với

Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM

- Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc

biệt như giới hạn số lượng người kết nối vào Server cùng một lúc… Ðây là phiên bản

sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân,

tổ chức xây dựng và kiểm tra ứng dụng

- Workgroup: ấn bản SQL Server Workgroup bao gồm chức năng lõi cơ sở dữ liệu

nhưng không có các dịch vụ đi kèm Chú ý phiên bản này không còn tồn tại ở SQL Server 2012

- Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Được

tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu,

an toàn trong lưu trữ, và nhanh chóng triển khai SQL Server Express là phiên bản miễn phí, không giới hạn về số cơ ở dữ liệu hoặc người sử dụng, nhưng nó chỉ dùng cho 1

bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server 2005 nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ

1.3.2 Cài Ðặt SQL Server (Installation)

Để cài SQL Server thì cần có phiên bản Developer Edition và ít nhất là 64 MB RAM,

500 MB hard disk để có thể cài SQL Server Bạn có thể cài trên Windows Server hay Windows

10, Windows 8, Windows 7, Windows XP …

Các bước cài đặt không quá khó khăn với các phiên bản SQL Server khác nhau, bạn có thể xem lại bài Hướng dẫn cài đặt SQL Server 2008 Khi cài đặt bạn cần lưu ý các điểm sau:

Trang 26

Ở màn hình thứ hai bạn chọn Install Database Server Sau khi install xong SQL Server bạn có thể install thêm Analysis Service nếu bạn thích

Ở màn hình Installation Definition bạn chọn Server and Client Tools

Sau đó bạn nên chọn kiểu Custom và chọn tất cả các bộ phận của SQL Server Ngoài

ra nên chọn các giá trị mặc định (default)

Ở màn hình Authentication Mode nhớ chọn Mixed Mode Lưu ý vì SQL Server có thể dùng chung chế độ bảo mật (security) với hệ điều hành Windows và cũng có thể dùng chế độ bảo mật riêng của nó Trong Production Server người ta thường dùng Windows Authetication

vì độ an toàn cao hơn và dễ dàng cho người quản lý mạng và cả cho người sử dụng Nghĩa là một khi bạn được chấp nhận (authenticated) kết nối vào domain thì bạn có quyền truy cập dữ liệu (access data) trong SQL Server Tuy nhiên ta nên chọn Mixed Mode để dễ dàng cho việc học tập

Sau khi install bạn sẽ thấy một icon nằm ở góc phải bên dưới màn hình, đây chính là Service Manager Bạn có thể Start, Stop các SQL Server services dễ dàng bằng cách double-click vào icon này

1.3.3 Lịch sử ra đời SQL Server và các phiên bản

Phiên bản đầu tiên của Microsoft SQL Server ra đời đầu tiên vào năm 1989 cho các hệ điều hành chạy 16 bít với SQL Server phiên bản 1.0 và tiếp tục phát triển cho tới ngày nay

SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5 Sau

đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0 Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5 Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn

Một điểm đặc biệt đáng lưu ý ở phiên bản 2000 là Multiple-Instance Tức là bạn có thể cài dặt phiên bản 2000 chung với các phiên bản trước mà không cần phải gỡ chúng Nghĩa là bạn có thể chạy song song version 6.5 hoặc 7.0 với phiên bản 2000 trên cùng một máy (điều

Trang 27

này không thể xảy ra với các phiên bản trước đây) Khi đó phiên bản cũ trên máy bạn là Default Instance còn phiên bản 2000 mới vừa cài sẽ là Named Instance

Từ tháng 10 năm 2016, các phiên bản sau được Microsoft hỗ trợ:

1.3.4 Các thành phần cơ bản trong SQL Server

SQL Server được cấu tạo bởi nhiều thành phần như Database Engine, Reporting Services, Notification Services, Integration Services, Full Text Search Service… Các thành phần này khi phối hợp với nhau tạo thành một giải pháp hoàn chỉnh giúp cho việc lưu trữ và phân tích dữ liệu một cách dễ dàng

Database Engine

– Cái lõi của SQL Server:

Ðây là một engine có khả năng chứa data ở các quy mô khác nhau dưới dạng table và support tất cả các kiểu kết nối (data connection) thông dụng của Microsoft như

ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC)

Ngoài ra nó còn có khả năng tự điều chỉnh (tune up) ví dụ như sử dụng thêm các tài nguyên (resource) của máy khi cần và trả lại tài nguyên cho hệ điều hành khi một user log off

Replication

– Cơ chế tạo bản sao (Replica):

Giả sử bạn có một database dùng để chứa dữ liệu được các ứng dụng thường xuyên cập nhật Một ngày đẹp trời bạn muốn có một cái database giống y hệt như thế trên một server khác để

Trang 28

chạy báo cáo (report database) (cách làm này thường dùng để tránh ảnh hưởng đến performance của server chính) Vấn đề là report server của bạn cũng cần phải được cập nhật thường xuyên để đảm bảo tính chính xác của các báo cáo Bạn không thể dùng cơ chế back

up and restore trong trường hợp này Thế thì bạn phải làm sao? Lúc đó cơ chế replication của SQL Server sẽ được sử dụng để bảo đảm cho dữ liệu ở 2 database được đồng bộ (synchronized) Replication sẽ được bàn kỹ trong bài 12

Integration Services (DTS)

– Integration Services là một tập hợp các công cụ đồ họa và các đối tượng lập trình cho việc

di chuyển, sao chép và chuyển đổi dữ liệu

Nếu bạn làm việc trong một công ty lớn trong đó data được chứa trong nhiều nơi khác nhau

và ở các dạng khác nhau cụ thể như chứa trong Oracle, DB2 (của IBM), SQL Server, Microsoft Access….Bạn chắc chắn sẽ có nhu cầu di chuyển data giữa các server này (migrate hay transfer) và không chỉ di chuyển bạn còn muốn định dạng (format) nó trước khi lưu vào database khác, khi đó bạn sẽ thấy DTS giúp bạn giải quyết công việc trên dễ dàng

Analysis Services

Một dịch vụ phân tích dữ liệu rất hay của Microsoft

Dữ liệu (Data) chứa trong database sẽ chẳng có ý nghĩa gì nhiều nếu như bạn không thể lấy được những thông tin (Information) bổ ích từ đó Do đó Microsoft cung cấp cho bạn một công cụ rất mạnh giúp cho việc phân tích dữ liệu trở nên dễ dàng và hiệu quả bằng cách dùng khái niệm hình khối nhiều chiều (multi-dimension cubes) và kỹ thuật “khai phá dữ liệu” (data mining)

Notification Services

Dịch vụ thông báo Notification Services là nền tảng cho sự phát triển và triển khai các ứng dụng tạo và gửi thông báo Notification Services có thể gửi thông báo theo địch thời đến hàng ngàn người đăng ký sử dụng nhiều loại thiết bị khác nhau

Reporting Services

Trang 29

Reporting Services bao gồm các thành phần server và client cho việc tạo, quản lý và triển khai các báo cáo Reporting Services cũng là nền tảng cho việc phát triển và xây dựng các ứng dụng báo cáo

Full Text Search Service

Dịch vụ SQL Server Full Text Search là một dịch vụ đặc biệt cho đánh chỉ mục và truy vấn cho dữ liệu văn bản không cấu trúc được lưu trữ trong các CSDL SQL Server Đánh chỉ mục với Full Text Search có thể dduwowcj tạo trên bất kỳ cột dựa trên dữ liệu văn bản Nó sẽ rất hiệu quả cho việc tìm các sử dụng toán tử LIKE trong SQL với trường hợp tìm văn bản

Service Broker

Được sử dụng bên trong mỗi Instance, là môi trường lập trình cho việc các ứng dụng nhảy qua các Instance Service Broker giao tiếp qua giao thức TCP/IP và cho phép các component khác nhau có thể được đồng bộ cùng nhau theo hướng trao đổi các message Service Broker chạy như một phần của bộ máy cơ sở dữ liệu, cung cấp một nền tảng truyền message tin cậy và theo hàng đợi cho các ứng dụng SQL Server

Trang 30

CHƯƠNG II: KHẢO SÁT HỆ THỐNG

Phần mềm HRM (Human Resource Management software) là phần mềm nhân sự được

thiết kế để quản lý, tối ưu hóa cũng như hỗ trợ các nhiệm vụ liên quan đến nhân sự Phần mềm

này giúp người nhân viên và quản lý phát huy hết khả năng trong công việc của họ Đồng thời, dựa trên kết quả của phần mềm HRM, doanh nghiệp cũng sẽ biết được nên tiếp tục hay thay đổi định hướng mới Cụ thể là ứng dụng công nghệ vào trong việc quản trị nhân sự toàn diện

từ việc quản lý hồ sơ, tuyển dụng, chấm công, tính lương, trả lương, đào tạo, tính KPIs, BHYT, BHXH,…nhanh chóng, thuận tiện, chính xác Giúp nhân sự tiết kiệm được thời gian Thông qua đó ban lãnh đạo doanh nghiệp cũng nắm rõ được tình hình của doanh nghiệp và đưa ra những phương án triển khai phù hợp

2.1.3 Các chức năng cơ bản của phần mềm HRM

Để một doanh nghiệp hoạt động được tốt hơn nên việc phần mềm HRM được ra đời và đáp ứng những khó khăn mà việc quản trị nhân sự gặp phải Những chức năng mà phần mềm HRM mang lại để giúp cho doanh nghiệp thuận lợi hơn trong quá trình quản trị đó là:

Trang 31

Quản lý hệ thống nhân sự: Phần mềm HRM giúp doanh nghiệp lưu trữ toàn bộ thông

tin sơ yếu lý lịch, hợp đồng, bảo hiểm, thông tin của nhân viên,…Quản lý những vấn đề kinh nghiệm, chuyên nghiệp, năng lực của nhân viên trong doanh nghiệp

Tạo ra quy trình tuyển dụng thông minh: Phần mềm sẽ hỗ trợ doanh nghiệp trong

quá trình tuyển dụng từ những bước đơn giản như tạo đơn đề xuất tuyển dụng trên hệ thống rồi đến sàng lọc hồ sơ ứng viên phù hợp Bên cạnh đó có thể kết nối với những sàn giao dịch việc làm hoặc website tuyển dụng để tìm kiếm những ứng viên phù hợp

Quản lý, đánh giá, xếp loại chất lượng của nhân viên: Doanh nghiệp hoàn toàn có

thể quản lý, đánh giá, xếp loại được chất lượng nhân viên thông qua phần mềm HRM Người dùng hoàn toàn có thể đánh giá, thiết lập theo theo đầu mục công việc, xem quá trình đào tạo, kết quả KPI để đưa ra những quyết định tăng lương, trừ lương hay thưởng đối với nhân viên

Quản lý chấm công, tính lương chính xác: Thật phiền phức nếu như cứ đến tháng là

nhân sự lại mất thời gian cho việc ngồi tính thủ công từng người một về bảng lương cũng như ngày đi, ngày nghỉ Điều đó đã được phần mềm HRM giải quyết nhanh chóng Kết nối với máy chấm công để nhận dữ liệu mỗi ngày Thiết lập ca làm, lịch nghỉ,… và làm bảng chấm công cho từng bộ phận Căn cứ vào chấm công thì phần mềm chấm công tính lương sẽ tự động tính lương Tự động trừ vào những ngày nghỉ phép, ngày đi muộn, tính thuế thu nhập hay lương tạm ứng và gửi phiếu lương cho nhân viên Tính năng này giúp giảm thiểu thời gian cho nhân sự trong việc ngồi chấm công, tính lương mỗi tháng của doanh nghiệp để tập trung vào những việc tối ưu quy trình vận hành

Báo cáo tình hình nhân sự cho doanh nghiệp: Dựa vào những yếu tố mà phần mềm

HRM đánh giá thì ban lãnh đạo sẽ căn cứ vào đó để đánh giá năng lực của mỗi nhân viên và giám sát được tình hình nhân sự của doanh nghiệp HRM cung cấp các công cụ để tạo ra các báo cáo và phân tích về các hoạt động nhân sự như tỷ lệ nghỉ việc, hiệu suất làm việc, và chi phí nhân sự

2.1.4 Khái niệm mô hình 3 lớp

Mô hình 3 lớp là một kiến trúc phần mềm được sử dụng để thiết kế và triển khai ứng dụng phần mềm Đây là một trong những mô hình phát triển phổ biến trong công nghệ phần

Trang 32

mềm Các lớp này tách biệt các thành phần của ứng dụng, từ đó làm cho việc quản lý và bảo trì ứng dụng trở lên rõ ràng hơn Nó cũng cho phép phát triển song song giữa các lớp, cho phép nhiều nhóm phát triển làm việc độc lập trên các phần khác nhau của ứng dụng Mô hình này chia ứng dụng thành ba lớp chính:

Lớp giao diện người dùng (Presentation Layer): Lớp này tương tác trực tiếp với

người dùng cuối Nó chịu trách nhiệm hiển thị dữ liệu và cung cấp giao diện cho người dùng tương tác với ứng dụng Đây thường là phần giao diện đồ họa cho người dùng

Lớp Logic ứng dụng (Business Logic Layer): Lớp này xử lý Logic của ứng dụng Nó

chứa các quy tắc kinh doanh, xử lý dữ liệu và thực hiện các nhiệm vụ Lgic cần thiết Lớp này không liên quan trực tiếp đến việc hiển thị dữ liệu hoặc tương tác với người dùng, mà tập trung vào xử lý Logic ứng dụng và dữ liệu

Lớp truy cập dữ liệu (Data Acess Layer): Lớp này làm nhiệm vụ giao tiếp với các

nguồn dữ liệu như cơ sở dữ liệu, tệp tin hay dịch vụ Web Nó cung cấp các phương thức để truy cập và thay đổi dữ liệu từ các nguồn này Lớp này đảm bảo rằng Logic ứng dụng và giao diện người dùng có thể tương tác với nhau một cách hiệu quả

(Không cần thiết) DTO Layer: Đây là một lớp phụ, đây là lớp định nghĩa các table

trong database, định nghĩa cột của nó cũng như để ta gán data khi query lấy dữ liệu Có thể hiểu nôm na là 1 dạng cơ bản ORM (Object Relation Mapping)

2.1.5 Lợi thế của mô hình 3 lớp

 Việc phân chia thành từng lớp giúp cho code được tường minh hơn Nhờ vào việc chia

ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ Nhằm giảm sự kết dính

 Dễ bảo trì khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong 1 lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình

Trang 33

 Dễ phát triển, tái sử dụng: khi chúng ta muốn thêm một chức năng nào đó thì việc lập trình theo một mô hình sẽ dễ dàng hơn vì chúng ta đã có chuẩn để tuân theo Và việc

sử dụng lại khi có sự thay đổi giữa hai môi trường ( Winform sang Webfrom ) thì chỉ việc thay đổi lại lớp GUI

 Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian

 Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm

vụ trong mô hình 3 lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc của mình

2.2 Khảo sát chi tiết

2.2.1 Khảo sát hiện trạng

- Việc sử dụng bảng tính Excel tuy chính xác nhưng còn rất nhiều hạn chế

- Ban quản lý nhận thấy việc quản lý thông tin nhân viên là cần thiết

- Khó có thể quản lý chấm công cho nhân viên bằng bảng tính Excel

- Nhân viên không thể biết tình trạng công việc của mình

- Quản lý điều chuyển, khen thưởng kỉ luật, tăng ca, phụ cấp là rất cần thiết

- Tính lương cho nhân viên dễ dàng và chính xác với số lượng nhân viên lớn

2.2.2 Hạn chế

- Chưa thể tính lương theo doanh số mà nhân viên thực hiện được trong quá trình làm việc

- Chưa đáp ứng các yêu cầu về pháp luật về vấn đề tiền lương và lao động

2.3 Danh sách các trang

2.3.1 Các chức năng chính của phần mềm

2.3.1.1 Chức năng quản lý nhân viên

a) Chức năng quản lý thông tin nhân viên:

 Dân tộc

Trang 34

 Điều chuyển nhân viên

 Khen thưởng – kỉ luật

 Nhân viên thôi việc

2.3.1.2 Chức năng quản lý tiền lương

 Bảng lương nhân viên

 Ứng lương nhân viên

 Nhân viên phụ cấp

 Quá trình nâng lương nhân viên

2.3.1.3 Chức năng quản lý chấm công

 Quản lý loại ca

 Quản lý loại công

 Bảng công nhân viên:

Bảng công sẽ bao gồm các ký công của nhân viên Admin có thể thêm kỳ công và phát sinh kỳ công cho nhân viên

 Tăng ca

2.3.2 Các yêu cầu chức năng

a) Quản lý nhân viên

 Cập nhật thông tin nhân viên (Thêm, sửa, xóa, …)

Trang 35

 Lưu trữ thông tin nhân viên

 In thông tin nhân viên

b) Quản lý tiền lương

 Chấm công cho nhân viên

 Tính lương dựa trên bảng chấm công

 Ứng và thanh toán lương

c) Quản lý chấm công

 Quản lý các chấm công

 Quản lý cập nhật các kỳ công

 Quản lý kỳ công theo tháng

 Quản lý kỳ công theo từng nhân viên

d) Báo cáo và thống kê

 Thống kê báo cáo về nhân viên

 Thống kê báo cáo về tiền lương

 Báo cáo tổng hợp

e) Sơ đồ phân cấp chức năng tổng quát

Hình 1: Sơ đồ phân cấp chức năng tổng quát

Trang 36

2.3.3 Các yêu cầu phi chức năng

Dễ sử dụng: Phần mềm phải có một giao diện thân thiện và cấu trúc dễ hiểu và dễ sử

dụng các ngôn ngữ phù hợp với ngôn ngữ tự nhiên người dùng

Khả năng tính toán: Việc tính toán và quản lý tiền lương cần chuẩn xác để không ảnh

hưởng đến quyền lợi nhân viên

Tương thích với nhiều phần mềm khác: Phần mềm phải tương thích với các phần

mềm khác để không gây xung đột và tạo ra sự cố máy khi chạy chương trình

Tương thích với nhiều thiết bị ngoại vi: Phần mềm cần tương thích với các thiết bị

bên ngoài như: bàn phím, chuột,…

Giao diện bắt mắt: Dễ nhìn, dễ sử dụng, mang lại cảm giác dễ chịu cho người dùng

Yêu cầu bộ nhớ: Phần mềm khi được viết ra cần phải tiết kiệm bộ nhớ cho các thiết

bị để hoạt động tốt hơn

Tính bảo mật: Vì là phần mềm sử dụng cho doanh nghiệp nên thông tin về mọi mặt

cần được bảo mật để không ảnh hưởng đến doanh nghiệp

Trang 37

CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

3.1 Biểu đồ Usecase

3.1.1 Xác định Actor

Admin: Là người đứng đầu của hệ thống

Nhân viên: Nhân viên có thể thực hiện các chức năng được Amin cung cấp hoặc một vài chức năng cơ bản ở mức thấp hơn Admin

Bảng 3 1: Phân tích yêu cầu chức năng hệ thống

Admin 1.0: Phân quyền nhân viên

1.1: Xem thông tin nhân viên

1.2: Cập nhật thông tin nhân viên (Thêm, sửa, xóa,…)

1.3: Chấm công nhân viên

1.4: Cập nhật bảng chấm công

1.5: Tính lương nhân viên

1.6: Lập báo cáo, thống kê

Có thể nâng cấp một vài nhân viên lên Admin

Nhân viên 2.0: Tạo tài khoản và đăng nhập

2.1: Xem thông tin nhân viên

2.2: Xem thông tin chấm công

2.3: Xem thông tin tiền lương

2.4: Phản hồi với Admin

Trang 38

*Chú ý: Người dùng có thể là duy nhất hoặc cũng có thể là nhiều người dùng với chức năng

giống hệt nhau

3.1.2 Xác định các UseCase

- UseCase xem thông tin nhân viên

- UseCase xem thông tin tiền lương

- UseCase xem danh sách chấm công

- UseCase xem thông tin chi tiết nhân viên

- UseCase xem thông tin chi tiết tiền lương

- UseCase chọn thông tin nhân viên

- UseCase thêm thông tin nhân viên

- UseCase sửa thông tin nhân viên

- UseCase xóa thông tin nhân viên

- UseCase lưu thông tin nhân viên

- UseCase in thông tin nhân viên và tiền ương

- UseCase thanh toán tiền lương

- UseCase chấm công cho nhân viên

- UseCase báo cáo thống kê

Ngày đăng: 03/12/2024, 15:51

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trang chính thức của Microsoft về hướng dẫn và tài liệu về SQL Server: https://docs.microsoft.com/en-us/sql/ Link
[2] Tài liệu hướng dẫn chính thức của Microsoft về phát triển ứng dụng web sử dụng ASP.NET: https://docs.microsoft.com/en-us/aspnet/ Link
[3] Tài liệu hướng dẫn cho Entity Framework Core, một ORM framework thường được sử dụng với SQL Server:https://docs.microsoft.com/en-us/ef/core/ Link
[4] Tài liệu về các phần mềm và ngôn ngữ sử dụng: https://vi.wikipedia.org/wiki/Microsoft_Visual_Studio [5] Diễn đàn và cộng đồng lập trình:https://stackoverflow.com/questions/tagged/sql-server [6] Ý tưởng xây dựng phần mềm:https://youtube.com/playlist?list=PL4MwTSyUjf3XoKLCAAn0qNAV5o2OhnPW&si=1UgpF5o0Rrn4l70z Link
[7] Xây dựng phần mềm kế toán tiền lương tại công ty xuất nhập khẩu Bắc Giang – Tác giả: Ngô Duy Quang – Sinh viên học viện tài chính Khác
[8] Phân tích thiết kế hệ thống quản lý tiền lương – Tác giả: Nguyễn Phương Hậu – Sinh viên khoa công nghê thông tin, đại học Thái Nguyên Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w