Ngày nay, công nghệ thông tin pháp triển rất nhanh và được ứng dụng rộng rãi trong đời sống.
Trang 1LỜI CẢM ƠN
Em xin chân thành cảm ơn khoa Tin học Quản lý, trường Đại học Tài chính – Marketing đã tạo điều kiện cho em thực hiện đề tài tốt nghiệp này
Em xin nói lên lòng biết ơn sâu sắc với ThS Trần Minh Tùng Xin cảm
ơn Thầy đã luôn quan tâm, tận tình hướng dẫn trong quá trình học tập, nghiên cứu và thực hiện đề tài
Em xin chân thành cảm ơn Công ty cổ phần phần mềm BRAVO, anh Nguyễn Lê Quốc Huy đã giúp đỡ em trong quá trình thực tập để thực hiện đề tài tại công ty
Em xin chân thành cảm ơn quý Thầy Cô trong khoa Tin học Quản lý đã tận tình giảng dạy, trang bị cho em những kiến thức quý báu, đã truyền thụ cho em những kiến thức, kinh nghiệm, đã quan tâm dìu dắt và giúp đỡ em trong quá trình học tập cũng như trong thực hiện đề tài này
Con luôn nhớ mãi công ơn của Ông Bà, Ba Mẹ đã luôn yêu thương, lo lắng, chăm sóc và nuôi dạy con thành người
Cuối cùng em xin gửi lời cảm ơn đến các anh chị, các bạn đã quan tâm động viên và giúp đỡ em trong quá trình thực hiện đề tài
Mặc dù đã cố gắng hoàn thành trong phạm vi khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong nhận được sự tận tình chỉ bảo của quý Thầy Cô và các bạn
Một lần nữa, em xin chân thành cảm ơn và mong luôn nhận được những
tình cảm chân thành nhất của mọi người
TP Hồ Chí Minh ngày 19 tháng 05 năm 2010
Lê Quang Tuyến
Trang 2NHẬN XÉT CỦA ĐƠN VỊ THỰC TẬP
TP.Hồ Chí Minh, ngày tháng 5 năm 2010
Đại diện doanh nghiệp
(Ký tên và ghi rõ họ tên, chức vụ)
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN
Kết quả chấm điểm:………
Ghi bằng chữ:………
TP Hồ Chí Minh, ngày tháng 05 năm 2010
ThS Trần Minh Tùng
Trang 4LỜI MỞ ĐẦU
Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng rộng rãi trong đời sống Công nghệ thông tin mang lại cho con người rất nhiều hữu ích, đặc biệt là trong lĩnh vực quản lý dữ liệu, truy cập thông tin, tra cứu thông tin… Đối với các tổ chức, doanh nghiệp thì công tác quản lý đòi hỏi ngày càng gọn nhẹ nhưng phải đảm bảo được việc tra cứu, tìm kiếm, lưu trữ thông tin phải được thực hiện một cách nhanh chóng, tiện lợi và phải mang tính chính xác cao nhất Đứng trước những yêu cầu trên, các tổ chức, doanh nghiệp ngày càng thấy được tầm quan trọng của việc tin học hóa các quy trình, nghiệp vụ liên quan đến hoạt động của mình
Để đáp ứng được nhu cầu thực tế của các tổ chức, doanh nghiệp nhiều công ty đã xây dựng những phần mềm phục vụ cho việc quản lý, kinh doanh cho các tổ chức, doanh nghiệp Không ngoài mục đích này, chương trình “Xây dựng và bảo mật
hệ thống tích hợp” là chương trình được xây dựng nhằm để liên kết các phân hệ con: phân hệ quản lý khách hàng (CRMS), phân hệ quản lý bán hàng (SMS), phân hệ quản
lý lương – nhân sự (HMS), phân hệ quản lý kho (StMS), phân hệ quản lý tài sản cố định (FMS) thành một chương trình lớn, thống nhất về dữ liệu, giúp cho các cấp quản
lý của các tổ chức, công ty truy xuất, kiểm tra các thông tin một cách nhanh chóng và chính xác Các thao tác tìm kiếm thông tin, xuất báo cáo thực hiện rất nhanh chóng theo từng yêu cầu của người dùng
Chương trình còn được xây dựng cơ chế bảo mật và phân quyền dữ liệu rất chi tiết, cụ thể, giúp cho nhà quản trị có thể quản lý được người sử dụng theo nhóm người dùng, quản lý dữ liệu thông qua việc cấp quyền cho từng người dùng, từng đối tượng dữ liệu
Trang 5
MỤC LỤC
CHƯƠNG I: GIỚI THIỆU 14
1 Lý do hình thành đề tài 14
2 Mục tiêu của đề tài 15
3 Nội dung đề tài 16
4 Phạm vi đề tài 16
5 Kết quả đạt được 18
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 19
I Tổng quan về cơ sở dữ liệu SQL Server 2008 19
A Giới thiệu chung 19
B Một số công cụ mở rộng của SQL SERVER 24
1.View 25
2.Store procedure 28
3.Extended store procedure 30
4.Trigger 31
II Tìm hiểu về Net Framework 32
III Tổng quan về ngôn ngữ lập trình VB.NET 33
IV Tìm hiểu cơ chế bảo mật và mã hóa dữ liệu 43
A Cơ chế bảo mật 43
B Mã hóa dữ liệu 45
C Các thuật toán đề xuất 51
1 Thuật toán SHA-1 52
2 Các thuật toán SHA-224, SHA-256, SHA-384 và SHA-512 55
3 Thuật toán Tiger 59
4 Thuật toán Whirlpool 63
5 So sánh SHA-1, Tiger, Whirlpool 72
Trang 6V Tìm hiểu về XML 74
A Giới thiệu 74
B Những thành phần của một tài liệu XML 75
C Lược đồ XML (Schema XML) 76
VI Tìm hiểu về Power Designer 12.5 77
A Giới thiệu chung 77
B Các mô hình dữ liệu trong Power Designer 12.5 78
CHƯƠNG III: PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CƠ SỞ DỮ LIỆU 81
I Giới thiệu về công ty cổ phần phần mềm BRAVO 81
A Giới thiệu chung 81
B Trụ sở và các chi nhánh 82
II KHẢO SÁT HIỆN TRẠNG VÀ NHU CẦU 82
A KHẢO SÁT HIỆN TRẠNG 82
1 Phần cứng 83
2 Phần mềm 83
3 Mạng 83
4 Dữ liệu 84
5 Nhân sự 84
6 Các quy trình nghiệp vụ 84
7 Cơ cấu tổ chức 86
B KHẢO SÁT NHU CẦU 88
C PHÂN TÍCH 100
1 Các thực thể và thuộc tính liên quan cần lưu trữ 100
2 Phân tích 100
3 Ràng buộc toàn vẹn 102
III THIẾT KẾ 103
A Thiết kế mô hình mức quan niệm 103
B Thiết kế mô hình mức logic 104
Trang 7C Thiết kế mô hình mức vật lý 104
D CÀI ĐẶT 109
1.Các bước cài đặt dữ liệu chi tiết mô hình vật lý xuống SQL Server 109
2.Cài đặt ràng buộc toàn vẹn 110
E TỪ ĐIỂN DỮ LIỆU 112
F MÔ HÌNH CHỨC NĂNG (BFD – Bussiness Flow Diagram) 114
G MÔ HÌNH DÒNG DỮ LIỆU (DFD – Data Flow Diagram) 115
CHƯƠNG IV: KẾT QUẢ VÀ KẾT LUẬN 118
A KẾT QUẢ 118
B KẾT LUẬN 147
PHỤ LỤC 150
Trang 8DANH SÁCH HÌNH
Hình 1: Toàn cảnh nền tảng dữ liệu SQL Server 2008 19
Hình 2: Sơ đồ các thành phần cơ bản của Microsoft SQL SERVER 21
Hình 3: Giao diện SQL Server 2008 24
Hình 4: Mô hình view trong Microsoft SQL SERVER 26
Hình 5: Giao diện SQL Server với các thủ tục được cài đặt 30
Hình 6: Các ứng dụng xoay quanh công nghệ NetFramework 33
Hình 7: Chương trình được thiết kế bằng Visual Studio 2010 42
Hình 8: Mô hình Secret key Crytography 45
Hình 9: Mô hình Public key Crytography 48
Hình 10: Các thông tin trước và sau khi mã hóa bởi hàm băm 50
Hình 11: Ví dụ lược đồ XML 77
Hình 12: Giao diện tạo mô hình mức ý niệm (CDM) 78
Hình 13: Thuộc tính của thực thể trong mô hình CDM 78
Hình 14: Bước 1 chuyển từ CDM sang PDM 79
Hình 15: Bước 2 chuyển từ CDM sang PDM 80
Hình 16: Bước 3 chuyển từ CDM sang PDM 80
Hình 17: Trụ sở và các chi nhánh của công ty BRAVO 82
Hình 18: Quy trình đăng ký tài khoản người dùng 84
Hình 19: Quy trình đăng nhập hệ thống 85
Hình 20: Quy trình đăng xuất khỏi hệ thống 86
Hình 21: Sơ đồ tổ chức công ty BRAVO 87
Trang 9Hình 22: Mô hình mức quan niệm 103
Hình 23: Mô hình mức vật lý 105
Hình 24: Các bảng trong cơ sở dữ liệu SQL Server 2008 110
Hình 25: Mô hình chức năng 114
Hình 26: Mô hình dòng dữ liệu mức ngữ cảnh 115
Hình 27: Phân rã chức năng quản lý hệ thống 116
Hình 28: Phân rã chức năng quản lý người dùng 116
Hình 29: Phân rã chức năng đăng nhập hệ thống 117
Hình 30: Phân rã chức năng đăng xuất hệ thống 117
Hình 31: Giao diện menu hệ thống 121
Hình 32: Giao diện menu dữ liệu 122
Hình 33: Menu phân hệ 122
Hình 34: Menu danh mục chung 123
Hình 35: Menu danh mục báo cáo 124
Hình 36: Menu tìm kiếm 124
Hình 37: Menu về chương trình 124
Hình 38: Giao diện đăng nhập hệ thống 125
Hình 39: Giao diện báo lỗi đăng nhập 125
Hình 40: Giao diện quản lý người dùng 126
Hình 41: Giao diện nhóm người dùng 128
Hình 42: Giao diện báo lỗi nhóm người dùng 129
Hình 43: Giao diện đổi mật khẩu người dùng 129
Hình 44: Giao diện quản lý nhóm và quyền hạn mức dữ liệu 131
Trang 10Hình 45: Quản lý nhóm và quyền hạn trên menu 136
Hình 46: Giao diện sao lưu dữ liệu 138
Hình 47: Giao diện phục hồi dữ liệu 138
Hình 48: Giao diện tìm kiếm tài khoản người dùng 139
Hình 49: Giao diên in báo cáo tài khoản nhân viên 141
Hình 50: Giao diện báo cáo in sang MS.Word 142
Hình 51: Giao diện báo cáo in sang MS.Excel 142
Hình 52: Giao diện báo cáo in sang PDF 143
Hình 53: Giao diện xem nhật ký đăng nhập 143
Hình 54: Giao diện xem nhật ký lỗi 144
Hình 55: Giao diện tìm kiếm thông tin phân quyền 144
Hình 56: Giao diện in báo cáo quyền được cấp 146
Hình 57: Hộp thoại PDM Generation Options 150
Hình 58: Hộp thoại PDM Generation Options 151
Hình 59: Danh sách bảng sau khi ánh xạ từ Power Designer 12.5 xuống SQL Server 2008 152
Trang 11DANH SÁCH BẢNG
Bảng 1: Các chức năng của tập Collection 37
Bảng 2: Sự khác nhau giữa VB6 và VB.Net trong cách viết toán tử số học 38
Bảng 3: Sự khác biệt giữa VB6 và VB.Net 41
Bảng 4 : Bảng mã hàm mũ 47
Bảng 5: Kích thước khóa giữa mã hóa quy ước và mã hóa công khai với cùng mức độ bảo mật 49
Bảng 6: Các tính chất của các thuật toán băm an toàn 56
Bảng 7: So sánh các thuật toán SHA-1, Tiger, Whirlpool 73
Trang 12CHƯƠNG I
GIỚI THIỆU
1 Lý do hình thành đề tài
ứng dụng rộng rãi trong đời sống Công nghệ thông tin mang lại cho con người rất nhiều hữu ích, đặc biệt là trong lĩnh vực quản lý
dữ liệu, truy cập thông tin, tra cứu thông tin… Đối với các tổ chức, doanh nghiệp thì công tác quản lý đòi hỏi ngày càng gọn nhẹ nhưng phải đảm bảo được việc tra cứu, tìm kiếm, lưu trữ thông tin phải được thực hiện một cách nhanh chóng, tiện lợi và phải mang tính chính xác cao nhất Đứng trước những yêu cầu trên, các tổ chức, doanh nghiệp ngày càng thấy được tầm quan trọng của việc tin học hóa các quy trình, nghiệp vụ liên quan đến hoạt động của mình Để đáp ứng được nhu cầu thực tế của các tổ chức, doanh nghiệp nhiều công ty đã xây dựng những phần mềm phục vụ cho việc quản lý, kinh doanh cho các tổ chức, doanh nghiệp Không ngoài mục đích này, chương trình “Xây dựng và bảo mật hệ thống tích hợp” là chương trình được xây dựng nhằm
để liên kết các phân hệ con: phân hệ quản lý khách hàng (CRMS),
phân hệ quản lý bán hàng (SMS), phân hệ quản lý lương – nhân
sự (HMS), phân hệ quản lý kho (StMS), phân hệ quản lý tài sản cố định (FMS) thành một chương trình lớn, thống nhất về dữ liệu,
giúp cho các cấp quản lý của các tổ chức, công ty truy xuất, kiểm tra các thông tin một cách nhanh chóng và chính xác Nếu như mỗi phòng ban, mỗi bộ phận của các tổ chức, công ty sử dụng các phân hệ riêng thì khi đó việc truy xuất, kiểm tra dữ liệu có liên quan giữa các bên với nhau thì sẽ rất chậm và đôi khi thiếu chính
Trang 13xác Bên cạnh đó, việc xây dựng cơ chế bảo mật giúp cho dữ liệu của công ty được đảm bảo an toàn một cách tuyệt đối, việc truy cập vào dữ liệu của công ty sẽ được phân quyền theo từng cấp độ tương ứng với từng chức vụ của nhân viên và quyền hạn của phòng ban nơi nhân viên làm việc
hợp” giúp công ty cổ phần phần mềm Bravo tiết kiệm được thời gian và chi phí quản lý doanh nghiệp, bảo mật được dữ liệu kinh doanh của công ty
2 Mục tiêu của đề tài
thường được áp dụng vào các phần mềm có nhiều phân hệ con Trong đó chương trình đóng vai trò như là một chương trình chính, liên kết các phân hệ con khác lại với nhau thông qua đường
đi của dữ liệu, tạo thành một dữ liệu tổng hợp
quản trị nguồn lực doanh nghiệp (ERP)
thông suốt:
lý khách hàng để lấy thông tin về số lượng hàng cần bán
quản lý lương – nhân sự để lấy thông tin về nhân viên quản
lý khách hàng
lý kho để lấy thông tin về số lượng hàng
lý lương – nhân sự để lấy thông tin về nhân viên bán hàng
Trang 14 Chương trình có những tính năng như: truy cập phân hệ con trên menu hệ thống, xuất báo cáo tùy theo nhu cầu của từng phân
hệ, tra cứu, tìm kiếm thông tin, phân quyền hệ thống, mã hóa dữ liệu
máy tính điện tử, thay đổi giao diện người dùng…
đăng nhập cho nhân viên với các quyền hạn khác nhau tùy theo vị trí, phòng ban mà nhân viên đó làm việc
3 Nội dung đề tài
(1) Khảo sát hiện trạng, nhu cầu tại Công ty cổ phần phần mềm Bravo
(2) Phân tích, thiết kế và cài đặt cơ sở dữ liệu
(3) Thiết kế giao diện người dùng
(4) Phân quyền sử dụng người dùng
(5) Cài đặt các thủ tục, hàm, trigger và các chương trình ứng dụng
4 Phạm vi đề tài
Phân hệ quản lý bán hàng:
Phân hệ phục vụ cho việc quản lý bán hàng của công
ty, giúp theo dõi được thông tin về hàng hóa, thông tin khách hàng, thông tin hợp đồng… một cách chính xác
và kịp thời
Phân hệ hỗ trợ việc thống kê báo cáo bán hàng một
cách chính xác và nhanh chóng
Phân hệ quản lý khách hàng:
Trang 15 Xây dựng chương trình quản lý khách hàng cho
công ty nhằm giám sát các hoạt động với khách hàng, ghi nhận và nhắc nhở chính xác các hoạt động với khách hàng của công ty
Quản lý hợp đồng của khách hàng với công ty, các
điều khoản giao dịch thanh toán của khách hàng với công ty Ghi nhận lại các hoạt động thanh toán, đặt hàng, giao hàng của khách hàng và chính sách bảo hành các sản phẩm của công ty giành cho khách hàng
Quản lý các kênh bán hàng của công ty để đặt ra
những phương án kinh doanh cho từng kênh bán hàng khác nhau Ngoài ra còn xuất ra những báo cáo tổng kết những hoạt động của công ty theo thời gian và theo từng đối tượng
Phân hệ quản lý kho:
Quản lý số lượng tồn kho
Quản lý số lượng nhập, xuất kho
Phân hệ quản lý lương – nhân sự:
Quản lý thông tin nhân sự một cách đầy đủ và chi
tiết
Theo dõi cập nhật thường xuyên thông tin nhân sự,
phòng ban, tổ đội trong doanh nghiệp
Trích xuất các báo cáo đa dạng, phong phú đáp ứng
yêu cầu trong công tác quản trị nhân sự tiền lương
thông tin dễ dàng nhanh chóng
Trang 16 Phân hệ quản lý tài sản:
Theo dõi nguyên giá, khấu hao, khấu hao lũy kế và
giá trị còn lại của từng tài sản
Phân bổ tài sản theo tháng và năm tài sản
5 Kết quả đạt đƣợc
(1) Tập báo cáo kết quả khảo sát hiện trạng (khảo sát phần cứng, phần mềm, nhân sự, khảo sát yêu cầu, quy trình, nghiệp vụ…) của công ty cổ phần phần mềm Bravo
(2) Tập báo cáo kết quả phân tích, thiết kế và cài đặt cơ sở dữ liệu (3) Tập báo cáo kết quả thiết kế giao diện người dùng
(4) Tập báo cáo kết quả phân quyền sử dụng người dùng
(5) Chương trình ứng dụng
Trang 17CHƯƠNG II
CƠ SỞ LÝ THUYẾT
I Tổng quan về cơ sở dữ liệu SQL Server 2008
A Giới thiệu chung
Hình 1: Toàn cảnh nền tảng dữ liệu SQL Server 2008
mô hình client/server của Microsoft được ứng dụng phổ biến và rộng rãi hiện nay với những đặc điểm ưu việt cho phép xây dựng, phát triển và quản trị các ứng dụng thương mại điện tử và quản
lý
Server 2008 bổ sung thêm những tính năng ưu việt mà một hệ quản trị cơ sở dữ liệu mạnh cần phải có
thể định nghĩa các Table với nhau, cho phép người dùng truy cập
dữ liệu thông qua ứng dụng Management Studio truy cập trực
Trang 18tiếp đến server để thực hiện các tác vụ như : cấu hình, quản trị, bảo trì, bảo mật cơ sở dữ liệu
lưu trữ dữ liệu với số lượng lớn, hỗ trợ hệ thống ra quyết định, hỗ trợ các công cụ khác nhau giúp bạn xây dựng và triển khai ứng dụng một cách hiệu quả và có tính bảo mật cao trong môi trường
đa người dùng
(Relational Management System (RDBMS)) sử dụng T–SQL (Transact SQL) để trao đổi cơ sở dữ liệu giữa Client computer và Server computer Một RDBMS bao gồm : Database, Database Engine và các ứng dụng dùng để quản lý dữ và các bộ phận khác nhau trong RDBMS
trường cơ sở dữ liệu lớn (very large database environment) lên đến Tetra Byte, có thể phục vụ cùng lúc cho hàng ngàn User SQL Server 2008 có thể kết hợp “ăn ý” với các Server khác như Microsoft Internet Information Service (IIS), Proxy Server, E – commerce Server…
Trang 192 S
SQL Server bao gồm các tiện ích :
Book Online: Tiện ích này cho phép chúng ta có thể tra
cứu trực tuyến tất cả các thông tin liên quan đến SQL Server 2008 một cách đầy đủ với các tính năng tìm kiếm dễ dàng và một giao diện dễ sử dụng Nội dung giúp đỡ được trình bày theo từng phần dễ dàng xem trong các trang Contents Ngoài ra các trang Index và Search cho phép tra cứu nhanh theo chỉ mục đã được sắp xếp trước đó hoặc gõ vào các từ khóa cần tìm Khi cần tham khảo cú pháp của các lệnh, hàm, biến hệ thống… của SQL Server 2008 một
Hình 2: Sơ đồ các thành phần cơ bản của Microsoft SQL SERVER
Trang 20cách đầy đủ nhất thì chúng ta vào đây xem là hoàn toàn chính xác Tuy nhiên, nội dung trình bày là hoàn toàn bằng tiếng Anh
SQL Native Client Configuration: Tiện ích này cho
phép chúng ta thay đổi, tạo mới và lưu lại các nghi thức nối kết mạng (network protocol) mặc định của máy trạm khi thực hiện kết nối vào SQL Server 2008 tại các máy chủ
SQL Server Management Studio: Tiện ích này giúp
chúng ta quản trị một hoặc nhiều SQL Server khác nhau, với giao diện đồ họa thân thiện (user friendly) Tiện ích này
sẽ giúp có các bạn có thể tạo lập cơ sở dữ liệu và các thành phần bên trong SQL Server một cách dễ dàng hơn Tuy nhiên, muốn quản trị SQL Server thì chúng ta phải đăng ký (register) máy chủ vào tiện ích này
Import and Export: Tiện ích này cho phép chúng ta
thực hiện các chức năng trong việc nhập (import), xuất (export) và chuyển đổi dữ liệu qua lại giữa SQL Server
2008 và những loại cơ sở dữ liệu khác thường dùng như: Access, Visual Foxpro, Microsoft Excel, tập tin văn bản ASCII…
Performance Monitor: Tiện ích này cho phép chúng ta
quan sát (monitor) các tài nguyên trên máy chủ trong khi SQL Server 2008 đang hoạt động theo dạng biểu đồ Chúng
ta có thể biết được hiện giờ việc sử dụng bộ nhớ máy tính của SQL Server nhiều hay ít
Profiler: Tiện ích này cho phép chúng ta phát hiện
những biến cố đã xảy ra của SQL Server khi đang thực hiện một xử lý nào đó trên máy chủ Các biến cố này có thể
Trang 21được ghi lại trong một tập tin lưu vết (trace file) để sau này
sử dụng lại cho việc phân tích nhằm phát hiện những vấn
đề khi thực hiện các câu lệnh truy vấn trong xử lý đó Hoạt động của tiện ích này gần giống công cụ tìm lỗi trong các ngôn ngữ lập trình, có nghĩa là chúng ta sẽ thực hiện tuần
tự các câu lệnh trong một xử lý lô (batch) để phát hiện ra lỗi của một câu lệnh nào đó (nếu có)
Query Editor: Tiện ích này cho phép chúng ta soạn thảo
các tập tin kịch bản (script file) – là tập tin văn bản ASCII chứa các câu lệnh SQL giao tác trên cơ sở dữ liệu SQL Server 2008 hoặc có thể thực hiện các truy vấn trực tiếp trên cơ sở dữ liệu SQL Server và nhận kết quả trực tiếp ngay sau khi thực hiện truy vấn đó Tuy nhiên để thực hiện được tính năng trên thì hệ thống SQL Server 2008 sẽ yêu cầu chúng ta đăng nhập vào hệ thống với tài khoản hợp lệ bởi vì SQL Server là một hệ quản trị cơ sở dữ liệu mạng máy tính Trong đó, tài khoản đăng nhập sẽ do người quản trị SQL Server 2008 tạo ra trước đó
Server 2008 Network Configuration: Tiện ích này cho
phép chúng ta quản lý các thư viện nghi thức kết nối mạng của máy chủ dùng để lắng nghe các yêu cầu từ các máy trạm, có nghĩa là các nghi thức kết nối mạng giữa máy chủ
và máy trạm phải ăn khớp nhau để chúng có thể giao tiếp qua lại Tuy nhiên, hầu hết các nghi thức kết nối mạng chuẩn của máy chủ sẽ được định nghĩa trong quá trình cài đặt
Server 2008 Network Services: Tiện ích này cho phép
chúng ta quản lý dịch vụ liên quan đến SQL Server 2008
Trang 22Có thể thực hiện việc: khởi động (start), tạm dừng (pause),
và ngưng lại (stop) các dịch vụ đó Các dịch vụ (service) này được xem như là các ứng dụng chạy ngầm định bên dưới hệ thống trong môi trường Windows
B Một số công cụ mở rộng của SQL SERVER
Microsoft SERVER cung cấp một bộ các công cụ mở rộng nhằm giúp những người phát triển ứng dụng giải quyết các bài toán cụ thể mà độ phức tạp của nó đòi hỏi những tính năng mà bản thân Microsoft SERVER không có những chức năng đáp ứng được Để thực hiện được bài toán liên kết và mã hóa cơ sở dữ
liệu, chúng ta tìm hiểu một số công cụ mở rộng sau của Microsoft SERVER:
Hình 3: Giao diện SQL Server 2008
Trang 23nghĩa bởi câu truy vấn Giống như bảng thực tế, view cũng chứa một tập hợp các cột và dòng của dữ liệu Mặc dù vậy view không tồn tại như một tập hợp các giá trị của dữ liệu được lưu trữ trong
cơ sở dữ liệu Các dòng và cột dữ liệu trong bảng được tham chiếu trong câu truy vấn (định nghĩa view) được sinh ra một cách động (dynamically) khi mà view được tham chiếu tới
chiếu trong view Câu truy vấn định nghĩa view có thể tham chiếu tới một hoặc nhiều bảng hoặc tham chiếu tới view khác trong cơ sở dữ liệu hiện thời hoặc trên cơ sở dữ liệu khác Các câu truy vấn phân tán (distributed) cũng có thể được sử dụng để định nghĩa view mà sử dụng dữ liệu từ những tài nguyên khác nhau (không đồng nhất) Nó rất tiện lợi trong trường hợp chúng
ta muốn kết hợp các dữ liệu tương tự nhau trên những SERVER khác nhau lại, mà dữ liệu trên các SERVER này được lưu trữ trên các vùng khác nhau
nhưng có một vài hạn chế trong việc sửa đổi dữ liệu thông qua chúng
Trang 24Tạo view
Chỉ có thể tạo view trên cơ sở dữ liệu hiện thời
Các tên view cần phải tuân theo các nguyên tắc đối với các định danh và cần phải là duy nhất đối với mỗi người sử dụng, không được giống với bất kỳ tên của bảng nào mà người sử dụng này sở hữu
Chúng ta có thể xây dựng các view trên các view khác
và trên các thủ tục (procedures) mà tham chiếu các view (có thể lên tới 32 mức)
Không thể kết hợp các rules hoặc các định nghĩa DEFAULT cùng với các view
Không thể kết hợp các trigger AFTER với view, mà chỉ kết hợp được các trigger INSTEAD OF
Hình 4: Mô hình view trong Microsoft SQL SERVER
Trang 25 Truy vấn định nghĩa view không được chứa các điều khoản ORDER BY, COMPUTE, COMPUTE BY hoặc từ khoá INTO
bảng tạm
điều khoản SCHEMABINDING không thể bị huỷ, trừ khi view
bị huỷ hoặc bị thay đổi mà nó không còn có sơ đồ liên kết Hơn nữa, các câu lệnh ALTER TABLE trên các bảng tham gia trong view có sơ đồ liên kết sẽ bị lỗi nếu các câu lệnh này ảnh hưởng đến định nghĩa view
mặc dù định nghĩa view có thể bao gồm truy vấn full-text nếu truy vấn tham chiếu bảng được cấu hình cho việc đánh chỉ số full-text
Mọi cột trong view nhận được từ biểu thức toán học, hàm built-in, hoặc hằng số
Hai hoặc nhiều hơn các cột trong view có cùng tên
Ta muốn cho mọi cột trong view một cái tên khác với tên cột mà nó bắt nguồn từ đó ra
dữ liệu và cần phải có các quyền hạn thích hợp trên mọi bảng hoặc view được tham chiếu trong định nghĩa view
mã hoá để đảm bảo rằng định nghĩa của nó không ai có thể lấy được, kể cả chủ sở hữu của view
Trang 262 Store procedure
lập trình Transact-SQL là giao diện lập trình chính giữa các ứng dụng và cơ sở dữ liệu SQL SERVER Khi sử dụng các chương trình Transact-SQL, có hai giải pháp để lưu trữ và thực thi chương trình Có thể lưu trữ các chương trình cục bộ và tạo các ứng dụng để gửi các câu lệnh tới SQL SERVER và xử lý các kết quả, hoặc có thể lưu trữ các chương trình như các thủ tục lưu trữ trong SQL SERVER và tạo các ứng dụng thực hiện các thủ tục lưu trữ và xử lý kết quả
thủ tục trong các ngôn ngữ lập trình khác đối với những khả năng:
Chấp nhận các tham số đầu vào và trả về các dữ liệu ở dạng các tham số đầu ra
Chứa các câu lệnh lập trình thực hiện các thao tác trong
cơ sở dữ liệu, bao gồm cả việc gọi các thủ tục khác
Trả về giá trị trạng thái đối với việc gọi thủ tục để xác định kết quả là thành công hay đã xảy ra lỗi
chạy thủ tục lưu trữ Các thủ tục lưu trữ khác với các hàm là chúng không trả về các giá trị trong vị trí tên của chúng và không
sử dụng trực tiếp trong các biểu thức
SERVER khác với các chương trình Transact-SQL được lưu trữ cục bộ trên các máy client là:
Chúng cho phép lập trình khối (modular)
Trang 27 Có thể tạo thủ tục chỉ một lần, lưu chúng trong cơ
sở dữ liệu, và gọi chúng nhiều lần trong chương trình Các thủ tục lưu trữ có thể được tạo bởi người chuyên phụ trách việc lập trình cơ sở dữ liệu, và có thể sửa đổi độc lập với mã nguồn của chương trình
Thực thi nhanh
Nếu thao tác yêu cầu một số lượng mã Transact-
SQL hoặc được thực hiện lặp lại nhiều lần, các thủ tục lưu trữ có thể thực hiện nhanh hơn các gói mã Transact-SQL Chúng được phân tích và tối ưu khi chúng được tạo, và phiên bản trong bộ nhớ (in-memory) của thủ tục có thể được sử dụng sau khi thủ tục được thực hiện lần đầu tiên Các câu lệnh Transact-SQL tuần tự gửi tới từ client mỗi lần chúng chạy được biên dịch và tối ưu mỗi một lần chúng được thực hiện bởi SQL SERVER
Giảm thiểu việc truyền tin trên mạng
Thao tác đòi hỏi hàng trăm dòng lệnh Transact-SQL
có thể được thực hiện chỉ bởi một câu lệnh thực hiện
mã lệnh trong thủ tục sẽ lợi hơn việc gửi hàng trăm
câu lệnh trên mạng
Sử dụng như một kỹ thuật an toàn
Người sử dụng có thể được gán quyền thực thi các
thủ tục lưu trữ kể cả khi họ không có quyền trực tiếp
thực hiện các câu lệnh cụ thể trong thủ tục
Transact-SQL là CREATE PROCEDURE và có thể được sửa đổi
Trang 28Hình 5: Giao diện SQL Server với các thủ tục được cài đặt
với câu lệnh ALTER PROCEDURE Định nghĩa thủ tục lưu trữ
có chứa hai thành phần chính: thành phần xác định tên của thủ tục và các tham số của nó, và thành phần thân của thủ tục có chứa các câu lệnh Transact-SQL thực hiện các thao tác của thủ tục
3 Extended store procedure
tục riêng bên ngoài bằng các ngôn ngữ lập trình như C Đối với người sử dụng các thủ tục lưu trữ mở rộng cũng giống như các thủ tục lưu trữ và thực thi cùng một phương pháp Các tham số có thể được truyền tới các thủ tục lưu trữ mở rộng và chúng có thể trả về kết quả và trạng thái trả về Các thủ tục lưu trữ mở rộng có thể được sử dụng để mở rộng các khả năng của Microsoft® SQL SERVER™
Trang 29 Các thủ tục lưu trữ mở rộng là các thư viện liên kết động (DLL) mà SQL SERVER có thể tải và thực thi động Các thủ tục lưu trữ động chạy trực tiếp trong địa chỉ không gian của SQL SERVER và được lập trình sử dụng SQL SERVER Open Data Services API
sysadmin fixed SERVER role có thể đăng ký thủ tục lưu trữ mở rộng với SQL SERVER và sau đó gán quyền cho người sử dụng khác để thực hiện thủ tục Các thủ tục lưu trữ mở rộng chỉ có thể đặt vào cơ sở dữ liệu master
4 Trigger
đối với các nguyên tắc bắt buộc và toàn vẹn dữ liệu: các ràng buộc và các trigger Trigger là dạng đặc biệt của thủ tục lưu trữ
mà tự động có hiệu lực khi dữ liệu trong bảng chỉ định bị thay đổi Các trigger được gọi đến trong sự trả lời cho các câu lệnh INSERT, UPDATE hoặc DELETE Trigger có thể truy vấn các bảng khác và có thể chứa các câu lệnh Transact-SQL phức tạp
Trigger có thể tạo một dòng các thay đổi thông qua các bảng quan hệ trong cơ sở dữ liệu; mặc dù vậy các thay đổi
có thể được thực hiện một cách hiệu quả hơn bằng cách sử dụng các ràng buộc toàn vẹn
Trigger có thể bắt buộc phải tuân thủ những sự hạn chế phức tạp hơn những sự hạn chế được định nghĩa với các ràng buộc CHECK
Trang 30 Không giống như các ràng buộc CHECK, các trigger có thể tham chiếu các cột trong các bảng khác Ví dụ, trigger có thể sử dụng SELECT từ bảng khác để so sánh với dữ liệu được chèn hoặc cập nhật và thực hiện các hành động phụ, như sửa đổi dữ liệu hoặc hiển thị các thông báo lỗi do người sử dụng định nghĩa
Các trigger cũng có thể đánh giá trạng thái của bảng trước sau việc sửa đổi dữ liệu và thực hiện các tác vụ dựa trên sự khác nhau này
Các trigger multiple của cùng một kiểu (INSERT, UPDATE hoặc DELETE) trên bảng cho phép các tác vụ multiple, khác nhau có vị trí trong sự trả lời cùng một câu lệnh sửa đổi
II Tìm hiểu về Net Framework
hệ điều hành (OS) Tầng NET cung cấp mọi dịch vụ cơ bản giúp
ta tạo các công dụng mà ứng dụng đòi hỏi, giống như hệ điều hành cung cấp các dịch vụ cơ bản cho ứng dụng như: đọc hay viết các tập tin (files) vào dĩa cứng (hard drive), Tầng này bao gồm 1 bộ các ứng dụng và hệ điều hành gọi là NET Servers Như vậy, NET gần như là một bộ sưu tập (collection) các nhu liệu và khái niệm kết hợp trộn lẫn nhau làm việc nhằm tạo giải đáp các vấn đề liên quan đến thương nghiệp của ta
Trang 31III Tổng quan về ngôn ngữ lập trình VB.NET
(Object Oriented Programming Language - OOP), một trong những ngôn ngữ được tạo ra để hướng đến mục tiêu tạo ra ứng dụng phân tán trên môi trường Net dựa trên nền Microsoft‟s Net Framework
tập trung vào phát triển các ứng dụng cho môi trường đa tầng, các ứng dụng phân tán,… Đặc biệt là trong lĩnh vực công nghệ Internet, lập trình ứng dụng mạng, xây dựng ứng dụng Web,…
lập trình hướng đối tượng :
Trang 32 Visual Basic.Net bổ sung thêm các tính năng hướng đối tượng như :
iao tiếp (Interface)
Nạp chồng (Overloading)
Hàm tạo và hàm hủy
Xử lý ngoại lệ có cấu trúc
Xử lý đa luồng
Tạo ứng dụng trò chơi trên Windows
Tạo các ứng dụng quản lý cho doanh nghiệp
Tạo báo cáo, tập tin văn bản
Xử lý đồ họa
Tương tác với hệ thống tập tin của Window
Truy xuất cơ sở dữ liệu
Tạo các dịch vụ Windows
Tạo các thư viện liên kết động (DLL)
Tạo các ứng dụng cho PDA, Mobie (Pocket PC)
Basic.Net, bạn sẽ thấy ngay ngôn ngữ lập trình này chuyên trị tạo ứng dụng của môi trường Net như :
Lập trình ứng dụng mạng (Network Application Programming)
Tạo ứng dụng Web / Internet (ASP.Net)
Tạo các dịch vụ Web (Web Services)
v v
Những thay đổi trong ngôn ngữ Visual Basic.Net :
Trang 33 Để Visual asic.Net thống nhất về mặt kỹ thuật với
C Net, C Net,… Microsoft đã phát triển Common Language Runtime (CLR) thành nền tảng chung Visual asic.Net không còn là công cụ sinh mã giả nữa, CLR làm cho nó trở thành ngôn ngữ hướng đối tượng thực sự và đặt
nó ngang cấp với C Net và C Net Về mặt kỹ thuật, một ứng dụng được tạo bởi Visual asic.Net không có gì khác biệt so với ứng dụng tạo bằng C Net hay C Net
Sử dụng các module (đơn thể) :Các module theo kiểu chuẩn của VB6 vẫn được hỗ trợ, tuy nhiên giờ đây bạn được cung cấp thêm hai từ khóa mới là Module và End Module dùng để định nghĩa khối module ngay trong cửa sổ Code Editor
Visual Basic.Net tiếp tục hỗ trợ từ khóa Function và Sub cho phép bạn tự tạo các hàm và thủ tục cho riêng mình Tuy nhiên cú pháp để khai báo và gọi hàm, thủ tục có thay đổi chút ít
Bạn có tùy chọn sử dụng thêm phát biểu Return để trả về kết quả ở cuối hàm cho nơi gọi
Trang 34 Trong Visual Basic.Net, kiểu dữ liệu Integer có bốn loại: yte, Short, Integer (tương đương với Long trong VB6) và Long (lớn gấp đôi Long trong V 6)
Visual Basic.Net dùng kiểu Decimal với 128 bit để thay thế kiểu Currency trong VB6
Kiểu Char được dùng để chứa một Unicode (16 bit) ký
tự
Thay thế kiểu Variant bằng Object
Visual asic.Net dùng kiểu ate để lưu dữ liệu ngày, thay vì bên V 6 dùng kiểu ouble
Bạn có thể khai báo được nhiều biến số trên cùng một hàng
Khai báo trị số khởi đầu một cách rút gọn, dễ hiểu
Mảng trong Visual Basic.Net giờ đây cho phép lấy chỉ
số cơ sở bắt đầu từ 0 (zero-base) Có nghĩa là phần tử thấp nhất trong mảng được đánh số 0
Mảng có thể được khai báo và gán giá trị theo cách cũ
Ví dụ cú pháp để khai báo mảng MyArray() và thêm 4 phần tử vào mảng như sau :
Ví dụ : Dim MyArray() As Integer = { 1, 2, 3, 4}
Trang 35 Phát biểu ReDim vẫn còn hiệu lực trong Visual Basic.Net mặc dù nó không dùng để thay đổi kích thước của mảng đang có dữ liệu Không thể dùng ReDim trong phần khai báo khởi tạo giá trị ban đầu cho mảng
Bạn không còn phải sử dụng một lớp tập hợp Collection đơn duy nhất như trước đây nữa Thay vào đó, Visual Basic.Net sử dụng lớp System.Collections để xử lý tập hợp Với việc sử dụng lớp System.Collections, bạn có thể truy cập rất nhiều tập hợp hữu dụng khác như Stack, Queue, ictionary và Hastable,…
Bảng 1: Các chức năng của tập Collection
Collection Chức năng
HashTable Collection chứa những cặp key-value data, cho ta dùng làm tự điển
cứ Object loại nào
SortedList Chứa một danh sách những cặp key-value data được sắp theo thứ tự
Khối Try…Catch là cơ chế xử lý lỗi mới trong Visual Basic.Net Mặc dù bạn vẫn còn có thể sử dụng các cú pháp
Trang 36cũ trong V 6 như On Error oto, Resume, Resume Next nhưng Try…Catch đơn giản và hợp logic hơn cú pháp oto trước đây
Ngoài ra, Visual Basic.Net còn bổ sung thêm một số phát biểu mới như : Catch When, Exit Try,…; các đối tượng Err và thuộc tính Err.Number, Err escription để xác định mã lỗi Thêm vào đó bạn có thể sử dụng thêm phương thức mới là Err etException để trả về thông tin của lỗi ngoại lệ phát sinh
định :
là AndAlso và OrElse Trong các phát biểu điều kiện chứa nhiều điều kiện như cấu trúc If…Then, không cần thiết lúc nào cũng phải ước lượng toàn bộ hay tất cả các điều kiện
Bỏ qua một số biểu thức khi ước lượng điều kiện được gọi
là ước lượng tắt và có thể sử dụng bởi toán tử AndAlso và
OrElse
Trong VB6, cú pháp lặp While được xây dựng như sau While…Wend Trong Visual asic.Net bạn phải viết lệnh While rõ ràng hơn là While…EndWhile
Operators) Bảng 2: Sự khác nhau giữa VB6 và VB.Net trong cách viết toán tử số học
Trang 37 Trong VB6 ta có thể viết :
Set x=New Product Set a=x
Trong VB.Net sẽ được viết lại :
x=New Product() a=x
Property):
định cho các đối tượng không có tham số, nhưng vẫn hỗ trợ đối với các đối tượng có tham số
(parameter) cho thuộc tính mặc định Phải dùng từ khóa mặc định ( efault Keyword) để tạo ra thuộc tính mặc định, như ví dụ sau:
Default Public Property Item(ByVal Index As
Integer) As String
Name) :
Trang 38 Trong Visual Basic.Net ta có thể dùng Reserved Word làm Procedure Name bằng cách để nó giữa ngoặc vuông Giả sử muốn dùng chữ Compare làm tên một Function, ta
sẽ viết như sau :
Public Function [Compare] (ByVal v1 As Integer, ByVal v2 As Integer) As Boolean
Mặc định trong V 6, các biến được truyền đến một hàm hay thủ tục mà không xác định cụ thể là yRef hay yVal thì được gán tự động dựa trên kiểu tham số của chúng Tất cả kiểu dữ liệu cơ bản như Integer, String, oolean và Variant đều được gán là yRef Các kiểu dữ liệu tham chiếu đối tượng và do người dùng định nghĩa được ấn định là yVal Riêng với Visual asic.Net, mặc định gán tất cả các tham số là yVal trừ khi chúng được khai báo rõ ràng là yRef
Đối tượng R O và A O trong V 6 đã được thay thế chung bằng mô hình ADO.Net - là mô hình lập trình truy xuất dữ liệu chung cho tất cả ngôn ngữ và chương trình Windows (cụ thể là các ngôn ngữ trong Visual Studio như : C#, C++, VB.Net)
Định dạng dữ liệu bên trong của ADO.Net tuân theo chuẩn XML, do đó bạn có thể dễ dàng tích hợp dữ liệu của ADO.Net với các ứng dụng Web hiện có trên Internet
Trong Visual Basic.Net, thông tin về cơ sở dữ liệu chứa trong bảng bây giờ được biểu diễn thông qua đối tượng là dataset và không kết nối trực tiếp thường xuyên với dữ liệu,
Trang 39thông tin trong dataset là thông tin sao chép và chỉ là ảnh của dữ liệu thật
Visual Basic.Net còn hỗ trợ thêm các đối tượng mới như ataset, ataAdapter, ataTable,…
Khả năng thừa kế Form sử dụng công cụ Inheritance Picker Lớp giờ đây được định nghĩa từ khóa Public Class
và End Class Bạn có thể tạo ra các lớp con kế thừa lớp cha thông qua từ khóa Inherits
Bảng 3: Sự khác biệt giữa VB6 và VB.Net
Tính thừa kế
Không cung cấp tính thừa kế
Thực hiện kế thừa đầy đủ cho phép lớp con riêng dẫn xuất các thuộc tính
và phương thức từ lớp cơ bản được viết bằng ngôn
ngữ Net C++ hay C#
Khả năng tương tác
- ùng các kiểu biến khác với C và Java, làm cho các ứng dụng viết bằng ngôn ngữ V
và C khó tương tác với nhau
- Không có khả năng kết hợp tính năng từ những
Các kiểu biến nhất quán với C và C trên nền CLR
Trang 40lớp khác
Tạo ứng dụng
Tạo tập tin EXE nhưng
lệ thuộc vào các thư viện
LL hỗ trợ Việc triển khai khó khăn vì phải phân phối không chỉ tập
tin EXE mà cả các thư
viện LL
Tạo tập tin EXE có thể
chạy không cần đến các thư viện LL hỗ trợ
Phân luồng
Không thể tận dụng hết tính năng phân luồng có trong COM
Cho phép phân luồng linh động tăng tính khả năng mở cho ứng dụng
Hình 7: Chương trình được thiết kế bằng Visual Studio 2010