Tải bản đầy đủ (.pdf) (74 trang)

Xây dựng ứng dụng quản lý bán hàng cửa hàng jolie

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.86 MB, 74 trang )

Niên khóa : 2012 – 2016
XÂY DỰNG ỨNG DỤNG QUẢN LÝ BÁN HÀNG CỬA HÀNG JOLIE

VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

LÊ THU PHƢƠNG
XÂY DỰNG ỨNG DỤNG QUẢN LÝ BÁN HÀNG
CỬA HÀNG JOLIE
Ngành: Công nghệ thông tin

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – Năm 2016


VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

LÊ THU PHƢƠNG
XÂY DỰNG ỨNG DỤNG QUẢN LÝ BÁN HÀNG
CỬA HÀNG JOLIE
Ngành: Công nghệ thông tin
Giáo viên hướng dẫn: ThS. Phạm Công Hòa

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC

Hà Nội – Năm 2016


VIỆN ĐẠI HỌC MỞ HÀ NỘI



CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CÔNG NGHỆ THÔNG TIN

Độc lập – Tự do – Hạnh phúc

NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
Họ và tên: Lê Thu Phƣơng

Giới tính: Nữ

Ngày, tháng, năm sinh: 25/09/1994

Nơi sinh: Hà Nội

Chuyên ngành: Công nghệ thông tin

Mã số:12A10010125

1. TÊN ĐỀ TÀI
Xây dựng ứng dụng quản lý bán hàng cửa hàng Jolie.
2. NHIỆM VỤ VÀ NỘI DUNG
-

Khảo sát quy trình quản lý của cửa hàng Jolie

-

Phân tích, xác định các yêu cầu của hệ thống


-

Xây dựng hệ thống quản lý cửa hàng Jolie

3. NGÀY GIAO NHIỆM VỤ: 25/12/2015
4. NGÀY HOÀN THÀNH NHIỆM VỤ: 12/05/2016
5. GIÁO VIÊN HƢỚNG DẪN: ThS. Phạm Công Hòa
Ngày……tháng…… năm 2016
GIÁO VIÊN HƢỚNG DẪN

KHOA CÔNG NGHỆ THÔNG TIN


LỜI CẢM ƠN
Trước hết, em xin bày tỏ tình cảm và lòng biết ơn của em tới thầy giáo Phạm
Công Hòa. Người đã từng bước tận tình hướng dẫn, giúp đỡ em trong quá trình thực
hiện đồ án tốt nghiệp của mình.
Em xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ Thông tin –
Viện Đại học Mở Hà Nội đã dìu dắt, dạy dỗ em cả về kiến thức chuyên môn và tinh
thần học tập để em có được những kiến thức thực hiện đồ án tốt nghiệp của mình.
Em xin chân thành cảm ơn TS. Dương Thăng Long – Trưởng khoa Công
nghệ Thông tin – Viện Đại học Mở Hà Nội, cùng ban giám hiệu nhà trường, các
phòng ban đã giúp đỡ tạo điều kiện tốt nhất cho em trong suốt thời gian học tập tại
trường.
Tuy có nhiều cố gắng trong quá trình học tập, cũng như trong quá trình làm
đồ án tốt nghiệp không thể tránh khỏi những thiếu sót, em rất mong được sự góp ý
quý báu của tất cả các thầy cô giáo cũng như tất cả các bạn để kết quả của em được
hoàn thiện hơn.
Một lần nữa em xin chân thành cảm ơn!

Hà Nội, Ngày 20 tháng 04 năm 2016
Sinh viên

Lê Thu Phương


LỜI NÓI ĐẦU
Ngày nay công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả
chiều rộng và chiều sâu. Máy tính điện tử không còn là một thứ phương tiện quý
hiếm, mà đang ngày càng trở thành một công cụ làm viện và giải trí thông dụng của
con người không chỉ ở công sở mà ngay cả trong gia đình.
Đứng trước vai trò của thông tin hoạt động cạnh tranh, các tổ chức và các
doanh nghiệp đều tìm mọi biện pháp để xây dựng và hoàn thiện hệ thống thông tin
của mình nhằm tin học hóa các hoạt động tác vụ của đơn vị.
Hiện nay, các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải
thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành quản lý các
công tác bằng các ứng dụng trên máy tính. Với những thao tác đơn giản, người sử
dụng đã có thể quản lý công việc nhập, xuất hàng cũng như danh sách sảm phẩm mà
không cần dùng đến sổ sách, giấy tờ viết tay, tránh được sơ suất khi thao tác thủ công.
Để tiếp cận và đóng góp đầy mạnh sự phổ biến của ứng dụng quản lý ở Việt
Nam, em đã tìm hiểu và xây dựng “Ứng dụng quản lý bán hàng cửa hàng Jolie”.
Với sự hướng dẫn tận tình của thầy Phạm Công Hòa em đã hoàn thành đồ án
tốt nghiệp này. Tuy cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống
nhưng không thể tránh khỏi những thiếu sót. Em rất mong được sự thông cảm và
góp ý của các thầy cô.
Em xin chân thành cảm ơn!


MỤC LỤC
CHƢƠNG 1 ............................................................................................................... 1

GIỚI THIỆU ĐỀ TÀI ............................................................................................... 1
1.1.

Khảo sát hệ thống ..........................................................................................1

1.1.1.

Tổ chức ...................................................................................................1

1.1.2.

Mô hình kinh doanh ................................................................................1

1.1.3.

Cách thức hoạt động ...............................................................................1

1.1.4.

Hiện trạng ...............................................................................................2

1.1.5.

Giải pháp .................................................................................................2

1.2.

Mục tiêu và nhiệm vụ nghiên cứu .................................................................2

1.3.


Phạm vi đề tài ................................................................................................2

1.3.1.

Nhân viên ................................................................................................3

1.3.2.

Chủ cửa hàng ..........................................................................................3

1.4.

Những lợi ích khi ứng dụng Công nghệ Thông tin vào quản lý cửa hàng ....3

CHƢƠNG 2 ............................................................................................................... 5
CÔNG NGHỆ SỬ DỤNG ......................................................................................... 5
2.1.

Ngôn ngữ lập trình C# ...................................................................................5

2.1.1.

Tổng quan về ngôn ngữ lập trình C# ......................................................5

2.1.2.

Ngôn ngữ C# & các ngôn ngữ khác .......................................................6

2.1.3.


Tại sao ta lại muốn sử dụng ngôn ngữ C# ..............................................8

2.2.

Ngôn ngữ SQL và cơ sở dữ liệu SQL server ..............................................11

CHƢƠNG 3 ............................................................................................................. 14
PHÂN TÍCH YÊU CẦU ......................................................................................... 14
3.1.

Phân tích hệ thống .......................................................................................14

3.1.1.

Nghiệp vụ lập phiếu đặt hàng ...............................................................14

3.1.2.

Nghiệp vụ nhập hàng ............................................................................14

3.1.3.

Nghiệp vụ bán hàng ..............................................................................14

3.2.

Các quy trình ...............................................................................................15



3.2.1.

Quy trình đăng nhập .............................................................................15

3.2.2.

Quy trình đăng ký .................................................................................16

3.2.3.

Quy trình nhập hàng .............................................................................16

3.2.4.

Quy trình bán hàng ...............................................................................17

3.3.

Phát biểu bài toán ........................................................................................18

CHƢƠNG 4 ............................................................................................................. 20
PHÂN TÍCH HỆ THỐNG ..................................................................................... 20
4.1.

Phân cấp chức năng .....................................................................................20

4.2.

Phân rã chức năng........................................................................................22


4.2.1.

Phân rã chức năng .................................................................................22

4.2.2.

Mô tả các chức năng hệ thống ..............................................................22

4.3.

Sơ đồ mức ngữ cảnh ....................................................................................24

4.4.

Sơ đồ luồng dữ liệu mức đỉnh .....................................................................25

4.5.

Sơ đồ luồng dữ liệu mức dưới đỉnh .............................................................26

CHƢƠNG 5 ............................................................................................................. 30
THIẾT KẾ VÀ CÀI ĐẶT CHƢƠNG TRÌNH ..................................................... 30
5.1.

Xác định danh sách các thuộc tính cần quản lý ...........................................30

5.1.1.

Chính xác hóa thông tin ........................................................................30


5.1.2.

Thêm bớt thuộc tính ..............................................................................31

5.1.3.

Xác định liên kết thực thể .....................................................................33

5.2.

Thiết kế cơ sở dữ liệu mức logic – mô hình quan hệ ..................................34

5.2.1.

Quy tắc 1: chuyển kiểu thực thể mạnh .................................................34

5.2.2.

Quy tắc 2 : chuyển thuộc tính đa trị ......................................................34

5.2.3.

Quy tắc 5: chuyển đổi liên kết quan hệ một – nhiều ............................35

5.3.

Các ràng buộc khi tạo bảng .........................................................................35

5.3.1.


Ràng buộc Check ..................................................................................35

5.3.2.

Ràng buộc Primary key.........................................................................36

5.3.3.

Ràng buộc Default ................................................................................36

5.3.4.

Ràng buộc Foreign key .........................................................................36


5.3.5.
5.4.

Mô hình khái niệm ................................................................................37

Thiết kế cơ sở dữ liệu vật lý ........................................................................38

5.4.1.

Bảng nhà cung cấp ................................................................................38

5.4.2.

Bảng sản phẩm ......................................................................................38


5.4.3.

Bảng loại sản phẩm ...............................................................................39

5.4.4.

Bảng nhân viên .....................................................................................39

5.4.5.

Bảng đơn đặt hàng ................................................................................39

5.4.6.

Bảng chi tiết đơn đặt hàng ....................................................................40

5.4.7.

Bảng phiếu nhập ...................................................................................40

5.4.8.

Bảng chi tiết phiếu nhập .......................................................................40

5.4.9.

Bảng hóa đơn ........................................................................................41

5.4.10. Bảng chi tiết hóa đơn ............................................................................41
5.4.11. Bảng quyền ...........................................................................................41

5.4.12. Bảng tài khoản ......................................................................................42
5.4.13. Bảng hình thức thanh toán ....................................................................42
5.5.

Thiết kế giao diện ........................................................................................42

5.5.1.

Giao diện đăng nhập .............................................................................42

5.5.2.

Giao diện đăng ký .................................................................................43

5.5.3.

Giao diện Windows Form chính ...........................................................43

5.5.4.

Giao diện nhà cung cấp .........................................................................44

5.5.5.

Giao diện loại sản phẩm........................................................................44

5.5.6.

Giao diện sản phẩm...............................................................................45


5.5.7.

Giao diện nhân viên ..............................................................................45

5.5.8.

Giao diện đơn đặt hàng .........................................................................46

5.5.9.

Giao diện phiếu nhập ............................................................................46

5.5.10. Giao diện hóa đơn .................................................................................47
5.5.11. Giao diện hình thức thanh toán .............................................................47
5.6.

Giao diện hệ thống .......................................................................................48

5.6.1.

Giao diện đăng nhập .............................................................................48

5.6.2.

Giao diện Windows Form chính ...........................................................48


5.6.3.

Giao diện Windows Form khi đăng nhập bằng tài khoản của nhân viên

49

5.6.4.

Giao diện đăng ký .................................................................................49

5.6.5.

Giao diện nhà cung cấp .........................................................................50

5.6.6.

Giao diện loại sản phẩm........................................................................50

5.6.7.

Giao diện sản phẩm...............................................................................51

5.6.8.

Giao diện đơn đặt hàng .........................................................................51

5.6.9.

Giao diện phiếu nhập ............................................................................52

5.6.10. Giao diện hóa đơn .................................................................................52
5.6.11. Giao diện hình thức thanh toán .............................................................53
5.6.12. Giao diện báo cáo doanh thu ................................................................53
5.6.13. Giao diên in báo cáo doanh thu ............................................................54

5.6.14. Giao diện thống kê hàng nhập ..............................................................54
5.6.15. Thống kê hàng nhập ..............................................................................55
5.6.16. Giao diện thống kê hàng xuất ...............................................................55
5.6.17. Thống kê hàng xuất...............................................................................56
5.6.18. Giao diện thống kê hàng tồn .................................................................56
5.6.19. Thốn kê hàng tồn ..................................................................................57
5.6.20. Giao diện đăng xuất ..............................................................................57
5.7.

Hướng dẫn sử dụng......................................................................................58

TÀI LIỆU THAM KHẢO ...................................................................................... 61


DANH MỤC HÌNH ẢNH
Hình 3.1. Nghiệp vụ lập phiếu đặt hàng ...................................................................14
Hình 3.3. Nghiệp vụ bán hàng ..................................................................................15
Hình 3.4. Quy trình đăng nhập ..................................................................................15
Hình 3.6. Quy trình nhập hàng ..................................................................................16
Hình 4.1. Sơ đồ phân rã chức năng ...........................................................................22
Hình 4.2. Sơ đồ mức ngữ cảnh..................................................................................24
Hình 4.3. Sơ đồ luồng dữ liệu mức đỉnh ...................................................................25
Hình 4.4. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Quản lý hệ thống .........26
Hình 4.5. Sơ đồ luồng dữ liệu mức dưới đỉnh (1.1) – chức năng Quản lý người
dùng ...........................................................................................................................26
Hình 4.6. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Quản lý danh mục .......27
Hình 4.7. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Quản lý nhập hàng.......27
Hình 4.8. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Quản lý bán hàng.........28
Hình 4.9. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Tìm kiếm .....................28
Hình 4.10. Sơ đồ luồng dữ liệu mức dưới đỉnh – chức năng Báo cáo/ thống kê ......29

Hình 5.1. Mô hình khái niệm ....................................................................................37
Hình 5.3. Giao diện đăng ký .....................................................................................43
Hình 5.4. Giao diện Windows Form chính ...............................................................43
Hình 5.8. Giao diện nhân viên ..................................................................................45
Hình 5.13. Form đăng nhập.......................................................................................48
Hình 5.15. Windows Form khi đăng nhập bằng tài khoản của người quản lý .........48
Hình 5.15. Windows Form khi đăng nhập bằng tài khoản của nhân viên ................49
Hình 5.17. Form nhà cung cấp ..................................................................................50
Hình 5.18. Form loại sản phẩm .................................................................................50
Hình 5.19. Giao diện sản phẩm .................................................................................51
Hình 5.20. Giao diện đơn đặt hàng ...........................................................................51
Hình 5.21. Giao diện phiếu nhập ..............................................................................52
Hình 5.22. Giao diện hóa đơn ...................................................................................52
Hình 5.23. Giao diện hình thức thanh toán ...............................................................53
Hình 5.24. Giao diện báo cáo doanh thu ...................................................................53
Hình 5.25. Giao diện in báo cáo doanh thu ...............................................................54
Hình 5.26. Giao diện thống kê hàng nhập.................................................................54
Hình 5.27. Thống kê hàng nhập ................................................................................55
Hình 5.28. Giao diện thống kê hàng xuất .................................................................55
Hình 5.29. Thống kê hàng xuất .................................................................................56
Hình 5.30. Giao diện thống kê hàng tồn ...................................................................56
Hình 5.31. Thống kê hàng tồn ...................................................................................57
Hình 5.32. Giao diện đăng xuất ................................................................................57


DANH MỤC BẢNG
Bảng 4.1. Phân cấp chức năng ..................................................................................20
Bảng 5.1. NHACUNGCAP.......................................................................................38
Bảng 5.2. SANPHAM ...............................................................................................38
Bảng 5.3. LOAISANPHAM .....................................................................................39

Bảng 5.4. NHANVIEN .............................................................................................39
Bảng 5.5. DDATHANG ............................................................................................39
Bảng 5.6. CTDDATHANG.......................................................................................40
Bảng 5.7. PHIEUNHAP ............................................................................................40
Bảng 5.8. CTPHIEUNHAP.......................................................................................40
Bảng 5.9. HOADON .................................................................................................41
Bảng 5.10. CTHOADON ..........................................................................................41
Bảng 5.11. QUYEN ..................................................................................................41
Bảng 5.12. TAIKHOAN ...........................................................................................42
Bảng 5.13. HTTHANHTOAN ..................................................................................42


DANH MỤC CHỮ VIẾT TẮT
STT

Tên đầy đủ

Chữ viết tắt

1

CSDL

Cơ sở dữ liệu

2

DM

Danh mục


3

HD

Hóa đơn

4

HT Thanh toán

Hình thức thanh toán

5

LSP

Loại sản phẩm

6

NCC

Nhà cung cấp

7

NV

Nhân viên


8

PN

Phiếu nhập

9

SP

Sản phẩm

10

TK

Tài khoản


DANH MỤC CÁC KÝ HIỆU[1]

Chức năng

Định

Nhiệm vụ xử lý thông

nghĩa tin


Tên

Luồng dữ liệu

Thông tin vào Nơi

lưu

Danh từ

một thời gian



dụ

hay

(+bổ ngữ)

Tên

2.0 Quản lý
danh mục

(+tính từ)

Tên

thống có giao

tiếp với hệ thống

Kết quả xử lý

(+tính từ)

Tên

Sản phẩm

tổ

chức ngoài hệ

Danh từ

hiệu



Người

Danh từ

đi
kèm

trữ

và ra một chức thông tin trong

năng xử lý

Động từ

Tác nhân ngoài

Kho dữ liệu

Tên

Nhân viên


1

CHƢƠNG 1
GIỚI THIỆU ĐỀ TÀI
1.1.

Khảo sát hệ thống
1.1.1.

Tổ chức
Cửa hàng Jolie hoạt động trong lĩnh vực thời trang dành cho phái nữ.

Công việc của cửa hàng gồm có nhập hàng và xuất hàng. Hàng có thể
nhập về cửa hàng từ nhiều nhà cung cấp khác nhau. Xuất hàng theo hình
thức bán lẻ. Khi khách hàng đến cửa hàng, nhân viên cửa hàng giới thiệu
sản phẩm, tư vấn để chọn được sản phẩm phù hợp nhất với khách hàng và
bán hàng.

1.1.2. Mô hình kinh doanh
Sản phẩm được nhập về cửa hàng từ nhiều nhà cung cấp khác nhau,
nên có sự đa dạng về mẫu mã và thương hiệu. Cửa hàng bán sản phẩm
theo hình thức bán lẻ (bán trực tiếp cho khách hàng tại cửa hàng và có số
lượng ít).
1.1.3. Cách thức hoạt động
Chủ cửa hàng quyết định nhập những sản phẩm nào trong thời gian
nào. Đề nhập hàng, chủ cửa hàng liên hệ với nhà cung cấp (có thể đến kho
của nhà cung cấp hay gọi điện thoại đặt hàng rồi nhà cung cấp mang đến).
Sản phẩm được nhập sẽ được nhân viên cửa hàng lưu vào sổ sách phục vụ
cho việc quản lý. Tại cửa hàng, nhân viên cửa hàng có nhiệm vụ giới thiệu
sản phẩm, tư vấn để chọn được sản phẩm phù hợp nhất với khách hàng
bán hàng, lập hóa đơn và thu tiền. Ngoài ra, nhân viên cửa hàng còn có
trách nhiệm về số lượng sản phẩm còn trong của hàng, về tình trạng của
sản phẩm, làm báo cáo/ thống kê để phục vụ việc nhập thêm sản phẩm
cũng như quản lý, tra cứu khi xảy ra sai sót ở một khâu nào đó.


2

1.1.4. Hiện trạng
Tính đến thời điểm khảo sát và thu thập thông tin, các hoạt động quản
lý kinh doanh công cửa hàng vẫn được tiến hành theo phương pháp ghi
chép số sách. Cách thức này gây nên tình trạng khó khăn khi lưu trữ dữ
liệu và tra cứu thông tin cũng như phức tạp trong việc tính toán và thống
kê, đánh giá kết quả kinh doanh.
1.1.5. Giải pháp
Cửa hàng có mong muốn xây dựng một hệ thống đồng bộ tin học hóa
nhằm thuận tiện hơn cho công việc quản lý hoạt động kinh doanh tại của
hàng.

Đồng thời, hỗ trợ các nhân viên và chủ cửa hàng trong quá trình làm việc.
1.2.

Mục tiêu và nhiệm vụ nghiên cứu
 Mục tiêu đầu tiên là đáp ứng được sự cần thiết của nhu cầu quản lý cửa

hàng, đáp ứng nhu nhập hàng, bán hàng, quản lý biểu mẫu của chủ cửa hàng.
 Cung cấp chức năng hỗ trợ quản lý thống kê báo cáo doanh thu chính xác
đây đủ với thời gian nhanh nhất.
1.3. Phạm vi đề tài
 Đề tài sau khi xây dựng xong sẽ được áp dụng trong công tác quản lý các
nghiệp vụ của cửa hàng thời trang Jolie.
 Quy mô: Cửa hàng thời trang Jolie
Có thể phát triển cho cửa hàng vừa và nhỏ
 Ứng dụng quản lý bán hàng cửa hàng Jolie được xây dựng nhằm phục vụ
cho 2 đối tượng:
-

Nhân viên

-

Chủ cửa hàng


3

1.3.1. Nhân viên
Nhân viên có thể đăng nhập vào hệ thống tại máy tính của cửa hàng. Họ
có quyền kiểm soát một số chức năng của hệ thống, cụ thể như:

-

Quản lý nhập hàng, bán hàng

-

Thêm mới, sửa, xóa các phiếu nhập, hóa đơn.

-

Tạo báo cáo thống kê
1.3.2. Chủ cửa hàng
Chủ cửa hàng có thể đăng nhập vào hệ thống tại máy tính của cửa hàng. Chủ
cửa hàng có quyền kiểm soát toàn bộ chức năng của hệ thống, cụ thể như:

-

Tạo tài khoản mới cho nhân viên.

-

Cập nhật sản phẩm, nhà cung cấp, chứng từ.

-

Quản lý nhân viên.

-

Quản lý nhập hàng, bán hàng.


-

Cập nhập biểu mẫu gồm cái biểu mẫu như: đơn đặt hàng, phiếu nhập, hóa
đơn.

1.4.

Tạo báo cáo thống kê.
Những lợi ích khi ứng dụng Công nghệ Thông tin vào quản lý cửa hàng
Tầm quan trọng của công nghệ thông tin và truyền thông đối với sự phát triển

của doanh nghiệp với hệ quả là sự thịnh vượng của các quốc gia không còn là vấn
đề tranh cãi. Ứng dụng của công nghệ thông tin do vậy trở thành một phần không
thể thiếu trong các chiến lược cạnh tranh của các doanh nghiệp và quốc gia.
Ở Việt Nam, những năm gần đây số lượng người dùng máy tính tăng lên rất
nhiều. Khi ứng dụng công nghệ thông tin vào việc quản lý cửa hàng sẽ mang lại
những lợi ích cơ bản như sau:
-

Dữ liệu được lưu dưới dạng số hóa, dễ dàng thống kê, báo cáo tuyệt đối
chính xác, đảm bảo an toàn dữ liệu.


4

-

Tiết giảm thời gian làm việc do tất cả các công việc liên quan đến dữ liệu
được lập trình, các thao tác phức tạp trước đây được đơn giản hóa.


-

Cải thiện chất lượng quá trình điều khiển và hiệu suất của quá trình sản xuất.

-

Kiểm soát được việc khai thác và sử dụng dữ liệu.

-

Giảm thiểu thời gian chờ đợi của khách hàng do việc tính toán được thực
hiện trên máy tính nên sẽ nhanh và chính xác hơn.

-

Chống tiêu cực, gian lận trong việc quản lý: Các công việc do máy tính thực
hiện, xử lý, lưu trữ nên các nhân viên khó có thể sửa chữa, thay đổi gian lận
trong quá trình làm việc.

-

Tìm kiếm dữ liệu cho việc thống kê, báo cáo trở nên nhanh gọn và dễ dàng
hơn. Giúp tránh nhầm lẫn khi tính toán.

-

Minh bạch hóa các nguồn thông tin.



5

CHƢƠNG 2
CÔNG NGHỆ SỬ DỤNG
Ngôn ngữ lập trình C#

2.1.

2.1.1. Tổng quan về ngôn ngữ lập trình C#
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu dữ
liệu được xây dựng sẵn. Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nó thực thi
những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc,
thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện
trong một ngôn ngữ lập trình hiện đại. Và ngôn ngữ C# hội đủ những điều kiện như
vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++
và Java.
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó
người dẫn đầu là phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một
trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp
(IDE) cho lập trình client/server.
Phần cốt lõi hay còn gọi là trái tim của bất cứ ngôn ngữ lập trình hướng đối
tượng là sự hỗ trợ của nó cho việc định nghĩa và làm việc với những lớp. Những lớp
thì định nghĩa những kiểu dữ liệu mới, cho phép người phát triển mở rộng ngôn ngữ
để tạo mô hình tốt hơn để giải quyết vấn đề. Ngôn ngữ C# chứa những từ khóa cho
việc khai báo những kiểu lớp đối tượng mớ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 đối tượng.
Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp điều được tìm thấy
trong phần khai báo của nó. Định nghĩa một lớp trong ngôn ngữ C# không đòi hỏi
phải chia ra tập tin header và tập tin nguồn giống như trong ngôn ngữ C++. Hơn thế

nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự
động các document cho lớp.


6

C# cũng hỗ trợ giao diện interface, nó được xem như một cam kết với một
lớp cho 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. Khi một lớp thực thi
một giao diện thì nó sẽ hứa là nó sẽ cung cấp chức năng thực thi giao diện.
Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm về
ngữ nghĩa của nó thay đổi khác với C++. Trong C#, một cấu trúc được giới hạn, là
kiểu dữ liệu nhỏ gọn, và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều hành và bộ
nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp hay được kế thừa
nhưng một cấu trúc có thể thực thi một giao diện.
Ngôn ngữ C# cung cấp những đặc tính hướng thành phần (componentoriented), 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ó. Do vậy, một lớp
được biên dịch như là một khối self-contained, nên môi trường hosting biết được
cách đọc metadata của một lớp và mã nguồn cần thiết mà không cần những thông
tin khác để sử dụng nó.
Một lưu ý cuối cùng về ngôn ngữ C# là ngôn ngữ này cũng hỗ trợ việc truy
cập bộ nhớ trực tiếp sử dụng kiểu con trỏ của C++ và từ khóa cho dấu ngoặc []
trong toán tử. Các mã nguồn này là không an toàn (unsafe). Và bộ giải phóng bộ
nhớ tự động của CLR sẽ không thực hiện việc giải phóng những đối tượng được
tham chiếu bằng sử dụng con trỏ cho đến khi chúng được giải phóng.
2.1.2. Ngôn ngữ C# & các ngôn ngữ khác

Chúng ta đã từng nghe đến những ngôn ngữ khác như Visual Basic, C++ và
Java. Có lẽ chúng ta cũng tự hỏi sự khác nhau giữa ngôn ngữ C# và nhưng ngôn
ngữ đó. Và cũng tự hỏi tại sao lại chọn ngôn ngữ này để học mà không chọn một


7

trong những ngôn ngữ kia. Có rất nhiều lý do và chúng ta hãy xem một số sự so
sánh giữa ngôn ngữ C# với những ngôn ngữ khác giúp chúng ta phần nào trả lời
được những thắc mắc.
Microsoft nói rằng C# mang đến sức mạnh của ngôn ngữ C++ với sự dễ dàng
của ngôn ngữ Visual Basic. Có thể nó không dễ như Visual Basic, nhưng với phiên
bản Visual Basic.NET (Version 7) thì ngang nhau. Bởi vì chúng được viết lại từ
một nền tảng. Chúng ta có thể viết nhiều chương trình với ít mã nguồn hơn nếu
dùng C#.
Mặc dù C# loại bỏ một vài các đặc tính của C++, nhưng bù lại nó tránh được
những lỗi mà thường gặp trong ngôn ngữ C++. Điều này có thể tiết kiệm được hàng
giờ hay thậm chí hàng ngày trong việc hoàn tất một chương trình. Chúng ta sẽ hiểu
nhiều về điều này trong các chương của giáo trình. Một điều quan trọng khác với
C++ là mã nguồn C# không đòi hỏi phải có tập tin header. Tất cả mã nguồn được
viết trong khai báo một lớp.
Như đã nói ở bên trên, .NET runtime trong C# thực hiện việc thu gom bộ
nhớ tự động. Do điều này nên việc sử dụng con trỏ trong C# ít quan trọng hơn trong
C++. Những con trỏ cũng có thể được sử dụng trong C#, khi đó những đoạn mã
nguồn này sẽ được đánh dấu là không an toàn (unsafe code).
C# cũng từ bỏ ý tưởng đa kế thừa như trong C++. Và sự khác nhau khác là
C# đưa thêm thuộc tính vào trong một lớp giống như trong Visual Basic. Và những
thành viên của lớp được gọi duy nhất bằng toán tử “.” khác với C++ có nhiều cách
gọi trong các tình huống khác nhau.
Một ngôn ngữ khác rất mạnh và phổ biến là Java, giống như C++ và C# được

phát triển dựa trên C. Nếu chúng ta quyết định sẽ học Java sau này, chúng ta sẽ tìm
được nhiều cái mà học từ C# có thể được áp dụng.
Điểm giống nhau C# và Java là cả hai cùng biên dịch ra mã trung gian: C#
biên dịch ra MSIL còn Java biên dịch ra bytecode. Sau đó chúng được thực hiện


8

bằng cách thông dịch hoặc biên dịch just-in-time trong từng máy ảo tương ứng. Tuy
nhiên, trong ngôn ngữ C# nhiều hỗ trợ được đưa ra để biên dịch mã ngôn ngữ trung
gian sang mã máy. C# chứa nhiều kiểu dữ liệu cơ bản hơn Java và cũng cho phép
nhiều sự mở rộng với kiểu dữ liệu giá trị. Ví dụ, ngôn ngữ C# hỗ trợ kiểu liệt kệ
(enumerator), kiểu này được giới hạn đến một tập hằng được định nghĩa trước, và
kiểu dữ liệu cấu trúc đây là kiểu dữ liệu giá trị do người dùng định nghĩa. Chúng ta
sẽ được tìm hiểu kỹ hơn về kiểu dữ liệu tham chiếu và kiểu dữ liệu giá trị sẽ được
trình bày trong phần sau.
Tương tự như Java, C# cũng từ bỏ tính đa kế thừa trong một lớp, tuy nhiên
mô hình kế thừa đơn này được mở rộng bởi tính đa kế thừa nhiều giao diện.
2.1.3. Tại sao ta lại muốn sử dụng ngôn ngữ C#
Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java,
C++, Perl, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đã
cung cấp tất cả những chức năng cần thiết.
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được
tạo từ nền tảng phát triển hơn. Microsoft bắt đầu với công việc trong C và C++ và
thêm vào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn. Nhiều
trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java.
Không dừng lại ở đó, Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ
này. Những mục đích này được được tóm tắt như sau:
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java và
C++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở

ảo (virtual base class). Chúng là những nguyên nhân gây ra sự nhầm lẫn hay dẫn
đến những vấn đề cho các người phát triển C++. Nếu chúng ta là người học ngôn
ngữ này đầu tiên thì chắc chắn là ta sẽ không trải qua những thời gian để học nó!
Nhưng khi đó ta sẽ không biết được hiệu quả của ngôn ngữ C# khi loại bỏ những
vấn đề trên.


9

Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++. Nếu chúng ta thân
thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện
mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ
ngôn ngữ C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn.
Một vài trong các sự cải tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp
thay đổi. Ví dụ như, trong C++ có ba toán tử làm việc với các thành viên là ::, . , và
->. Để biết khi nào dùng ba toán tử này cũng phức tạp và dễ nhầm lẫn. Trong C#,
chúng được thay thế với một toán tử duy nhất gọi là . (dot). Đối với người mới học
thì điều này và những việc cải tiến khác làm bớt nhầm lẫn và đơn giản hơn.
-

Ghi chú: Nếu chúng ta đã sử dụng Java và tin rằng nó đơn giản, thì chúng ta
cũng sẽ tìm thấy rằng C# cũng đơn giản. Hầu hết mọi người đều không tin
rằng Java là ngôn ngữ đơn giản. Tuy nhiên, C# thì dễ hơn là Java và C++.
C# là ngôn ngữ hiện đại
Điều gì làm cho một ngôn ngữ hiện đại? Những đặc tính như là xử lý ngoại

lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là
những đặc tính được mong đợi trong một ngôn ngữ hiện đại. C# chứa tất cả những
đặc tính trên. Nếu là người mới học lập trình có thể chúng ta sẽ cảm thấy những đặc
tính trên phức tạp và khó hiểu.

-

Ghi chú: Con trỏ được tích hợp vào ngôn ngữ C++. Chúng cũng là nguyên

nhân gây ra những rắc rối của ngôn ngữ này. C# loại bỏ những phức tạp và rắc rối
phát sinh bởi con trỏ. Trong C#, bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn
được tích hợp vào ngôn ngữ, sẽ loại bỏ những vấn đề rắc rối của C++.
C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented
language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình
(polymorphism). C# hỗ trợ tất cả những đặc tính trên.
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo


10

Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bản
thân hay là trí tưởng tượng của chúng ta. Ngôn ngữ này không đặt những ràng buộc
lên những việc có thể làm. C# được sử dụng cho nhiều các dự án khác nhau như là
tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình
biên dịch cho các ngôn ngữ khác.
C# là ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa. Phần lớn các từ khóa được
sử dụng để mô tả thông tin. Chúng ta có thể nghĩ rằng một ngôn ngữ có nhiều từ
khóa thì sẽ mạnh hơn.
Điều này không phải sự thật, ít nhất là trong trường hợp ngôn ngữ C#, chúng
ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ
nào. Bảng sau liệt kê các từ khóa của ngôn ngữ C#.
C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp,

những lớp này chứa các phương thức thành viên của nó. Những lớp và những
phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác.
Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể
tạo ra những mã nguồn dùng lại có hiệu quả.
C# là một ngôn ngữ phổ biến
Microsoft muốn ngôn ngữ C# trở nên phổ biến. Mặc dù một công ty không
thể làm một sản phẩm trở nên phổ biến, nhưng nó có thể hỗ trợ. Cách đây không
lâu, Microsoft đã gặp sự thất bại về hệ điều hành Microsoft Bob. Mặc dù Microsoft
muốn Bob trở nên phổ biến nhưng thất bại. C# thay thế tốt hơn để đem đến thành
công sơ với Bob. Thật sự là không biết khi nào mọi người trong công ty Microsoft
sử dụng Bob trong công việc hằng ngày của họ. Tuy nhiên, với C# thì khác, nó
được sử dụng bởi Microsoft. Nhiều sản phẩm của công ty này đã chuyển đổi và viết


11

lại bằng C#. Bằng cách sử dụng ngôn ngữ này Microsoft đã xác nhận khả năng của
C# cần thiết cho những người lập trình.
Micorosoft .NET là một lý do khác để đem đến sự thành công của C#. .NET
là một sự thay đổi trong cách tạo và thực thi những ứng dụng.
Ngoài hai lý do trên ngôn ngữ C# cũng sẽ trở nên phổ biến do những đặc tính
của ngôn ngữ này được đề cập trong mục trước như: đơn giản, hướng đối tượng,
mạnh mẽ...
2.2.
-

Ngôn ngữ SQL và cơ sở dữ liệu SQL server
Mã hóa trong suốt và hiệu quả
Trong SQL Server 2005, Microsoft giới thiệu khả năng mã hóa và giải mã


CSDL cho ứng dụng đầu cuối bằng cách cung cấp hàm để ứng dụng có thể gọi đến.
Ở SQl Server 2008 khả năng mã hóa được mở rộng ra toàn bộ CSDL, dữ liệu và các
tập tin nhật kí cũng như cung cấp khả năng mã hóa trong suốt cho phép ứng dụng
có thể mã hóa và tìm kiếm dữ liệu mã hóa mà không cần phải thiết kế lại ứng dụng.
Ngoài ra, khả năng sao lưu dữ liệu mã hóa cũng được cải thiện đáng kể nhằm
đảm bảo dữ liệu của doanh nghiệp không lọt ra ngoài cũng như đảm bảo dữ liệu
được sao lưu và phục hồi bởi người được phép.
-

SQL Server 2008 với khả năng giám sát thông minh hơn
Ở SQL Server 2005, công cụ SQL Trace chỉ cho phép giám sát chủ yếu ở các

đối tượng truy cập dữ liệu hơn là bản thân dữ liệu. Chẳng hạn, “ai đăng nhập”,
“những quyền nào bị thay đổi”. Ở SQL Server 2008, khả năng giám sát dữ liệu
được bổ sung thông qua các DDL. Với khả năng này cho phép quản trị CSDL thực
hiện những giám sát hiệu quả hơn trên dữ liệu đại loại như “Ai đã thay đổi giá trị
của cột Lương vượt quá 1 tỉ” hay “Ai đang xem thông tin thẻ tín dụng của người
dùng Nguyễn Văn A”.
-

Tính năng “ổn định cao”
Với SQL Server 2005, Microsoft đưa ra tính năng Ổn Định Cao “Sao Chụp

Dữ Liệu” giữa hai máy chủ SQL. Để sử dụng tính năng này đòi hỏi ứng dụng phải


12

cấu hình tự động chống lỗi và tự chuyển đổi phiên kết nối. Tuy nhiên, đôi khi điều
này không phải lúc nào cũng có thể thực hiện được và phiên bản SQL Server 2008

đưa ra cơ chế chống lỗi phụ để giải quyết vấn đề này. Ngoài ra với khả năng cung
cấp khả năng cắm nóng CPU mà không cần khởi động lại cũng là một tính năng
giúp giảm thiểu thời gian ngừng hoạt động hệ thống.
-

SQL Server cho phép quản lý CSDL bằng công cụ và chính sách
Một trong những tác vụ đòi hỏi nhiều kỹ năng và tiêu tốn thời gian nhất cho

nhà quản trị CSDL đó chính là tác vụ giảm sát và quản lý. Ở các hệ thống CSDL
kiểu cũ để giám sát và chẩn đoán hiệu quả đòi hỏi nhà quản trị phải có hiểu biết am
tường về sản phẩm CSDL cũng như hiện trạng của ha tầng liên quan đến phần cứng,
tải của ứng dụng và các tác động khác trong hệ thống. Với SQL Server 2008,
Microsoft đưa ra nền tảng Quản Lý Tường Minh cho phép công việc quản trị trở
nên dễ dàng nhưng vẫn đảm bảo được tính hiệu quả. Muốn thực hiện được điều này,
ngoài việc cung cấp các công cụ chẩn đoán hiệu quả như Surface Area
Configurator, Best Practice Analyzer và Upgrade Advisor, Microsoft còn đưa ra
khái niệm quản trị theo chính sách giúp nhà quản trị có thể giám sát chẩn đoán theo
một cách tự nhiên nhất. Chẳng hạn như: “Tôi muốn khôi phục hệ thống CSDL trong
vòng 1 giờ”.
-

Khả năng tích hợp với System Center
Ứng dụng CSDL SQL được sử dụng hầu hết trong các ứng dụng như

Exchang Server 2007 UM, Sharepoint Server 2007cho đên OCS 2007 vì vậy nếu
không có khả năng giám sát tập trung hệ CSDL thì đúng là một thiếu sót. VÌ vậy,
với việc tích hợp tốt nhất với các sản phẩm giám sát hệ thống System Center, doanh
nghiệp sẽ hơn trong việc quản lý và giám sát tự động hạ tầng.
-


Lập trình dễ dàng và hiệu quả hơn với SQL Server
Với sự ra đời của nều tảng DotNet 3.5 và bộ công cụ lập trình Visual Studio

đã giúp cho các nhà phát triển ứng dụng và CSDL trên SQL Server trở nên hiệu quả
hơn nhiều. Đáng kể nhất trong số đó là ADO.Net mới trong DotNet 3.5 đưa ra khái
niệm Nều Tảng Đối Tượng ADO giúp cho lập trình viên thao tác với CSDL như đối
tượng. Kế đến không thể không nhắc tới LINQ, nhờ nó mà các lập trình viên có thể


×