3.3.1 Mơ hình vật lý dữ liệu
Các bảng được thiết kế trong hệ thống
1) KHACHHANG ( lưu thơng tin vế khách hàng)
Field Field Name Type Width Diễn giải
1 MA_KH Text 6 Mã khách hàng
2 TEN_KH Text 30 Tên khách hàng
3 DCHI_KH Text 50 Địa chỉ khách hàng
4 PHONE_KH Text 12 Điện thoại khách hàng
5 FAX_KH Text 12 Số Fax khách hàng
TÊN : KHÁCH HÀNG
MƠ TẢ : Data store chứa những thơng tin về khách hàng
DẠNG : Bảng
= KHÁCH HÀNG + Mã khách hàng + Tên khách hàng
2) HDM_S ( lưu thơng tin chung về việc nhập sách)
Field Field Name Type Width Diễn giải
1 MA_HDMS Text 10 Mã hố đơn nhập sách
2 NGAY_M Date/Time 10 Ngày mua sách
3 MA_NV Text 5 Mã nhân viên
4 TTOAN Number 20 Tổng tiền thanh tốn
3) CTHDMS ( Lưu thơng tin chi tiết về việc nhập sách )
Field Field Name Type Width Diễn giải
1 MA_HDMS Text 10 Mã hố đơn nhập sách
2 MA_SA Text 5 Mã sách
3 TEN_SA Text 50 Tên sách
3 SLS_MUA Number 10 Số lượng sách nhập
4 DGIAS_MUA Number 10 Đơn giá sách nhập
TÊN : HỐ ĐƠN NHẬP SÁCH
MƠ TẢ : Data store chứa những thơng tin về hố nhập sách.
DẠNG : Bảng = HỐ ĐƠN NHẬP SÁCH + Mã hố đơn nhập sách + Ngày nhập + Mã nhân viên + Số tiền thanh tốn
TÊN : CHI TIẾT HỐ ĐƠN NHẬP SÁCH
MƠ TẢ : Data store chứa những thơng tin chi tiết về hố đơn nhập sách
DẠNG : Bảng
= CHI TIẾT HỐ ĐƠN NHẬP SÁCH + Mã hố đơn mua sách
4) HDB_S ( lưu thơng tin chung về hố đơn bán sách)
Field Field Name Type Width Diễn giải
1 MA_HDBS Text 4 Mã hố đơn bán lẻ sách
2 NGAY Date/Time 10 Ngày lập
3 MA_KH Text 6 Mã khách hàng
4 MA_NV Text 5 Mã nhân viên
5 TONG_TG Number 10 Tổng giá trị
5) CTHDBS ( lưu thơng tin chi tiết của hố đơn bán sách cho khách hàng ở
TÊN : HỐ ĐƠN BÁN SÁCH
MƠ TẢ : Data store bao gồm các thơng tin chung về việc bán sách
DẠNG : Bảng
= HỐ ĐƠN BÁN SÁCH + Mã hố đơn bán sách + Ngày lập hố đơn + Mã khách hàng
+ Mã nhân viên lập hố đơn + Tổng tiền
1 MA_HDBS Text 4 Mã hố đơn bán lẻ sách
2 MA_SA Text 5 Mã sách
3 TEN_SA Text 50 Tên sách
4 SLS_B Number 10 Số lượng sách bán lẻ
5 DGIAS_B Number 10 Đơn gái sách bán lẻ
6) NHANVIEN ( lưu thơng tin nhân viên làm việc trong nhà sách )
Field Field Name Type Width Diễn giải
1 MA_NV Text 5 Mã nhân viên
2 TEN_NV Text 50 Tên nhân viên
3 PHAI Text 5 Giới tính
4 NGAYS_NV Date/Time 10 Ngày sinh
5 DTHOAI_NV Text 10 Điện thoại
6 DCHI_NV Text 50 Địa chỉ
TÊN : CHI TIẾT HỐ ĐƠN BÁN SÁCH
MƠ TẢ : Data store bao gồm các thơng tin chi tiết về hố đơn bán sách
DẠNG : Bảng
= CHI TIẾT HỐ ĐƠN BÁN SÁCH + Mã hố đơn bán sách
+ Mã sách. + Tên sách bán + Số lượng sách bán + Đơn giá sách bản
TÊN : NHÂN VIÊN
MƠ TẢ : Data store chứa những thơng tin viề nhân viên
DẠNG : Bảng
= NHÂN VIÊN + Mã nhân viên + Họ tên nhân viên + Giới tính
7) NHAXB.MDB ( lưu thơng tin về nhà xuất bản )
Field Field Name Type Width Diễn giải
1 MA_NXB Text 2 Mã nhà xuất bản
2 TEN_NXB Text 50 Tên nhà xuất bản
8) SACH ( lưu thơng tin từng cuốn sách bán )
Field Field Name Type Width Diễn giải
1 MA_SA Text 5 Mã sách
2 TEN_SA Text 100 Tên sách
3 TEN_TG Text 50 Tên tác giả
4 LAN_XB Number 10 Lần xuất bản
5 TAP_SO Number 10 Tập số
6 NAM_XB Text 4 Năm xuất bản
7 MA_NXB Text 2 Mã nhà xuất bản
8 SLS Number 10 Số lượng sách
9 GIAMUA Number 10 Giá mua sách
10 PhanTramBL Number 10 Phần trăm bán lẻ
TÊM : NHÀ XUẤT BẢN
MƠ TẢ : Data store chứa những thơng tin về nhà xuất bản
DẠNG : Bảng
= NHÀ XUẤT BẢN + Mã nhà xuất bản + Tên nhà xuất bản
TÊN : SÁCH
MƠ TẢ : Data store chứa những thơng tin chi tiết về sách
DẠNG : Bảng = SÁCH BÁN + Mã sách + Tên sách + Tên tác giả + Lần xuất bản
3.3.2 Mơ hình thực thể liên kết
1)
Xét hai thực thể SACH và NHAXB ta thấy rằng một cuốn sách chỉ thuộc một nhà xuất bản, một nhà xuất bản thì cĩ thể cung cấp nhiều cuốn sách. đây là mối quan hệ Một - Nhiều
2)
Một nhân viên cĩ thể lập nhiều hố đơn nhập sách. Nhưng một hố đơn nhập sách chỉ cĩ thể do một nhân viên lập đây là mối quan hệ Một - Nhiều
3)
NHAXB SACH
NHANVIEN HDM_S
Một nhân viên cĩ thể lập nhiều hố đơn bán sách. Nhưng một hố đơn bán sách chỉ cĩ thể do một nhân viên lập. Đây là mối quan hệ Một - Nhiều.
4)
Một cuốn sách cĩ thể được mua trong hố đơn mua sách một lần và một hố đơn mua sách cĩ thể mua được nhiều cuốn sách khác nhau. Mối quan hệ ở đây là Một - Nhiều.
5)
Một cuốn sách cĩ thể được bán đi một lần trong một hố đơn và một hố đơn bán sách cĩ thể bán nhiều cuốn sách khác nhau. Mối quan hệ ở đây là Một - Nhiều.
6)
Một khách hàng cĩ thể đến mua nhiều lần vì vậy cĩ nhiều hố đơn bán
HDM_S SACH
HDB_S SACH
3.3.3 Mơ hình tổ chức dữ liệu
3.3.3.1 Xác định các thực thể và thuộc tính
Thực thể : KHACHHANG
Các khách hàng cĩ quan hệ trao đổi với nhà sách
• Xác định thuộc tính cho thực thể:
- Mã khách hàng ( MA_KH ) : Đây là thuộc tính khố chính dùng để phân biệt giữa các khách hàng với nhau.
- Tên khách hàng ( TEN_KH ) - Địa chỉ khách hàng ( DCHI_KH ) - Điện thoại khách hàng ( PHONE_KH ) - Số Fax khach hàng ( FAX_KH )
- Dạng khách hàng ( DANG_KH ) Thực thể : HDM_S
Đây là thực thể trong đĩ bao gồm các thơng tin chung về việc nhập sách.
• Xác định thuộc tính cho thực thể:
- Mã hố đơn nhập sách ( MA_HDMS ) : Đây là thuộc tính khố chính dùng để phân biệt các hĩa đơn với nhau.
- Ngày mua ( NGAY_M ) : Cho biết ngày nhập sách
- Mã nhân viên ( MA_NV ) : Cho biết hố đơn nhập sách này do nhân viên nào lập.
- Thanh tốn ( TTOAN ) : Cho biết tổng sơ tiền thanh tốn của hố đơn này.
Đây là thực thể trong đĩ bao gồm các thơng tin chi tiết về việc nhập sách.
• Xác định thuộc tính cho thực thể:
- Mã hố đơn nhập sách ( MA_HDMS ) : Đây là thuộc tính khố dùng để phân biệt các hố đơn nhập sách với nhau.
- Mã sách ( MA_SA ) : Thuộc tính này kết hợp với thuộc tính MA_HDMS tạo thành khố chnhs của thực thể CTHDMS
- Tên sách ( TEN_SA ) : cho biết tên sách nhập vào - Số lượng sách nhập ( SLS_MUA )
- Đơn giá nhập ( DGIA_MUA ) : Cho biết đơn giá nhập của từng loại sách
Thực thể : HDB_S
Đây là thực thể trong đĩ bao gồm các thơng tin chung về hố đơn bán sách.
• Xác định thuộc tính cho thực thể:
- Mã hố đơn bán sách ( MA_HDBS ) : Đây là thuộc tính khố chính dùng để phân biệt các hố đơn bán sách với nhau.
- Ngày lập ( NGAY ) : Cho biết ngày lập hố đơn bán sách
- Mã khách hàng ( MA_KH ) : Cho biết mã khách hàng mua sách - Mã nhân viên ( MA_NV ) : Cho biết hố đơn bán sách này do
nhân viên nào lập.
- Tổng trị giá ( TONG_TG ) : Cho biết tổng trị giá của hố đơn bán sách đang lập
Đây là thực thể trung gian ghi lại chi tiết của hố đơn bán sách cho khách hàng ở quầy.
• Xác định thuộc tính cho thực thể:
- Mã hố đơn bán sách ( MA_HDBS ) : Đây là thuộc tính khố để phân biệt hố đơn bán sách này với hố đơn bán sách khác trong thực thể HDB_S.
- Mã sách ( MA_SA ) : Thuộc tính này kết hợp với thuộc tính MA_HDBS tạo thành khố chính của thực thể CTHDBS.
- Tên sách ( TEN_SA )
- Số lượng sách bán ( SLS_B ) : Lưu số lượng mỗi loại sách được bán trong hố đơn bán.
- Đơn giá sách bán ( DGIAS_B ) : Lưu lại giá bán sách của cuốn sách tại thời điểm hố đơn được lập.
Thực thể : NHANVIEN
Thực thể này chứa các thơng tin về nhân viên làm việc trong nhà sách
• Xác định thuộc tính cho thực thể:
- Mã nhân viên ( MA_NV ) : Đây là khố chính dùng để phân biệt nhân viên này với nhân viên khác.
- Họ tên nhân viên ( TEN_NV ) : Cho biết tên của nhân viên đĩ. - Phái ( PHAI ) : Cho biết giới tính của nhân viên đĩ
- Ngày sinh ( NGAYS_NV ) : Cho biết ngày sinh của nhân viên. - Điện thoại của nhân viên ( DTHOAI_NV ) : Cho biết số điện
thoại của nhân viên.
Thực thể : NHAXB
Thực thể này chứa các thơng tin về nhà xuất bản
• Xác định thuộc tính cho thực thể:
- Mã nhà xuất bản ( MA_NXB ) : Đây là thuộc tính khố chính dùng để phân biệt nhà xuất bản này với nhà xuất bản khác.
- Tên nhà xuất bản ( TEN_NXB ) : Mơ tả tên nhà xuất bản Thực thể : SACH
Đây là thực thể bao gồm tất cả các thơng tin về từng cuốn sách.
• Xác định thuộc tính cho thực thể :
- Mã sách ( MA_SA ) : Đây là thuộc tính khố chính, nhờ thuộc tính này ta phân biệt được từng cuốn sách với nhau.
- Tên sách ( TEN_SA ) : Mơ tả tên sách - Tên tác giả ( TEN_TG ) : Mơ tả tên tác giả - Lần xuất bản ( LAN_XB )
- Năm xuất bản ( NAM_XB ) - Tập số ( TAP_SO )
- Mã nhà xuất bản ( MA_NXB ) : Phân biệt nhà xuất bản này với nhà xuất bản khác.
- Số lượng sách ( SLS ) : Cho biết số lượng sách cịn lại trong quầy.
KHACHHANG : ( MA _KH ) (TEN_KH, DCHI_KH, PHONE_KH, FAX_KH )
HDMS : ( MA_HDMS ) ( NGAY_M, MA_NV, TTOAN ) CTHDMS : ( MA_HDMS, MA_SA ) ( SLS_MUA, DGIAS_MUA ) HDB_S : ( MA_HDBS ) ( NGAY, MA_NV, TONG_TG ) CTHDBS : ( MA_HDBS, MA_SA ) ( SLS_B, DGIAS_B ) NHANVIEN : ( MA_NV ) ( TEN_NV, PHAI, NGAYS_NV, DTTHOAI_NV, DCHI_NV) NHAXB : ( MA_NXB ) ( TEN_NXB )
SACH : ( MA_SA ) ( TEN_SA, TEN_TG, LAN_XB, NAM_XB, TAP_SO, MA_NXB, SLS, GIAMUA, PHANTRAMBL, PHANTRAMBB )
• KHACHHANG :
- MA_KH : Khơng được cĩ dữ liệu trống và trùng đối với thuộc
tính TEN_KH
- TEN_KH : Khơng cĩ dữ liệu rỗng
- DCHI_KH : Khơng cĩ dữ liệu rỗng
• HDMS :
- MA_HDMS : Khơng được rỗng và trùng
- NGAY_M : Khơng rỗng
- MA_NV : Khơng được rỗng và phải cĩ trong quan hệ NHANVIEN
- TTOAN ≥ 0
• CTHDMS :
- MA_HDMS : Khơng được rỗng và phải cĩ trong quan hệ HDMS
GIAODICHSACH
- SLS_MUA > 0 Và khơng được rỗng - DGIAS_MUA > 0 Và khơng được rỗng
• HDB_S :
- MA_HDBS : Khơng được rỗng và khơng được trùng
- NGAY : Khơng được rỗng
- MA_KH : Khơng được rỗng
- MA_NV : Khơng được rỗng và phải cĩ trong quan hệ NHANVIEN
- TONG_TG > 0
• CTHDBS :
- MA_HDBS : phải cĩ trong quan hệ HDBS
- MA_SA : phải cĩ trong quan hệ SACH
- 0 < SLS_B ≤ SLS ở quan hệ SACH - DGIAS_B : Dữ liệu khơng được rỗng
• NHANVIEN :
- MA_NV : Khơng cĩ dữ liệu rỗng và trùng đối với thuộc tính TEN_NV
- PHAI : Khơng được rỗng
- Thuộc tính NGAY_NV phải cĩ
YEAR( Ngaysinh ) ≥ YEAR( Date() ) – 18 và khơng được rỗng
- DCHI_NV : Khơng được rỗng
• NHAXB :
- MA_SA, TEN_SA : Khơng được rỗng và khơng được trùng
- TEN_TG : Khơng được rỗng
- NAM_XB : Khơng được rỗng
- LAN_XB > 0 và khơng được rỗng - TAP_SO > 0 và khơng được rỗng
- MA_NXB : Khơng được rỗng và phải cĩ trong quan hệ NHAXB
- GIAMUA > 0 Khơng được rỗng
- PHANTRAMBL > 0 và khơng được rỗng - PHANTRAMBB > 0 và khơng được rỗng
Chương 4 - THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG
TRÌNH
4.1 GIỚI THIỆU VỀ NGƠN NGỮ LẬP TRÌNH VISUAL BASIC4.1.1 Giới thiệu ngơn ngữ Visual basic 6.0 ( VB ) 4.1.1 Giới thiệu ngơn ngữ Visual basic 6.0 ( VB )
Microsoft Visual Basic 6.0 tuy khơng cịn là hiện thân mới nhất và độc đáo của ngơn ngữ Basic như những năm trước đây nhưng nĩ vẫn cịn tính năng ưu việt. Microsoft Visua Basic 6.0 cĩ nhiều cơng cụ hỗ trợ mà bạn cĩ thể biết thêm và biên dịch các file trợ giúp. Nĩ bao gơm:
Các cơng cụ điều khiển ( Controls ):
Bao gồm các cơng cụ trên cửa sổ toolbox, những cái mà bạn cĩ thể đặt vào biểu mẫu để tương tác với người dùng và điều khiển luồng chương trình
Là tập hợp các câu lệnh để cho máy tính cĩ thể thực hiện các cơng việc nào đĩ theo ý muốn của người lập trình. Bản thân Microsoft Visual Basic là trình ứng dụng, bạn tải và thực hiện hệ thống giống như thực hiện các chương trình ứng dụng khác. Nĩ cung cấp các Form windows là vùng làm việc, nĩ duy trì các đối tượng tương tác của chương trình như các nút lệnh, các nhãn, các hợp thoại văn bản, các thanh cuộn và các cơng cụ điều khiển khác.
Đề án ( Project ) : là tập hợp các file bạn tạo cho chương trình ứng dụng
Windows của mình.
Winzard : Đây là các hộp thoại hỏi và trả lời tự động làm việc.
Trình biên dịch ( Compiler ) : là hệ thống chuyển đổi chương trình bạn viết
thành trình ứng dụng khả thi của máy tính.
Developer Studio : Là mơi trường phát triển của Visual Basic. Mặc dù
Microsoft Visual Basic là ngơn ngữ lập trình tồn diện, nhưng nĩ vẫn duy trì ngơn ngữ Basic kế thừa nĩ. Các lập trình viên vào cuối thập niên 1950 đã phát triển ngơn ngữ lập trình Basic cho các lập trình viên sơ cấp. Basic dễ sử dụng hơn các ngơn ngữ lập trình khác như Cobol, Fortran. Microsoft khơng bao giờ quên nền tảng của VB khi phát triển nĩ. Nĩ giúp cho người lập trình cĩ được nhiều chương trình Windows chỉ trong thời gian ngắn.
Microsoft Visual Basic 6.0 cĩ nhiều ấn bản khác nhau bao gồm: Standard, Profectional và Enterprise. ấn bản Enterpise cung cấp cho các lập trình viên phân mềm client / server với các cơng cụ mở rộng cho các máy tính ở xa và phân phối các trình ứng dụng. Microsoft tăng cường tính năng làm việc trên mạng, mơi trường phân phố cho những người dùng phiên bản Enterprie.
office và trình duyệt Web Internet Explorer. Visua Basic 6.0 cho phép ta lập trình để thêm điều khiển vào dự án tự động và cĩ thể tạo ra các ActiveX hiệu chỉnh. Ta cĩ thể viết các ứng dụng phía máy chủ ( Server-side ) dùng HTML động nhúng kết hợp với các thư viện liên kết động của Internet Information Server. Một vài ứng dụng với các cải tiến giúp cho truy cập dữ liệu ở tầm cỡ vi mơ liên quan đến hàng trăm, hàng nghìn người sử dụng qua mạng hay Internet.
4.1.2 Làm việc với Microsoft Visual Basic 6.0
Visual Basic cung cấp các đối tượng dữ liệu Activex ( Activex Data Object - ADO ). Trong các phiên bản trước của VB, truy cập dữ liệu được thực hiện thơng qua DAO (Đối tượng truy cập dữ liệu Data Access Object ) và RDO (Đối tượng dữ liệu từ xa – Remote Data Object ). ADO tổng hợp và thay thế các kỹ thuật này. ADO dễ dùng hơn và cĩ tầm hoạt động rộng hơn. Ta cĩ thể dùng ADO để kết nối với cơ sở dữ liệu của một máy để bàn hoặc một máy chủ chứa cơ sở dữ liệu ở xa. Hơn thế nữa ADO cịn cho phép truy cập nhiều kiểu dữ liệu, ví dụ thư điện tử.
Kỹ thuật ADO hiện nay chứa trong điều khiển mới, điều khiển kiểu dữ liệu ADO. Nĩ trơng giống như các điều khiển dữ liệu trong các phiên bản trước, nhưng phần thuộc tính của điều khiển, ta sẽ thấy cĩ nhiều điểm khác. Nĩ cho phép kết nối với cơ sở dữ liệu với máy đề bàn hay cơ sở dữ liệu máy chủ ODBC trên mạng, hoặc ta cĩ thể tạo kết nối đến các cơ sở dữ liệu khác.
Ngồi ra ADO Visual Basic 6.0 cịn cĩ bộ cơng cụ kỹ thuật mới giúp truy cập dữ liệu dễ dàng hơn. Trình thiết kế mơi trường dữ liệu cho phép xem xét và thao tác dữ liệu trong cơ sở dữ liệu khác nhau, bởi vì bản thân mơi trường dữ liệu là