Ngày nay công nghệ thông tin đã phát triển vượt bậc và xâm nhập vào mọi lĩnh vực của đời sống xã hội. Máy tính đã giúp đỡ con người trong rất nhiều hoạt động, làm tăng hiệu quả của công việc, làm giảm sức lao động của con người và làm thỏa mãn những ước muốn của con người. Yêu cầu của con người là vô hạn và công nghệ cũng không ngừng phát triển ở đó. Trước đây các ứng dụng tin học của Việt Nam trong đó có cả những ứng dụng kĩ thuật đều được thực hiện trên các máy tính đơn lẻ, ít đòi hỏi lao động tập thể mà chỉ do một hoặc hai cá nhân phụ trách. Tuy nhiên ngày nay, nhờ có máy tính mà người ta đã phát triển những hệ thống lớn có quy mô quốc gia, thậm chí cả khu vực và toàn thế giới. Những hệ thống đó đòi hỏi phải có rất nhiều người tham gia làm việc. Chính nhờ việc xây dựng các phần mềm quản lí hệ thống thông tin, các thao tác thực hiện trên máy tính được hoạt động có hiệu quả, tính chính xác cao, nhanh chóng, và thuận tiện với người sử dụng, đặc biệt là có tính kế thừa. Với tầm quan trọng của việc phân tích thiết kế hệ thống thông tin thì nhu cầu học tập và nghiên cứu về công việc này trở nên hết sức cần thiết. Vì thế em đã tìm hiểu và nghiên cứu về xây dựng phần mềm quản lý dựa vào phân tích thiết kế hệ thống thông tin, đồ án của em có tên là:” Xây dựng phần mền quản lý và bán hàng cửa hàng máy tính”. Do bước đầu làm quen với việc thiết kế một phần mềm quản lý nên em chưa có kinh nghiệm nhiều, bên cạnh đó còn nhiều hạn chế trong kiến thức nên có nhiều thiếu sót, mong thầy cô và các bạn góp ý để em có thể hoàn thiện đề tài của mình một cách tốt nhất.
Trang 1MỤC LỤC
LỜI CẢM ƠN 4
LỜI NÓI ĐẦU 5
CHƯƠNG 1: TỔNG QUAN 6
1.1 Tầm quan trọng của ứng dụng tin học trong quản lý 6
1.2 Giới thiệu về hệ thống quản lý bán hàng tại các cửa hàng kinh doanh máy tính hiện nay 6
1.2.1 Cơ cấu tổ chức, quản lý của các cửa hàng kinh doanh máy tính hiện nay: 6
1.2.2 Công việc cụ thể từng bộ phận 7
1.3 Phạm vi của đồ án 7
1.4 Các kiến thức và công cụ có liên quan 8
1.4.1 Mô hình Client/Server 8
1.4.2 Hệ quản trị cơ sở dữ liệu 11
1.4.3 Tìm hiểu và lựa chọn công cụ phát triển chương trình 26
CHƯƠNG II: PHÂN TÍCH HỆ THỐNG 36
2.1 Khảo sát quá trình kinh doanh của các cửa hàng kinh doanh máy tính 36
2.2 Nhược điểm của các khâu trong quá trình kinh doanh 38
2.3 Sơ đồ phân cấp chức năng hệ thống 39
2.4 Biểu đồ luồng dữ liệu của hệ thống 41
2.4.1.Các ký hiệu sử dụng trong biểu đồ 41
2.4.2 Biểu đồ luồng dữ liệu mức khung cảnh (mức 0) 41
2.4.3 Biểu đồ luồng dữ liệu mức đỉnh (mức 1) 42
2.4.4 Phân rã chức năng 1 Cập nhật thông tin (mức 2) 43
2.4.5 Phân rã chức năng 2 Quản lý kho (mức 2) 44
2.4.6 Phân rã chức năng 3 Tra cứu, thống kê (mức 2) 44
2.4.7 Phân tích chức năng 45
2.5 Phân tích dữ liệu của hệ thống 48
2.5.1 Mô hình thực thể / liên kết 48
2.5.2 Luồng dữ liệu 49
2.5.3 Kho dữ liệu 49
CHƯƠNG III: THIẾT KẾ HỆ THỐNG 50
Trang 23.1 Chuẩn hoá dữ liệu 50
3.1.1 Khái niệm về chuẩn hoá 50
3.1.2 Chuẩn hoá dữ liệu 50
3.2 THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH QUẢN LÝ BÁN HÀNG 57
3.2.1.Thiết kế hệ thống Menu của chương trình 57
3.2.2 Các chức năng của từng Menu 58
CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 71
4.1 Đánh giá kết quả 71
4.2 Hướng phát triển 72
4.3 Kết Luận 72
TÀI LIỆU THAM KHẢO 74
Trang 3DANH MỤC BẢNG, HÌNH
Hình 1.1 Mô hình Client/Server 9
Hình 1.3: Bảng MONHOC với khoá chính là MAMONHOC 22
Hình 1.5: Hình Data Control 33
Hình 2.1 Biểu đồ phân cấp chức năng 40
Hình 2.2: Biểu đồ luồng dữ liệu mức khung cảnh 41
Hình 2.3 : Biểu đồ luồng dữ liệu mức đỉnh 42
Hình 2.4: Biểu đồ luồng dữ liệu quản lý Cập nhật thông tin 43
Hình 2.5: Biểu đồ luồng dữ liệu quản lý kho 44
Hình 2.6: Biểu đồ luồng dữ liệu Tra cứu, thống kê 45
Trang 4LỜI CẢM ƠN
Sau 4 năm học tập tại trường Đại Học Thủy Lợi nói chung và khoa CôngNghệ Thông Tin nói riêng, em đã nhận được sự chỉ bảo và giúp đỡ của các thầy côgiáo và các bạn rất nhiều
Đầu tiên, em xin chân thành cảm ơn thầy cô giáo Trường Đại Học Thủy Lợi
và đặc biệt là các thầy cô Khoa Công Nghệ Thông Tin đã dạy cho em có đượcnhững kiến thức vững chắc để có thể phục vụ cho việc hoàn thành đồ án
Đặc biệt, trong 14 tuần làm đồ án, em đã được sự hướng dẫn tận tình của
thầy giáo Nguyễn Văn Nam Em xin chân thành cảm ơn thầy đã giúp đỡ, bổ sung
cho em những kiến thức cơ bản, và cho em những lời khuyên, sự góp ý để em cóthể hoàn thành đồ án một cách nhanh chóng và có hiệu quả nhất
Em cũng xin chân thành cảm ơn gia đình, người thân và bạn bè đã luôn bêncạnh và tạo mọi điều kiện thuận lợi để cho em có thể hoàn thành đồ án này
Trong suốt quá trình làm đồ án “Xây dựng phần mềm quản lý và bán hàngcửa hàng máy tính ” em đã cố gắng hết sức để hoàn thiện chương trình một cách tốtnhất, nhưng do kiến thức không đủ, thời gian làm đồ án có hạn và cũng là lần đầutiên xây dựng phần mềm quản lý nên cũng không thể tránh khỏi những sai sót Vìthế em rất mong nhận được sự thông cảm từ các thầy cô giáo và các bạn Em rấtmong nhận được những góp ý của thầy cô và các bạn để chương trình của em trởnên hoàn thiện hơn Một lần nữa em xin chân thành cảm ơn thầy cô, bạn bè và giađình đã giúp đỡ em trong suốt thời gian qua!
EM XIN CHÂN THÀNH CẢM ƠN
Trang 5LỜI NÓI ĐẦU
Ngày nay công nghệ thông tin đã phát triển vượt bậc và xâm nhập vào mọilĩnh vực của đời sống xã hội Máy tính đã giúp đỡ con người trong rất nhiều hoạtđộng, làm tăng hiệu quả của công việc, làm giảm sức lao động của con người vàlàm thỏa mãn những ước muốn của con người
Yêu cầu của con người là vô hạn và công nghệ cũng không ngừng phát triển ở
đó Trước đây các ứng dụng tin học của Việt Nam trong đó có cả những ứng dụng
kĩ thuật đều được thực hiện trên các máy tính đơn lẻ, ít đòi hỏi lao động tập thể màchỉ do một hoặc hai cá nhân phụ trách Tuy nhiên ngày nay, nhờ có máy tính màngười ta đã phát triển những hệ thống lớn có quy mô quốc gia, thậm chí cả khu vực
và toàn thế giới Những hệ thống đó đòi hỏi phải có rất nhiều người tham gia làmviệc Chính nhờ việc xây dựng các phần mềm quản lí hệ thống thông tin, các thaotác thực hiện trên máy tính được hoạt động có hiệu quả, tính chính xác cao, nhanhchóng, và thuận tiện với người sử dụng, đặc biệt là có tính kế thừa
Với tầm quan trọng của việc phân tích thiết kế hệ thống thông tin thì nhu cầuhọc tập và nghiên cứu về công việc này trở nên hết sức cần thiết Vì thế em đã tìmhiểu và nghiên cứu về xây dựng phần mềm quản lý dựa vào phân tích thiết kế hệthống thông tin, đồ án của em có tên là:” Xây dựng phần mền quản lý và bán hàngcửa hàng máy tính” Do bước đầu làm quen với việc thiết kế một phần mềm quản lýnên em chưa có kinh nghiệm nhiều, bên cạnh đó còn nhiều hạn chế trong kiến thứcnên có nhiều thiếu sót, mong thầy cô và các bạn góp ý để em có thể hoàn thiện đềtài của mình một cách tốt nhất Bố cục đồ án gồm các phần như sau:
Trang 6CHƯƠNG 1 TỔNG QUAN
1.1 Tầm quan trọng của ứng dụng tin học trong quản lý
Khoa học kỹ thuật hiện nay phát triển ngày càng cao và có những bước tiếnvượt bậc, được ứng dụng trong mọi lĩnh vực, ngành nghề Và công nghệ thông tin làmột ngành như vậy Do nền kinh tế phát triển mạnh theo hướng mở rộng, hoà nhậpđòi hỏi các nhà quản lý kinh tế phải xử lý một lượng lớn thông tin trong thời giannhanh nhất Bên cạnh đó, việc nhanh chóng ứng dụng công nghệ mới vào sản xuất
đã làm giảm giá thành và giảm đáng kế chi phí đầu tư vào thiết bị Ngoài ra, hạ tầngCNTT cũng được được chú trọng đầu tư và phát triển Vì vậy, ứng dụng tin học dầntrở nên phổ biến và gần như không thế thiếu dù là trong cuộc sống hay công việc
Từ một cửa hàng nhỏ cho đến những viện nghiên cứu, các trung tâm lớn, đâu đâucũng có thể nhìn thấy ứng dụng của tin học trong đó, cho dù đó chỉ là một bộ máytính với một vài phần mềm ứng dụng, quản lý hay những cỗ siêu máy tính nhằmgiải quyết các bài toán phức tạp ở tầm quốc gia Như vậy có thể thấy rằng ứngdụng tin học có một tầm quan trọng đặc biệt trong công tác quản lý, giúp các nhàquản lý có đầy đủ các thông tin cần thiết để đưa ra các quyết định một cách nhanhchóng nhằm đặt hiệu quả và hiệu suất cao trong công việc
1.2 Giới thiệu về hệ thống quản lý bán hàng tại các cửa hàng kinh doanh máy tính hiện nay
1.2.1 Cơ cấu tổ chức, quản lý của các cửa hàng kinh doanh máy tính hiện nay:
Các bộ phận của cửa hàng thường bao gồm :
Trang 71.2.2 Công việc cụ thể từng bộ phận
+ Quản lý : thâu tóm quản lý toàn bộ hoạt động của cửa hàng, nhận báo cáo thống kê định kỳ của các nhân viên trong từng bộ phận, kiểm tra các hóa đơn để xuất nhập tiền, quản lý hàng hóa trong cửa hàng
+ Kinh doan/Marketing : Khai thác nguồn hàng, tìm kiếm các nhà cungcấp và khách hàng mới, tìm kiếm sản phẩm mới Bộ phận này đ ược quyền xem báo cáo doanh số bán hàng, số lượng và chủng loại hàng
+ Kho : Nhập/xuất kho hàng hóa, gửi các báo cáo hàng còn tồn, hàng hết tồn cho các bộ phận liên quan
+ Bán hàng : có quyền tra cứu thông tin của sản phẩm trong cửa hàng, nhập thông tin về khách hàng, lưu thông tin hóa đơn mua bán của khách hàng, giao hàng cho khách
+ Kỹ thuật : Thực hiện các công việc lắp ráp, cài đặt, bảo hành, bào trìsản phẩm cho khách hàng
+Kế toán: Lưu hóa đơn, phụ trách việc thu giữ, thống kê tổng hợp các loại giấy
tờ sổ máy tính của cửa hàng, theo dõi công nợ nhập hàng và bán hàng
1.3 Phạm vi của đồ án
Trong đồ án này, em mong muốn xây dựng một chương trình phần mềmquản lý bán hàng máy tính tại một số cửa hàng kinh doanh máy tính Vì hiện tại cáccửa hàng này đang thực hiện công việc thủ công (làm hoàn toàn bằng tay, lưu trữtrên giấy tờ sổ máy tính) Việc quản lý như vậy mất rất nhiều thời gian, công sức màhiệu quả không cao Việc tra cứu thông tin, làm báo cáo nhiều khi rất khó khăn vìthông tin không quản lý tập trung, không thống nhất
Qua khảo sát thực tế tại một số cửa hàng kinh doanh máy tính, em đã xâydựng cho mình một phương án quản lý hoạt động kinh doanh máy tính qua mộtchương trình phần mềm máy tính Đây chỉ là một phần mềm đơn giản, dễ sử dụng.Phần mềm này sẽ chuẩn hóa toàn bộ hoạt động kinh doan của cửa hàng , giúp các
bộ phận truy xuất thông tin lập báo cáo một cách nhanh chóng, chính xác và do đó
sẽ đặt hiệu quả cao hơn trong công việc
Trang 81.4 Các kiến thức và công cụ có liên quan
Nhằm mục đích lựa chọn đúng môi trường và công cụ để phát triển đề tài, tacần tìm hiểu một số kiến thức và công cụ có liên quan tới việc xây dựng chươngtrình
Với mục đích lưu trữ tập trung và chia sẻ dữ liệu thì áp dung mô hình
“Client/Server” với một hệ quản trị cơ sở dữ liệu là phương án tốt nhất để giải quyếtbài toán trong đòi ắn này
Trang 9- Client: một chương trình ứng dụng do người dùng điều khiền hoặc chạy tựđộng Nó bao gồm tất cả các phần mềm giao tiếp với Server, hoặc yêu cầu dữ liệu
từ cơ sở dữ liệu hoặc gửi dữ liệu đến Server
- Giao tiếp giữa Client và Server Phần giao tiếp giữa client và server hầunhư phụ thuộc vào việc client và server được triển khai như thế nào Phần giao tiếpnày bao gồm cả giao tiếp vật lí và logic
Ưu điểm của mô hình Client/Server
- Cải thiện việc chia sẻ dữ liệu: Dữ liệu được thu thập là một phần của mộtquá trình xử lí thông tin bình thường trong doanh nghiệp và được lưu trữ trên Server
để những người dùng được phép truy nhập Việc sử dụng ngôn ngữ SQL để địnhnghĩa và thao tác dữ liệu hỗ trợ cho việc truy cập mở của các phần mềm và vi xử lí
Trang 10ở client SQL cho phép người dùng truy nhập đến thông tin mình cần thông quaView Các dịch vụ mạng trong suốt đảm bảo cho việc truy cập đồng thời của nhiềungười dùng đến cùng một dữ liệu.
- Tích hợp các dịch vụ: Trong mô hình Client/Server dữ liệu, tất cả thông tin
mà người sử dụng được phép sử dụng đều có sẵn trên desktop mà không cần thayđổi chế độ hoạt động hoặc phải truy cập vào một hệ điều hành khác để truy cậpthông tin Tất cả các thông tin và tiến trình được phép có thể được truy cập trực tiếp
từ giao diện với desktop Người dùng có thể sử dụng các công cụ trên desktop nhưemal, bảng tính, các trình bày đồ hoạ, chương trình soạn thảo văn bản để xử lí cácthông tin do các ứng dụng và cơ sở dữ liệu ở Server cung cấp qua mạng
- Chia sẻ thông tin với nhiều môi trường nền (hệ điều hành, cơ sở dữ liệu,môi trường truyền thông) Các ứng dụng có thể được tạo và thực hiện mà không cầnquan tâm đến môi trường nền hay đặc tính kĩ thuật của phần mềm Người dùng vìvậy có thể sử dụng các dịch vụ và truy cập trong suốt đến dịch vụ do cơ sở dữ liệu,các phương tiện truyền thông và các ứng dụng ở Server
- Data Interchangeability and Interoperability: SQL là ngôn ngữ định nghĩa
và truy cập dữ liệu theo chuẩn công nghiệp, ngôn ngữ này cho phép nhiều nhà cungcấp phát triển các database engines để quản lí dữ liệu Hầu hết tất cả các công cụphát triển client/server đều yêu cầu tham chiếu đến một server cơ sở dữ liệu back-end được truy cập thông qua SQL Các dịch vụ mạng cung cấp các kết nối trongsuốt giữa máy client và các server trong mạng nội bộ hay mạng diện rộng Một sốsản phẩm về cơ sở dữ liệu cho phép người dùng hoặc ứng dụng định nghĩa mộtView lấy thông tin từ nhiều môi trường nền khác nhau
- Truy cập dữ liệu vật lí được nguỵ trạng (Masked Physical Data Access):Khi người sử dụng dùng SQL để truy cập dữ liệu, người dùng có thể truy cập thôngtin từ các cơ sở dữ liệu trên mạng Từ một máy PC hay server cục bộ hoặc servertrong mạng diện rộng, người sử dụng và nhà phát triển sử dụng cùng một yêu cầu
dữ liệu để truy cập dữ liệu Một sự khác biết duy nhất có thể nhận thấy là sự giảmchất lượng truy cập khi dải thông mạng không đáp ứng được Cùng với một câulệnh SQL, dữ liệu có thể được truy cập thông qua bộ nhớ truy cập ngẫu nhiên động,
từ đĩa từ hoặc đĩa quang Các bảng có thể được liên kết với nhau thành một view để
Trang 11các chương trình ứng dụng xử lí mà không cần quan tâm đến cấu trúc lưu trữ vật lícủa các bảng này.
1.4.2 Hệ quản trị cơ sở dữ liệu
Để có thể cài đặt các phần mềm quản lý, ta phải cần đến hệ quản trị cơ sở dữliệu Hệ quản trị cơ sở dữ liệu là phần mềm ứng dụng mà trong đó ta có thể tạo lập
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản Trị Cơ Sở Dữ liệuquan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nólàm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,…
Các đối tượng của MYSQL
Bảng - Table :
Trong cơ sở dữ liệu, bảng (Table) là thành phần chính của chúng Do đóbảng là đối tượng lưu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác,
Trang 12bảng là đối tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào, chúng đượccoi như một miền dữ liệu.
Bảng dùng để lưu trữ tất cả dữ liệu và được tổ chức thành nhiều hàng vànhiều cột Mỗi cột trong bảng có thể lưu một loại thông tin nhất định gọi là kiểu
dữ liệu, dữ liệu nhập vào có thể chấp nhận hoặc từ chối tùy thuộc vào nguyêntắc ràng buộc dữ liệu hoặc dữ liệu tương thích do hệ thống hay người dùng địnhnghĩa
Khi định nghĩa cơ sở dữ liệu ta cần quan tâm đến các thông số sau:
Key: Trường đó có khóa hay không
ID: Trường có thuộc tính Identity hay không
Column Name: Tên của trường
Data type: Loại dữ liệu cho trường tương ứng
Size: Kích thước trường dữ liệu
Allow null: Cho phép giá trị rỗng lưu trong trường hay không
Default: Giá trị mặc nhiên cho trường
Identity: Nếu bạn cần sử dụng một trường có giá trị tự động nhưAutonumber trong access, trường này not null và Identity: yes (no).Identity seed: Nếu trường (cột) này là identity, cần số bắt đầu số 1hoặc 2 …
Chỉ mục - Indexs:
Index hay còn gọi là chỉ mục, đối tượng này chỉ tồn tại trong bảng hay khungnhìn (view) Chỉ mục này có ảnh hưởng tới tốc độ truy cập số liệu, nhất là khicần tìm kiếm thông tin trên bảng, chỉ mục giúp tăng tốc độ cho việc tìm kiếm
Clustered: Ứng với mỗi chỉ mục này một bảng chỉ có một chỉ mục, và
số liệu được sắp xếp theo trang
Non-clustered: Ứng với chỉ mục này một bảng có thể có nhiều chỉmục và dữ liệu được sắp xếp theo trường dữ liệu mà bạn chỏ tới
Bẫy lỗi - Triggers:
Trang 13Nếu đối tượng chỉ tồn tại trong bảng, cụ thể là một đoạn mã, và tự động thựcthi khi có một hành động nào đó xảy ra đối với dữ liệu trong bảng như: Insert,Update, Delete.
Trigger có thể sử dụng để bẫy rất nhiều tình huống như copy dữ liệu, xóa dữliệu, cập nhập dữ liệu, kiểm tra dữ liệu theo tiêu chuẩn nào đó
View cho phép bạn chia ngang hay dọc thông tin từ một hay nhiều bảngtrong cơ sở dữ liệu, sử dụng View như là một đối tượng trong MY SQL, khi cầnthiết sử dụng đến View, kết quả View trả về bằng việc truy vấn dữ liệu theo yêucầu người dùng
Mục đích sử dụng View:
Hạn chế tính phức tạp của dữ liệu đến người dùng
Kết nối dữ liệu từ nhiều bảng lại với nhau
Sử dụng tài nguyên Server để thực hiện việc truy vấn
Tạo ra một bảng ảo có dữ liệu như yêu cầu
Kết hợp một số hàm và phương thức tạo ra các cột mới
Thủ tục nội (stored Procedure):
Thủ tục nội hay còn gọi là Spocs, tiếp tục phát triển như một phần lập trìnhSQL trên cơ sở dữ liệu Store Procedure cho phép khai báo biến, nhận tham số
Trang 14cúng như thực thi các phát biểu có điều kiện Store Procedure có các ưu điểmsau:
Kế thừa tất cả các phát triển của SQL, và là một đối tượng xử lý sốliệu hiệu quả nhất khi dùng MY SQL
Tiết kiệm thời gian thực thi trên dữ liệu
Có thể gọi những Stored Procedure theo cách gọi của thủ tục hay hàmtrong các ngôn ngữ lập trình truyền thống, đồng thời sử dụng lại khi
vì FoxPro có thể làm được mọi việc Tuy nhiên nếu đi sâu tìm hiểu Access có thểthấy rằng phần mềm này thể hiện nhiều đặc tính ưu việt hơn FoxPro, nổi bật hơn cả
là tính đơn giản và hiệu quả Thật vậy, Access có thể đáp ứng hầu hết các nhu cầu
về quản trị Cơ Sở Dữ Liệu nhưng vẫn giữ tính thân thiện và dễ sử dụng cả chongười lập trình lẫn cho người sử dụng Các khái niệm trong lý thuyết Cơ Sở DữLiệu được thể hiện khá đầy đủ trong Access Nó là 1 hệ thống có tính hướng đốitượng và có thể dùng trên hệ thống mạng để chia xẻ với nhiều người sử dụng Cơ Sở
Dữ Liệu Đồng thời Access dễ dàng quản lý, thể hiện và chia xẻ thông tin trong cáccông việc quản lý dữ liệu hàng ngày
Microsoft Access là một hệ quản trị cơ sở dữ liệu 32bit dùng để tạo các ứngdụng cơ sở dữ liệu dùng với các máy Desktop và với mô hình client/server chạydưới Windows 95, Windows NT Những phiên bản Access trong những năm gầnđây có thêm nhiều tính năng đa dạng liên quan đến Internet giúp ta tạo các tư liệuHTML mà WWW sử dụng Các JetEngine cơ sở dữ liệu được nâng cấp sẽ tăng tốccác bộ hỏi đối với các mô hình Client/Server có ODBC direct
Trang 15Access có một cấu trúc dữ liệu độc đáo có thể phối hợp với mọi bảng dữ liệu
có liên quan và các chỉ mục, biểu mẫu, báo biểu, macro và mã VBA trong chỉ mộttập tin cơ sở dữ liệu mdb Ngoài ra Access còn cung cấp một dạng tập tin mới cóphần mở rộng là mde, giúp người lập trình phân phối các ứng dụng Access màkhông cần gộp mã nguồn VBA ban đầu
c Oracle
Oracle bao gồm một tập hợp hoàn thiện các sản phẩm xây dựng ứng dụng vàngười dùng cuối được trang bị các giải pháp kỹ thuật thông tin hoàn hảo Các ứngdụng Oracle tương thích với hầu hết các hệ điều hành từ các máy tính cá nhân đếncác hệ thống xử lý song song lớn
Oracle cung cấp một hệ quản trị cơ sở dữ liệu (Database ManagementSystem - DBMS) uyển chuyển: Oracle Server để lưu giữ và quản lý các thông tindùng trong các ứng dụng Phiên bản Oracle 8i quản lý cơ sở dữ liệu với tất cả các
ưu điểm của cấu trúc CSDL quan hệ cộng thêm khả năng lưu giữ và thực thi các đốitượng CSDL như các procedure và các trigger
Oracle Server là một hệ quản trị CSDL điều khiển:
-Lưu giữ dữ liệu trên các vùng dữ liệu đã thiết kế
-Truy xuất dữ liệu cho các ứng dụng, dùng các kỹ thuật tương đối tối ưu.-Bảo mật dữ liệu, cấp quyền khác nhau cho các user
-Liên kết và toàn vẹn dữ liệu khi CSDL được phân bố trên mạng
Ngoài các chức năng chuẩn cung cấp các tiện ích CSDL, Oracle Server còn
có thêm một số chức năng sau:
-Procedural Option-Distributed Option-Parallel Server Option-Trusted Oracle
Các sản phẩm của Oracle bao gồm:
-Oracle TextRetrieval-Pro* ORACLE-Oracle Card-Oracle CASE-SQL * Plus
Trang 16Oracle cho phép định nghĩa các ràng buộc toàn vẹn cho các cột trong tablehay giữa các table với nhau để buộc chúng tuân theo một quy luật nào đó nhằm mụcđích: Kiểm tra ràng buộc toàn vẹn dữ liệu khi thêm vào, cập nhật hay xóa dữ liệu;ngăn cản việc xóa 1 table khi có sự phụ thuộc của table này vào các table khác.Oracle có các kiểu ràng buộc sau:
-NOT NULL: cột không được rỗng
-UNIQUE: đánh dấu một cột hoặc một tập các cột như một khóa duy nhất,không thể có 2 dòng trong table chứa cùng giá trị cho khóa này
-PRIMARY KEY: tương tự như khóa đơn nhất, một khóa chính bắt buộc sựduy nhất của một cột hay một tổ hợp các cột
-FOREIGN KEY: Khóa ngoại cung cấp các luật ràng buộc tham khảo toànvẹn không những bên trong 1 table mà còn giữa các table
-CHECK: ràng buộc này định nghĩa một điều kiện mà mỗi dòng phải thỏatrong 1 table khi đưa 1 giá trị vào 1 cột đã được định nghĩa
Từ điển dữ liệu là một trong những phần quan trọng nhất của Oracle DBMS
Từ điển dữ liệu bao gồm một tập hợp các table và view cung cấp các hướng dẫntham khảo chỉ đọc về CSDL Từ điển dữ liệu chứa đựng:
-Tên username của người sử dụng Oracle
-Các quyền và tập quyền được cấp
-Tên của các đối tượng CSDL (table, view, index, synonym,…)
-Các ràng buộc được cấp cho table
Oracle cũng có cơ chế backup và restore dữ liệu ra các thiết bị lưu trữ hoặc
sử dụng các redolog file để phục hồi lại dữ liệu tại thời điểm gần đây nhất trước khi
dữ liệu bị mất mát
Trang 17Oracle mặc dù là hệ quản trị cơ sở dữ liệu mạnh vào loại nhất hiện naynhưng giá thành để đào tạo và cài đặt chương trình rất tốn kém, vì vậy chỉ phù hợpdùng cho các dự án và các cửa hàng lớn.
d SQL Server
SQL Server là sản phẩm Database Engine của Microsoft SQL Server lần đầutiên được giới thiệu vào năm 1990 trên nền Microsoft OS/2 cùng với Sybase Sảnphẩm này bắt nguồn từ Sybase SQL Server chạy trên nền Unix của Microsoft.Microsoft SQL Server 4.2 ra đời khi trên thị trường xuất hiện hệ điều hànhWindows NT Sau đó tiếp tục là các phiên bản 6.0 và 6.5
SQL Server 6.5 đã có những cải thiện đáng kể về các thao tác liên quan đếntransaction, độ tin cậy và qui mô của hệ thống và đã trở thành một trong những sảnphẩm được sử dụng rộng rãi nhất cho các hệ thống chạy trên nền Windows NT
SQL Server 7.0 là một kiến trúc database engine tiên tiến, đã giải quyết đượcnhững yêu cầu cần thiết của một ứng dụng cơ sở dữ liệu SQL Server cho phép cácnhà phát triển chỉ cần viết mã một lần cho các ứng dụng chạy trên các hệ điều hành
từ Windows 98 cho đến Windows NT Server Việc kiểm soát tính ổn định và tươngtranh là điều bắt buộc đối với các ứng dụng xí nghiệp Với SQL Server 7.0 điều nàyđược thực hiện với độ tin cậy cao trên mọi hệ điều hành của Windows SQL Server
sử dụng khái niệm transaction và transaction logging để đảm bảo tính toàn vẹn vàkhả năng khôi phục lại các dữ liệu lưư trong các cơ sở dữ liệu Một transaction làmột đơn vị của công việc, nó được bắt đầu bằng câu lệnh BEGIN TRANSACTION
và kết thúc bằng câu lệnh COMMIT TRANSACTION Sau khi COMMIT, mọi dữliệu ghi tạm thời trong RAM đều được cập nhật vào cơ sở dữ liệu Trong quá trìnhlàm việc khi dữ liệu bị hỏng hoặc mất mát, SQL Server cho phép sử dụng các filelog để phục hồi lại dữ liệu tại lần COMMIT gần nhất Để kiểm soát tương tranhtrong quá trình làm việc, SQL Server cũng sử dụng các cơ chế khoá (lock) SQLServer hỗ trợ nhiều loại khoá khác nhau để điều khiển việc truy nhập đến bất kìphần dữ liệu nào từ một dòng trong cơ sở dữ liệu đến một bảng trong cơ sở dữ liệu
đó Ngoài ra, SQL Server còn hỗ trợ sao lưu trực tuyến cho phép tạo ra một bản saolưu dữ liệu đầy đủ của một cơ sở dữ liệu active và các file transaction log vẫn đượctạo trong khi người sử dụng đang truy vấn và cập nhật dữ liệu
Trang 181.4.2.2 Giới thiệu chung về ngôn ngữ truy nhập cơ sở dữ liệu SQL
(Structered Query Language )
a SQL là ngôn ngữ cơ sở dữ liệu quan hệ
SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu
trúc), là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữtrong các cơ sở dữ liệu SQL là một hệ thống ngôn ngữ bao gồm tập các câulệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ
Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng
đến một công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu.Thực sự mà nói, khả năng của SQL vượt xa so với một công cụ truy xuất dữliệu, mặc dù đây là mục đích ban đầu khi SQL được xây dựng nên và truy xuất
dữ liệu vẫn còn là một trong những chức năng quan trọng của nó SQL được sửdụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cungcấp cho người dùng bao gồm:
• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ
liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa cácthành phần dữ liệu
• Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng
thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trongcác cơ sở dữ liệu
• Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát
các thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở
dữ liệu
• Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn
trong cơ sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước cácthao tác cập nhật cũng như các lỗi của hệ thống
Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụngtrong các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trongcác hệ quản trị cơ sở dữ liệu Mặc dù SQL không phải là một ngôn ngữ lập trìnhnhư C, C++, Java, song các câu lệnh mà SQL cung cấp có thể được nhúngvào trong các ngôn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ
sở dữ liệu
Trang 19Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java, SQL làngôn ngữ có tính khai báo Với SQL, người dùng chỉ cần mô tả các yêu cầu cầnphải thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiệncác yêu cầu như thế nào Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sửdụng.
b Vai trò của SQL
Bản thân SQL không phải là một hệ quản trị cơ sở dữ liệu, nó không thể tồntại độc lập SQL thực sự là một phần của hệ quản trị cơ sở dữ liệu, nó xuất hiệntrong các hệ quản trị cơ sở dữ liệu với vai trò ngôn ngữ và là công cụ giao tiếpgiữa người sử dụng và hệ quản trị cơ sở dữ liệu
Trong hầu hết các hệ quản trị cơ sở dữ liệu quan hệ, SQL có những vai trò như:
• SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ
dàng thông qua các trình tiện ích để gởi các yêu cầu dưới dạng các câu lệnh SQLđến cơ sở dữ liệu và nhận kết quả trả về từ cơ sở dữ liệu
• SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể
nhúng các câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nêncác chương trình ứng dụng giao tiếp với cơ sở dữ liệu
• SQL là ngôn ngữ quản trị cơ sở dữ liệu: Thông qua SQL, người quản
trị cơ sở dữ liệu có thể quản lý được cơ sở dữ liệu, định nghĩa các cấu trúc lưutrữ dữ liệu, điều khiển truy cập cơ sở dữ liệu,
• SQL là ngôn ngữ cho các hệ thống khách/chủ (client/server): Trong
các hệ thống cơ sở dữ liệu khách/chủ, SQL được sử dụng như là công cụ để giaotiếp giữa các trình ứng dụng phía máy khách với máy chủ cơ sở dữ liệu
• SQL là ngôn ngữ truy cập dữ liệu trên Internet: Cho đến nay, hầu hết
các máy chủ Web cũng như các máy chủ trên Internet sử dụng SQL với vai trò làngôn ngữ để tương tác với dữ liệu trong các cơ sở dữ liệu
• SQL là ngôn ngữ cơ sở dữ liệu phân tán: Đối với các hệ quản trị cơ sở
dữ liệu phân tán, mỗi một hệ thống sử dụng SQL để giao tiếp với các hệ thốngkhác trên mạng, gởi và nhận các yêu cầu truy xuất dữ liệu với nhau
Trang 21Hình 1.3: Bảng MONHOC với khoá chính là MAMONHOC
Một bảng có thể có nhiều tập các cột khác nhau có tính chất của khóa( tức là giátrị của nó xác định duy nhất một dòng dữ liệu trong bảng) Trong trường hợp này,khóa được chọn cho bảng được gọi là khóa chính (primary key) và những khóa còn lạiđược gọi là khóa phụ hay khóa dự tuyển( candite key/ uinque key)
Mối quan hệ và khóa ngoài
Các bảng trong một CSDL không tồn tại độc lập mà có mối quan hệ mật thiết vớinhau về mặt dữ liệu Mối quan hệ này được thể hiện thông qua ràng buộc giá trị dữ liệuxuất hiện ở bảng này phải có xuất hiện trong một bảng khác Mối quan hệ giữa các bảngtrong CSDL nhằm đảm bảo được tính đúng đắn và hợp lệ của dữ liệu trong CSDL
Trong hình 1.3 hai bảng lớp và khoa có mối quan hệ với nhau Mối quan hệ nàyđòi hỏi giá trị cột MAKHOA của một dòng trong bảng lớp phải được xác định từ cộtMAKHOA và của bảng KHOA
Trang 22
Hình 1.4 Mối quan hệ hai bảng Lop và Khoa trong CSDL
Mối quan hệ giữa các bảng trong 1 CSDL thể hiện đúng mối quan hệ giữa các
thực thể Khái niệm khoá ngoài (Foreign Key) trong cơ sở dữ liệu quan hệ được sử
dụng để biểu diễn mối quan hệ giữa các bảng dữ liệu Một hay một tập các cộttrong một bảng mà giá trị của nó được xác định từ khóa chính của một bảng khácđược gọi là khoá ngoài Trong hình 1.3, cột MAKHOA của bảng LOP được gọi làkhoá ngoài của bảng này, khoá ngoài này tham chiếu đến khoá chính của bảng KHOA
hệ quản trị cơ cơ sở dữ liệu khác nhau
SELECT : truy xuất dữ liệu
INSERT : bổ sung dữ liệu
UPDATE: cập nhật dữ liệu
DELETE : xóa dữ liệu
TRUNCATE : xóa toàn bộ dữ liệu trong bảng
CREATE TABLE : tạo bảng
DROP TABLE : xóa bảng
ALTER TABLE : sửa đổi bảng
CREATE VIEW : tạo khung nhìn
ALTER VIEW : sửa đổi khung nhìn
DROP VIEW : xóa khung nhìn
CREAT INDEX : tạo chỉ mục
DROP INDEX : xóa chỉ mục
CREAT FUNCTION: tạo hàm
ALTER FUNCTION : sửa đổi hàm
Trang 23DROP FUNCTION : xóa hàm
CREAT TRIGGER : tạo trigger
ALTER TRIGGER : sửa đổi trigger
DROP TRIGGER : xóa trigger
GRANT : cấp phát quyền cho người sử dụng
REVOKE : thu hồi quyền từ người sử dụng
Quy tắc sử dụng tên trong SQL
Các đối tượng trong cơ sở dữ liệu dựa trên SQL được xác định thông quatên của đối tượng Tên của các đối tượng là duy nhất trong mỗi cơ sở dữ liệu Tênđược sử dụng nhiều nhất trong các truy vấn SQL và được xem là nền tảng trong cơ
sở dữ liệu quan hệ là tên bảng và tên cột
Trong các cơ sở dữ liệu lớn với nhiều người sử dụng, khi ta chỉ định tên củamột bảng nào đó trong câu lệnh SQL, hệ quản trị cơ sở dữ liệu hiểu đó là tên củabảng do ta sở hữu (tức là bảng do ta tạo ra) Thông thường, trong các hệ quản trị cơ
sở dữ liệu này cho phép những người dùng khác nhau tạo ra những bảng trùng tênvới nhau mà không gây ra xung đột về tên Nếu trong một câu lệnh SQL ta cần chỉđến một bảng do một người dùng khác sở hữu (hiển nhiên là phải được phép) thìtên của bảng phải được viết sau tên của người sở hữu và phân cách với tên người
sở hữu bởi dấu chấm:
Ví dụ: Ví dụ dưới đây minh hoạ cho ta thấy việc sử dụng tên bảng và tên cột trong
câu lệnh SQL
SELECT masv,hodem,ten,sinhvien.malop,tenlop
Trang 24CHAR (n) Kiểu chuỗi với độ dài cố định
NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE
VARCHAR (n) Kiểu chuỗi với độ dài chính xác
NVARCHAR (n) Kiểu chuỗi với độ dài chính xác hỗ trợ UNICODE INTEGER Số nguyên có giá trị từ -231 đến 231 - 1
TINYTINT Số nguyên có giá trị từ 0 đến 255
SMALLINT Số nguyên có giá trị từ -215 đến
215 – 1
BIGINT Số nguyên có giá trị từ -263 đến 263-1
NUMERIC (p,s) Kiểu số với độ chính xác cố định
DECIMAL (p,s) Tương tự kiểu Numeric
FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308
REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38
BIT Kiểu bit (có giá trị 0 hoặc 1)
DATETIME Kiểu ngày giờ (chính xác đến phần trăm của giây) SMALLDATETIME Kiểu ngày giờ (chính xác đến phút)
TIMESTAMP
BINARY Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes)
Trang 25VARBINARY Dữ liệu nhị phân với độ dài chính xác (tối đa 8000 bytes) IMAGE Dữ liệu nhị phân với độ dài chính xác (tối đa
2,147,483,647 bytes)
Giá trị Null
Một cơ sở dữ liệu là sự phản ánh của một hệ thống trong thế giới thực,
do đó các giá trị dữ liệu tồn tại trong cơ sở dữ liệu có thể không xác định được.Một giá trị không xác định được xuất hiện trong cơ sở dữ liệu có thể do một sốnguyên nhân sau:
• Giá trị đó có tồn tại nhưng không biết
• Không xác định được giá trị đó có tồn tại hay không
• Tại một thời điểm nào đó giá trị chưa có nhưng rồi có thể sẽ có
• Giá trị bị lỗi do tính toán (tràn số, chia cho không, )
Những giá trị không xác định được biểu diễn trong cơ sở dữ liệu quan hệbởi các giá trị NULL Đây là giá trị đặc biệt và không nên nhầm lẫn với chuỗirỗng (đối với dữ liệu kiểu chuỗi) hay giá trị không (đối với giá trị kiểu số) Giá trịNULL đóng một vai trò quan trọng trong các cơ sở dữ liệu và hầu hết các hệ quảntrị cơ sở dữ liệu quan hệ hiện nay đều hỗ trợ việc sử dụng giá trị này
1.4.3 Tìm hiểu và lựa chọn công cụ phát triển chương trình
1.4.3.1 Giới thiệu về các công cụ lập trình trong Windows
a Visual Basic
Visual Basic là một trong những công cụ lập trình phổ biến hỗ trợ việc tạo giao diện người dùng và tương tác với cơ sở dữ liệu Visual Basic cho phép thiết kế và viết mộtchương trình ứng dụng chạy trong Windows mà không cần tốn nhiều thời gian và côngsức Visual Basic đang trở nên là một trong những công cụ lập trình thoải mái và cơđộng nhất trên Windows Visual Basic cung cấp cho người lập trình một tập các công
cụ hoàn chỉnh để phát triển ứng dụng Visual Basic đưa ra phương pháp lập trình mới,nâng cao tốc độ lập trình so với các phương pháp truyền thống cũ, đồng thời cung cấpsẵn các công cụ trợ giúp lập trình dễ dùng Visual Basic có thể kết hợp với C++ tạo rađối tượng VBX mới và có thể dùng trong cả môi trường Visual Basic cũng như C++
Trang 26Cách tiếp cận lập trình của Visual Basic theo hướng trực quan, kết quả từngcông đoạn cũng như toàn bộ hệ thống có thể kiểm chứng từng bước và được hỗ trợnhiều trong quá trình lập trình Thành phần “Visual” nói đến các phương thức dùng đểtạo giao diện đồ họa người sử dụng (GUI) Thay vì viết những dòng mã để mô tả sựxuất hiện và vị trí của những thành phần giao diện, ta chỉ cần thêm vào những đốitượng đã được định nghĩa trước ở vị trí nào đó trên màn hình Người lập trình có thĩdùng các đối tưỵng bao, cài đỉt cơ chế kết nhĩng đối tưỵng OLE, dùng các hàm trongcác thư viưn động DLL dơ dàng.
Thành phần “Basic” nói đến ngôn ngữ “BASIC” (Beginners All-PurposeSymbolic Instruction Code) một ngôn ngữ được dùng bởi nhiều nhà lập trình hơn bất
cứ một ngôn ngữ nào khác trong lịch sử máy tính Visual Basic được phát triển dầndần dựa trên ngôn ngữ BASIC, và bây giờ chứa đựng hàng trăm điều lệnh, hàm, và từkhóa… có quan hệ trực tiếp với giao diện đồ họa của Windows
b.Một số đặc điểm chính của Visual Basic
Visual Basic là một ngôn ngữ lập trình hoàn thiện và hoạt động theo kiểu điềukhiển bởi sự kiện (Event - Driven programming language) nhưng lại rất giống ngônngữ lập trình có cấu trúc (Structured programming language )
Nó cùng hỗ trợ các cấu trúc:
Cấu trúc IF … THEN … ELSE
Các cấu trúc lặp (Loops)
Cấu trúc rẽ nhánh ( Select Case )
Hàm ( Function ) và chương trình con ( Subroutines )
Visual Basic đưa ra phương pháp lập trình mới, nâng cao tốc độ lập trình
Cũng như các ngôn ngữ khác, mỗi phiên bản mới của Visual Basic đều chứa đựngnhững tính năng mới chẳng hạn Visual Basic 2.0 bổ sung cách đơn giản để điềukhiển các cơ sở dữ liệu mạnh nhất có sẵn,Visual Basic 4.0 bổ sung thêm phần hỗtrợ phát triễn 32-bit và bắt đẩu chuyển sang thành một ngôn ngữ lập trình hướngđối tượng đầy đủ, đến hiện nay mới nhất làVisual Basic 6.0 hỗ trợ nhiều tính năngmạnh chẳng hạn OLE DB để lập trình dữ liệu Các lập trình viên đã có thể dùngVisual Basic 6.0 để tự mở rộng Visual Basic
Trang 27 Visual Basic có sẵn các công cụ như: các hộp văn bản ,các nút lệnh, các nút tùychọn, các hộp kiểm tra, các hộp liệt kê, các thanh cuộn, các hộp thư mục và tậptin Có thể dùng các khung kẻ ô để quản lý dữ liệu theo dạng bảng, liên lạc vớicác ứng dụng Windows khác, truy cập các cơ sở dữ liệu gọi chung là điều khiểnthông qua công nghệ OLE của Microsoft.
Hệ trợ giúp trực tuyến đầy đủ giúp tham khảo nhanh trong khi phát triển một ứngdụng Tuy nhiên việc này trên VB 6 đòi hỏi phải có CD ROM
Visual Basic còn hỗ trợ cho việc lập trình bằng cách hiện tất cả tính chất của đốitượng mỗi khi ta định dùng đến nó Đây là điểm mạnh của các ngôn ngữ lập trìnhhiện đại
Các bước thiết kế một ứng dụng Visual Basic:
Xây dựng các cửa sổ mà người dùng sẽ thấy
Quyết định những sự kiện mà các điều khiển trên cửa sổ sẽ nhận ra
Viết các thủ tục sự kiện cho các sự kiện đó (các thủ tục con khiến cho các thủtục sự kiện đó làm việc )
Các nội dung diễn ra khi ứng dụng đang chạy:
Visual Basic giám sát các cửa sổ và các điều khiển trong từng cửa sổ cho tất
cả mọi sự kiện mà từng điều khiển có thể nhận ra (các chuyển động chuột,các thao tác nhắp lên chuột, di chuyển, các gõ phím )
Khi Visual Basic phát hiện một sự kiện , nếu không có một đáp ứng tạo sẵncho sự kiện đó, Visual Basic sẽ xem xét ứng dụng để kiểm tra người dùng
đã viết thủ tục cho sự kiện đó hay chưa
Nếu đã viết rồi , Visual Basic sẽ thi hành và hình thành nên thủ tục sự kiện
đó và quay trở lại bước đầu tiên
Nếu chưa viết thủ tục sự kiện , Visual Basic sẽ chờ sự kiện kế tiếp rồi quay
về bước đầu tiên
Các bước này quay vòng cho đến khi ứng dụng kết thúc
Visual Basic for Application (VBA): Đây là ngôn ngữ Visual Basic được Microsoft
đưa vào trong các bộ phần mềm ứng dụng của hãng như Access, Excel… để giúpngười sử dụng tuỳ biến mở rộng chức năng của các ứng dụng, tự xây dựng nên cácchương trình phục vụ cho công việc cụ thể nào đó
Trang 281.4.3.2 Chọn ngôn ngữ lập trình
Sau quá trình tìm hiểu và phân tích hệ thống, trong đồ án tốt nghiệp của mình,ngôn ngữ lập trình được chọn là Visual Basic Lý do để chọn như vậy là:
Visual Basic là một ngôn ngữ phổ biến, dễ sử dụng
Có nhiều công cụ giúp cho việc lập trình quản trị cơ sở dữ liệu dễ dàng
Thời gian phát triển ứng dụng nhanh, phù hợp với thời gian làm đồ án tốtnghiệp
Để áp dụng chương trình trong môi trường mạng, ta chỉ cần thêm các câulệnh SQL để kết nối tới CSDL do một hệ quản trị CSDL đa người dùngquản lý chạy trên Server
1.4.3.3 Truy cập cơ sở dữ liệu trong Visual Basic
Khi lập trình bằng Visual Basic có thể làm nhiều việc với điều khiển dữ liệu màkhông cần mã lệnh, người lập trình dễ dàng xác định các tính chất chẳng hạnRecordSet, DataSource và DataField lúc thiết kế chương trình, cửa sổ Properties hiệnlên sẽ giúp tìm ra các thuộc tính cần thiết của các điều khiển gắn kết dữ liệu
Đối tượng cơ sở dữ liệu Recordset giống như một con trỏ trỏ đến các bảnghoặc tập các bản ghi là kết quả của một câu lệnh truy vấn SQL Trong thời gian lậptrình người lập trình sẽ làm việc hầu hết với các tính chất của đối tượng RecordSetliên quan đến điều khiển dữ liệu thay vì các tính chất của chính điều khiển dữ liệu
đó Ngoài ra Visual Basic cho phép người lập trình có thể tạo ra các đối tượng riêngcủa mình để làm việc với cơ sở dữ liệu không cần đi qua điều khiển dữ liệu Thậmchí không còn bị giới hạn chỉ sử dụng các collections và các đối tượng cơ sở dữliệu khác do Visual Basic cung cấp Đặc biệt người lập trình có thể viết mã lệnh,cho phép xây dựng và điều tác cơ sở dữ liệu theo mong muốn của mình, ví dụ có thểdùng câu lệnh tương tự sau:
Trang 29 Form:
Form là một biểu mẫu của mỗi ứng dụng trong Visual Basic Ta dùng Form nhằmmục đích định vị và sắp xếp các bộ phận trên nó khi thiết kế giao diệ với người sử dụng Ta có thể xem Form như một bộ phận mà nó có thể chứa các bộ phận khác và các bộ phận của chúng tạo nên giao tiếp cho ứng dụng Form chính là giao diện của ứng dụng, các Form khác có thể chứa các công cụ để nhập dự liệu, xem xét
Trong nhiều ứng dụng của Visual Basic, kích cỡ và vị trí của biểu mẫu lúc thiết kế
là kích cỡ mà người dùng sẽ gặp vào lúc sử dụng Điều này, có nghĩa là Visual Basic cho phép ta thay đổi kích cỡ và di chuyển vị trí Form đén bất cứ nơi nàotrên màn hình khi chạy một đồ án, bằng cách thay đổi một số thuộc tính của nó trên cửa sổ thuộc tínhđối tượng (Properties Windows) Thực tế, một trong tính năng thiếu của Visual Basic
là khả năng tiến hành thay đổi động để đáp ứng sự kiện người dùng
Hộp liệt kê (List box)
Dùng tính chất Text để hiển thị thông tin đã được lưu trữ dưới dạng chuỗi
Tính chất List: một mảng chuỗi chứa mọi mục, dùng để khởi tạo các mục tronghộp liệt kê
Để chọn một mục trong hộp liệt kê ta nhắp chuột lên mục đó thông qua sự kiệnClick hay Double - Click
Để thêm một phần tử vào danh máy tính, có thể dùng hộp property của List box
hay dùng: object AddItem item, index
Khi xóa một phần tử trong danh máy tính cần biết giá trị index của phần tử đó
trong danh máy tính,có thể dùng: object Remove Item, index
Nếu xóa tất cả các phần tử trong danh máy tính thì dùng: object Clear
Scrollbar (Thanh cuốn):
Scrollbar là đối tượng cho phép nhận từ người dùng một giá trị tùy theo vị trí conchạy trên thanh cuốn thay cho các giá trị số
Thanh cuốn có các thuộc tính quan trọng sau:
Thuộc tính Min: xác định cận dưới của thanh cuốn;
Thuộc tính Max: xác định cận trên của thanh cuốn;
Thuộc tính Value: xác định giá trị tạm thời của thanh cuốn
Option Button (Nút chọn):
Trang 30Đối tượng nút chọn (thường được dùng nhiều nút) cho phép người dùng chon mộttrong những lựa chọn đưa ra Như vậy, tại một thời điểm chỉ có thể là một trongnhững nút chọn được chọn.
Checkbox (Hộp kiểm):
Cũng như nút chọn, đối tượng hộp kiểm được dùng nhiều hộp một lần Nhưng khácvới nút chọn, hộp kiểm cho phép người dùng lựa chọn một hay nhiều điều kiện.Như vậy tại một thời điểm có thể có nhiều hộp kiểm được chọn
Label (Nhãn):
Đối tượng nhãn cho phép người dùng gắn nhãn một bộ phận nào đó của giao diệntrong lúc thiết kế giao diện cho chương trình ứng dụng
Các nhãn dùng để hiển thị thông tin không muốn người dùng thay đổi Trong thực
tế, các nhãn thường được dùng để định danh một hộp văn bản hoặc một điều khiểnkhác bằng việc mô tả nội dung của điều khiển đó Một công cụ phổ biến cho việchiển thị thông tin trợ giúp
Picturebox, Image (hộp ảnh, điều khiển ảnh):
Đối tượng Image và Picturebox dùng để hiển thị ảnh Nó cho phép người thiết kếđưa ảnh từ các file ảnh (.bmp, gif ) lên Form
Tính chất Style: định dạng của hộp combo
Style= 0 (drop down combo ), bao gồm một text box và một danh máy tính
các chọn lựa thả sẵn xuống
Trang 31 Style = 1 (simple combo box), hiển thị dưới dạng một text box và một danh
máy tính nhưng không thả xuống
Các giá trị này có được bởi sự kiện Change
Style = 2 (drop down list ), một danh máy tính thả sẳn xuống.
Các mục trong hộp sẽ được sắp xếp theo thứ tự ASCII khi chọn tính chất
Sorted = True Nếu không chọn, giá trị mặc định của tính chất Sorted =False, danhmáy tính các mục tùy thuộc vào danh máy tính đã đặt trong hộp liệt kê
Dùng tính chất Text để hiển thị thông tin đã được lưu trữ dưới dạng chuỗi
Tính chất List: một mảng chuỗi chứa mọi mục, dùng để khởi tạo các mục tronghộp liệt kê
Để thêm một phần tử vào danh máy tính, có thể dùng hộp property của List box
hay dùng: object AddItem item, index
Nếu xóa tất cả các phần tử trong danh máy tính thì dùng: object Clear
Khi xóa một phần tử trong danh máy tính cần biết giá trị index của phần tử đó
trong danh máy tính,có thể dùng: object Remove Item, index
Các phương pháp này tương tự như các phương pháp dùng cho List box
Ole ( đối tượng nhúng ):
Ole là viết tắt của Object - Linking and Embedding Nó cho phép ta nhúng toàn
bộ ứng dụng và dữ liệu từ một ứng dụng khác vào chương trình Ole không chỉ là 1 hệthống cho phép nhúng hay kết nối dữ liệu từ 1 ứng dụng khác mà vào thời gian chạycủa chương trình ta sẽ có 1 bản sao của ứng dụng đó trong chương trình của ta Nó cókhả năng automation cho phép đóng gói các đối tượng chức năng của ứng dụng để cóthể sử dụng trong ứng dụng khác
Project explorer :
Project explorer trong Visual Basic 6.0 giúp quản lý và định hướng các đề án, biểumẫu, các module,… Visual Basic cho phép tổ chức nhiều đề án trong 1 nhóm gọi làproject groups Ta có thể lưu tập hợp các đề án trong Visual Basic thành 1 tập tinnhóm đề án Các tập tin này có phần mở rộng là Vbg
Trang 32 Propeties windows ( cửa sổ thuộc tính ):
Là nơi chứa danh máy tính các thuộc tính của một đối tượng cụ thể Các thuộc tínhnày có thể khác nhau với từng đối tượng cụ thể Ta có thể đặt các thuộc tính cho phùhợp với các chương trình ứng dụng
VbDataActionCancel 0 Hủy bỏ các sự kiện của Data control
VbDataActionMoveFirst 1 Di chuyển đến record đầu tiên
VbDataActionMovePrevious 2 Di chuyển đến record trước đó
VbDataActionMoveNext 3 Di chuyển đến record kế tiếp
VbDataActionMoveLast 4 Di chuyển đến record cuối
VbDataActionAddNew 5 Thêm record
VbDataActionUpdate 6 Thay đổi, định nghĩa record
VbDataActionDelete 7 Xóa một record
VbDataActionFind 8 Tìm kiếm một record
VbDataActionBookmark 9 Tạo Bookmark
VbDataActionClose 10 Đóng Data control
VbDataActionUnload 11 Đóng một Form
Datacontrol có hình dạng mô tả trên hình 1.5
Hình 1.5: Hình Data Control
1.4.3.5 Lập trình trong Visual Basic:
ở phần trên, chúng ta mới chỉ biết tuỳ biến biểu mẫu bằng cách bổ xung cácđiều khiển vào cho phù hợp với yêu cầu của chương trình Tuy nhiên, đó chỉ có thể coi
là bộ mặt của chương trình Muốn chương trình chạy được thì chúng ta phải thêm vàocác thành phần khác như lệnh, dữ liệu và cách thức thể hiện chúng trong chươngtrình
Khi lập trình trong Visual Basic thì phần lớn các mã được xử lý để đáp ứng sựkiện Ví dụ như sự kiện kích chuột, bàm phím, load form…Các dòng mã thi hànhtrong một chương trình Visual Basic phải nằm trong các thủ tục hoặc hàm, các dònglệnh nằm ngoài sẽ không làm việc Toàn bộ mã lệnh được gõ vào trong cửa sổ code
Trang 33 Cửa sổ code:
Cửa sổ code bao gồm các thành phần sau:
Thanh tách: cửa sổ code có một thanh tách (Split bar) nằm đầu thanh cuốn dọc Mục
đìch của nó là: khi các dòng mã trở nên nhiều, ta có thể chia cửa sổ code thành 2 phần
Hộp liệt kê Object: nằm ở đầu cửa sổ code bên trái, nó liệt kê tất cả các điều
khiển có trên biểu mẫu và thêm vào một đối tượng có tên là: General Khi thả hộp liệt
kê và nhập vào một đối tượng nào đó thì sẽ đưa ta đến phần mã viết cho đối tượng đó
Hộp Procedure: hộp này cung cấp mọi sự kiện mà đối tượng đã được lựa chọn trong
hộp liệt kê object
Intellisence:
Intellisence là một công cụ thông minh, nó giúp ta đỡ mất công gõ và tra cứu.Intellisence mở các hộp liệt kê cùng với các thông tin về đối tượng mà ta đang tiếpcận Nó có 3 phần:
- QuickInfo: cho ta thông tin về cú pháp của 1 lệnh Visual Basic Mỗi khi nhập một
từ khoá theo sau là một dấu cách hoặc dấu chấm .một hộp thoại sẽ hiện ra cungcấp cú pháp của thành phần đó
- List properties/Methods: tính năng này đưa ra một danh máy tính các tính chất vàphương pháp của đối tượng ngay khi ta gõ dấu chấm
- Available constant : tính năng này cung cấp một danh máy tính các hằng sẵn có
Biến:
Trong Visual Basic, tên biến có thể dài tối đa 255 ký tự Ký tự đầu tiên phải là mộtchữ cái và tên biến có thể là một tổ hợp chữ cái, chữ số và dấu gạch dưới Không đượcdùng các từ khoá trong Visual Basic ( như end, print .) làm tên biến Visual Basickhông phân biệt chữ hoa, chữ thường
Cách khai báo biến: Dim <Tên biến> as <Kiểu biến>
Phạm vi sử dụng biến phụ thuộc vào cách khai báo biến và vị trí đặt dòng lệnhkhai báo
Các kiểu dữ liệu:
- String: các biến string lưu giữ các ký tự Một chuỗi có thể có một hay nhiều ký tự.
- Integer: biến nguyên lưu giữ các giá trị số nguyên từ -32768 đến +32767.
Trang 34Long Integer: biến số nguyên dài lưu giữ các số nguyên giữa:
-2147483648 đến +214783647
- Single precision: các số có phần thập phân gồm: Single precision có độ chính xác
đến 7 chữ số và double precision có độ chính xác lớn đến 16 vị trí
- Currency: Biến tiền tệ là một kiểu mới Kiểu này cho ta 15 chữ số trước dấu thập
phân và 4 chữ số sau dấu thập phân
- Date: kiểu dữ liệu ngày tháng
- Byte: kiểu byte có thể lưu giữ các số nguyên từ 0 đến 255.
- Boolean: đây là kiểu logic vói các giá trị True/False.
- Variant: kiểu này được thiết kế để lưu mọi dữ liệu khác nhau của Visual Basic.
/ Chia, trả về kiểu số thực Y=4/2
- Các toán tử so sánh:
> So sánh xem số thứ nhất có lớn hơn số thứ 2 không
< So sánh xem số thứ nhất có nhỏ hơn số thứ 2 không
= So sánh số thứ nhất có bằng số thứ 2 không
<> So sánh số thứ nhất có khác số thứ 2 không
>= So sánh số thứ nhất có lớn hơn hay bằng số thứ 2 không
<= So sánh số thứ nhất có nhỏ hơn hay bằng số thứ 2 không
- Các toán tử Boolean:
And Chỉ nhận giá trị True nếu cả 2 số hạng đều là True
Or Chỉ nhận giá trị False nếu cả 2 số hạng đều là False
Not Phủ định giá trị của số hạng
Trang 35CHƯƠNG II PHÂN TÍCH HỆ THỐNG
2.1 Khảo sát quá trình kinh doanh của các cửa hàng kinh doanh máy tính
Hiện nay các cửa hàng kinh doanh máy tính quản lý quá trình kinh doanh máytính của mình một cách thủ công Nghĩa là làm từ khâu đầu vào đến đầu ra đều làmtheo giấy tờ, sổ máy tính kế toán Hiện tại, các Cửa hàng kinh doanh máy tính đều có
02 khâu quan trọng nhất đó là: Quá trình xuất, nhập hàng và quá trình thống kê, tìmkiếm (Nhà cung cấp, khách hàng, nhân viên, sản phẩm) Sau đây ta tìm hiểu kỹ cácquá trình trên được thực hiện như thế nào, có kồng kềnh hay không và mất nhiều thờigian giành cho nó hay không:
* Quá trình xuất, nhập hàng:
- Hàng tháng, Người quản lý họp và nghe bộ phận kế toán báo cáo tình hìnhkinh doanh các mặt hàng hiện nay Số lượng các mặt hàng có trong kho như: số lượngcủa mỗi loại, còn nhiều hay đã hết
- Trong quá trình này người quản lý cũng nhận được các thông tin của Nhânviên bán hàng thông qua các giao dịch viên như là: số lượng bán ra; số lượng kháchhàng quen, số lượng khách hàng mới
- Nếu mặt hàng hết thì người quản lý sẽ tìm mặt hàng đó thông qua hệ thốngnhà cung cấp đã quen hoặc sẽ tìm nhà cung cấp mới
- Quá trình nhập hàng được thông qua bộ phận kế toán Bộ phận này khi đượclệnh của Giám đốc họ sẽ phát đơn yêu cầu đặt hàng đến nhà cung cấp, khi xem xét đơnyêu cầu đặt hàng của các cửa hàng, nhà cung cấp sẽ xuất hóa đơn bán hàng Khi nhàcung cấp xuất hóa đơn bán hàng (xuất hàng) thì các cửa hàng sẽ nhập hóa đơn (nhậphàng) đó
- Quá trình xuất hàng cũng được thực hiện tương tự, cụ thể như sau:
+ Nhân viên bán hàng nhận đơn đặt hàng của khách hàng , sau đó thống kê lại
để chuyển qua bộ phận kế toán;
+ Bộ phận kế toán lập kế hoạch cho từng đơn hàng đó, sau đó lập kế hoạch xuấthàng
Trang 36+ Căn cứ theo kế hoạch xuất hàng, bộ phận kế toán chuẩn bị Phiếu cho đơn đặthàng đó (trên tờ hóa đơn có các thông số sau: tên mặt hàng, đơn giá, thành tiền, tổngtiền);
+ Sau khi viết hóa đơn, bộ phận kế toán chuyển cho nhân viên bán hàng vàđược chuyển tới khách hàng thông qua các giao dịch viên Quá trình này được làm thủcông
* Quá trình thống kê tìm kiếm:
Quá trình tìm kiếm cũng rất phức tạp, nó dựa trên các giấy tờ sổ máy tính Cácthông tin về tìm kiếm thường là các thông tin về nhà cung cấp, khách hàng, sản phẩm,Phiếu Cụ thể như sau:
- Tìm kiếm thông tin về nhà cung cấp: mỗi khi một mặt hàng nào hết hoặc là
đặt được đơn hàng của một khách hàng nào đó Nhân viên bán hàng báo cáo lên bộphận kế toán để chuẩn bị các mặt hàng mà khách hàng cần, bộ phận kế toán kiểm traxem lượng hàng trong kho còn hay là đã hết Nếu còn thì số lượng hàng đủ hay không,nếu thiếu thì mặt hàng đó được cung cấp bởi nhà cung cấp nào Bộ phận kế toán cũnglàm nhiệm vụ này, khi mà cần thì họ phải tìm tòi, lục lại các giấy tờ sổ máy tính liênquan đến nhà cung cấp mặt hàng đó Sau khi tìm xong bộ phận kế toán mới phát mộtđơn đặt hàng đến nhà cung cấp Kết thúc một quá trình tìm kiếm nhà cung cấp
- Tìm kiếm khách hàng: trong quá trình kinh doanh, mỗi một đơn vị, mỗi một
cá nhân khi mà hoạt động kinh doanh đều có một lượng khách hàng ổn định, họthường xuyên đặt hàng của đơn vị mình Quá trình kinh doanh đó gọi là chiến lượcchăm sóc khách hàng Thông thường mỗi tháng khách hàng sẽ phải nhập một lượngthuốc nhất định về cho đơn vị mình kinh doanh, việc lấy hàng định kỳ đó cần phải cómột đội ngũ giao dịch viên có dầy dặn kinh nghiệm để quản lý lượng khách hàng đó.Công việc này đòi hỏi mỗi tháng các giao dịch viên biết là lượng khách hàng trongtháng là bao nhiêu, tháng này có bao nhiêu khách hàng đến kỳ hạn mà cửa hàng phảicung cấp Quá trình này cũng phải được các giao dịch viên lên kế hoạch, tổng kết lạisau đó báo cáo lên nhân viên bán hàng, và nhân viên bán hàng tổng kết báo cáo lãnhđạo để cung cấp các mặt hàng cho các đơn vị khách hàng cũ Hiện nay các khâu nàyvẫn được làm thủ công, nghĩa là các giao dịch viên vẫn phải lên kế hoạch bằng sổ máytính, theo dõi hàng ngày qua sổ máy tính, mất rất nhiều thời gian