Bài báo cáo nhập môn cơ sở dữ liệu đề tài quản lý bán hàng siêu thị CO.OP MART
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT KHOA TIN HỌC QUẢN LÝ
LỚP K10406
BÀI BÁO CÁO NHẬP MÔN CƠ SỞ DỮ LIỆU:
ĐỀ TÀI:
QUẢN LÝ BÁN HÀNG SIÊU THỊ CO.OP MART
Sinh viên thực hiện:
1 Nguyễn Hồng Hương K104060964
2 Nguyễn Thị Kim Ngọc K104060982
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 4
CHƯƠNG I: GIỚI THIỆU CHUNG VỀ SAIGON CO.OP, SIÊU THỊ CO.OP XA LỘ HÀ NỘI VÀ ĐẶT VẤN ĐỀ VỀ BÀI TOÁN XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ HỆ CHƯƠNG TRÌNH QUẢN LÝ HOẠT ĐỘNG NHẬP VÀ BÁN HÀNG CỦA SIÊU THỊ CO.OP MART XA LỘ HÀ NỘI 5
1 Khái quát chung về Saigon Co.op và siêu thị Co.op Mart Xa Lộ Hà Nội, Quận 9, Thành Phố Hồ Chí Minh 5
1.1 Saigon Co.op 5
1.1.1 Lịch sử hình thành 5
1.1.2 Thành tích 5
1.2 Siêu thị Co.op Mart Xa Lộ Hà Nội, Quận 9, Thành Phố Hồ Chí Minh 6
2 Vấn đề về bài toán xây dựng cơ sở dữ liệu và hệ chương trình quản lý hoạt động nhập và bán hàng của siêu thị Co.op Mart 6
2.1 Đặt vấn đề: 6
2.2 Tìm hiểu cơ cấu tổ chức: 7
2.3 Xác định lĩnh vực ưu tiên 9
2.4 Tìm hiểu quy trình nhập và bán hàng: 10
2.4.1 Hoạt động nhập hàng 11
2.4.2 Lưu kho và kiểm kê 11
2.4.3 Hoạt động bán hàng 11
2.5 Xác định các yêu cầu: 11
2.5.1 Yêu cầu lưu trữ 12
2.5.2 Yêu cầu xử lý 13
2.5.2.1 Hoạt động nhập hàng 13
2.5.2.2 Hoạt động xử lý kho 14
2.5.2.3 Hoạt động bán hàng 14
CHƯƠNG II: XÂY DỰNG CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG 18
1 Các bảng trong cơ sở dữ liệu: 18
1.1 Các lược đồ quan hệ 18
Trang 41.2 Mô tả chi tiết từng thuộc tính và dữ liệu mỗi bảng 20
1.2.1 Bảng NCC: 20
1.2.2 Bảng PhieuNhap 20
1.2.3 Bảng ChiTietPN 21
1.2.4 Bảng HH 22
1.2.5 Bảng LoaiHang 22
1.2.6 Bảng PhieuXuatKho 23
1.2.7 Bảng ChiTietPhieuXuatKho 24
1.2.8 Bảng HoaDonBan 24
1.2.9 Bảng ChiTietHoaDonBan 25
1.2.10 Bảng KhachHang 25
1.2.11 Bảng ChiTietThanhToan 26
1.2.12 Bảng HTThanhToan 27
2 Biểu đồ thực thể và mối kết hợp – ERD và Thiết kế luận lý: 27
2.1 Biểu đồ thực thể và mối kết hợp: 27
2.2 Thiết kế luận lý 28
3 Các điều kiện ràng buộc toàn vẹn, bảng tầm ảnh hưởng và hàm trigger: 29
3.1 Ràng buộc trên một quan hệ 29
3.1.1 Ràng buộc miền giá trị: 29
3.1.2 Ràng buộc liên thuộc tính 34
3.2 Ràng buộc trên nhiều quan hệ: 35
3.3 HàmTrigger 37
3.3.1 Bảng NCC 37
3.3.2 Bảng PhieuNhap 39
3.3.3 Bảng ChiTietThanhToan 40
3.3.4 Bảng ChiTietPN 43
3.3.5 Bảng HH 45
3.3.6 Bảng ChiTietPhieuXuatKho 47
3.3.7 Bảng PhieuXuatKho 51
3.3.8 Bảng HoaDonBan 52
Trang 53.3.9 Bảng ChiTietHoaDonBan 53
3.3.10 Bảng KhachHang 56
3.4 Một số hàm chức năng khác: 57
CHƯƠNG III: TRUY VẤN DỮ LIỆU BẰNG SQL 59
CHƯƠNG IV: THIẾT KẾ GIAO DIỆN 87
CHƯƠNG V: ĐÁNH GIÁ LƯỢC ĐỒ CƠ SỞ DỮ LIỆU 105
1 Lược đồ quan hệ NCC 105
2 Lược đồ quan hệ PhieuNhap 105
3 Lược đồ quan hệ ChiTietThanhToan 105
4 Lược đồ quan hệ HTThanhToan 106
5 Lược đồ quan hệ ChiTietPN 106
6 Lược đồ quan hệ HH 106
7 Lược đồ quan hệ ChiTietPhieuXuatKho 107
8 Lược đồ quan hệ PhieuXuatKho 107
9 Lược đồ quan hệ ChiTietHoaDonBan 108
10 Lược đồ quan hệ HoaDonBan 108
11 Lược đồ quan hệ KhachHang 108
12 Lược đồ quan hệ LoaiHang 109
CHƯƠNG VI: KẾT LUẬN 110
Trang 6LỜI MỞ ĐẦU
Cùng với sự phát triển của nền kinh tế đất nước, các nguồn vốn đầu tư nước ngoài vào ViệtNam làm cho các Doanh nghiệp phải năng động và sáng tạo để nắm bắt các cơ hội kinh doanh,học hỏi kinh nghiệm quản lý từ các đối tác nước ngoài Saigon Co.op đã khởi đầu bằng việc liêndoanh liên kết với các công ty nước ngoài để gia tăng thêm nguồn lực cho hướng phát triển củamình Là một thành viên của Saigon Co.op và là một hệ thống siêu thị bán lẻ lớn trong cả nước,Co.op Mart ngày càng có sự phát triển lớn mạnh.Chỉ tính riêng một siêu thị, chứ không nói đến cả
hệ thống Co.op Mart thì hằng ngày đã có rất nhiều các hoạt động xảy ra, rất nhiều các hóa đơn bánhàng được lập.Số lượng dữ liệu như vậy nếu không có cách quản lý khoa học sẽ trở thành một trởngại cho mọi hoạt động quản lý Xây dựng cách quản lý khoa học cho tập hợp tất cả các dữ liệuphát sinh từng ngày ở siêu thị cũng là để góp phần tích cực cho việc thu thập, xử lý và khai thácthông tin một cách hiệu quả hơn, nhằm hỗ trợ tốt hơn cho quá trình quản lý, hoạch định và raquyết định của ban lãnh đạo siêu thị
Với sự phát triển ngày càng mạnh mẽ của khoa học kĩ thuật, và công nghệ, việc lưu trữ, xử
lý và khai thác thông tin từ lượng dữ liệu khổng lồ như vậy đã được sự hỗ trợ đắc lực từ các hệthống máy tính với việc xây dựng cơ sở dữ liệu hợp lý đáp ứng nhu cầu quản lý dữ liệu một cáchkhoa học và khắc phục những khuyết điểm của cách xử lý dữ liệu truyền thống Do đó, xây dựngđược một cơ sở dữ liệu tốt là chiếm vị trí quan trọng trong hệ thống quản lý dựa trên công nghệthông tin Mô hình cơ sở dữ liệu tốt là phải mang tính hợp lý, chặt chẽ và đáp ứng được các yêucầu đặt ra của doanh nghiệp Từ thực tế các hoạt động diễn ra hằng ngày ở một trong số các hệthống siêu thị lớn của cả nước – Co.op Mart, nhóm hướng đến đề xuất một cơ sở dữ liệu cho hệthống siêu thị bán lẻ này Tuy nhiên, trong phạm vi thời gian, và khả năng nhóm chỉ thực hiện hệchương trình quản lý bán hàng cho một siêu thị dựa trên khảo sát siêu thị CoopMart Xa Lộ HàNội, quận 9, Thành Phố Hồ Chí Minh
Trang 7CHƯƠNG I: GIỚI THIỆU CHUNG VỀ SAIGON CO.OP, SIÊU THỊ CO.OP XA LỘ HÀNỘI VÀ ĐẶT VẤN ĐỀ VỀ BÀI TOÁN XÂY DỰNG CƠ SỞ DỮ LIỆU VÀ HỆ CHƯƠNG TRÌNH QUẢN LÝ HOẠT ĐỘNG NHẬP VÀ BÁN HÀNG CỦA SIÊU THỊ CO.OP MART
Ngày 15/5/1989, ủy Ban Nhân Dân Thành Phố ra quyết định 258 thành lập Liên Hiệp HợpTác Xã Thương Mại Thành Phố từ sự giải thể hoạt động của ban quản lý Hợp Tác Xã Mua BánThành Phố
Sau đó, chỉ trong thời gian ngắn, Liên Hiệp Hợp Tác Xã Mua Bán Thành Phố Hồ Chí Minhtrở thành đơn vị đầu tiên được bộ thương mại cấp giấy phép kinh doanh xuất nhập khẩu trực tiếpvới tên giao dịch là Saigon Union of Trading Co – Operative gọi tắt là Saigon Co.op
Đến ngày 16/12/1998, đại hội chuyển đổi Liên Hiệp Hợp Tác Xã Mua Bán Thành Phố HồChí Minh thành Liên Hiệp Hợp Tác Xã Thương Mại Thành Phố Hồ Chí Minh với 20 hợp tác xãthành viên (nay là 21) hoạt động theo Luật Hợp Tác Xã được ban hành năm 1997
1.1.2 Thành tích
Trong suốt chặng đường hoạt động của mình, Saigon Co.op là một trong những đơn vị hoạtđộng có hiệu quả và đạt được nhiều thành tích đáng ghi nhận trong hoạt động kinh doanh.Đượcvinh danh trong top 200 doanh nghiệp hàng đầu Việt Nam năm 2007, và là một trong top 500 nhàbán lẻ hàng đầu Châu Á là một vinh dự to lớn cho toàn thể cán bộ và nhân viên hệ thống Saigon
Trang 8Co.op Cũng trong năm này, Saigon Co.op nhận giải vàng chất lượng Châu Âu do tổ chức ness Initiative Direction trao tặng Saigon Co.op cũng nhiều năm liền được bình chọn là thươnghiệu được yêu thích nhất của báo Sài Gòn Giải Phóng tổ chức
Busi-1.2 Siêu thị Co.op Mart Xa Lộ Hà Nội, Quận 9, Thành Phố Hồ Chí Minh
Hệ thống Co.opMart là chuỗi siêu thị bán lẻ trực thuộc Saigon Co.op, bao gồm 40 siêu thịtại TP.HCM và các tỉnh miền Nam và Nam Trung Bộ Siêu thị Co.op Mart Xa Lộ Hà Nội là mộttrong số các siêu thị trực thuộc hệ thống siêu thị của Saigon Co.op
Siêu thị Co.opMart được đánh giá là thân thiện, gần gũi với khách hàng, mang đến chokhách hàng sự tiện lợi và nhiều dịch vụ tăng thêm Với phương châm “Hàng hóa chất lượng, giá
cả phải chăng, phục vụ ân cần”, Co.opMart Xa Lộ Hà Nội cũng như các siêu thị Co.op Mart khác
đã được ngày càng nhiều khách hàng chọn lựa để đến mua sắm và thư giãn cùng gia đình mỗingày Thực phẩm tươi sống tươi ngon, thực phẩm công nghệ đa dạng, đồ dùng phong phú vớinhiều mẫu mã mới, hàng may mặc thời trang, chất lượng, giá phải chăng, cùng với dịch vụ kháchhàng phong phú, tiện lợi và sự thân thiện của nhân viên Co.opMart là lý do Co.opMart trở thành
“Nơi mua sắm đáng tin cậy, bạn của mọi nhà”
2 Vấn đề về bài toán xây dựng cơ sở dữ liệu và hệ chương trình quản lý hoạt động nhập và bán hàng của siêu thị Co.op Mart
2.1 Đặt vấn đề:
Tuy ngành bán lẻ không đòi hỏi một công nghệ cao cấp nào, nhưng vẫn phải tuân thủ các chỉtiêu về quản lý chất lượng, hệ thống kho bãi, hệ thống tính tiền, hệ thống quản lý thông tin kháchhàng, hệ thống bán hàng tốt sẽ mang đến nhiều lợi thế cạnh tranh hơn cho siêu thị trong bối cảnhtình hình kinh tế có nhiều biến động và sứcép từ các đối thủ cạnh tranh
Với tư cách là một siêu thị bán lẻ, các hoạt động chính của Co.op bao gồm hoạt động nhậphàng và bán hàng Không xét đến công tác tài chính kế toán, nhân sự, và các hoạt động phụ trợkhác, chỉ xét trên hai hoạt động cơ bản của một nhà bán lẻ là nhập và bán hàng thì nhập hàng làmột khâu quan trọng đảm bảo cho hoạt động bán hàng diễn ra xuyên suốt, trong khi đó bán hàngchính là hoạt động mang lại lợi nhuận trực tiếp cho doanh nghiệp Vì là hoạt động cơ bản cho nênhàng ngày có rất nhiều các dữ liệu phát sinh từ hai hoạt động này cần được lưu trữ, quản lý một
Trang 9cách hợp lý.Phương thức quản lý thủ công là không khả thi trong trường hợp này bởi mỗi ngày chỉtính riêng hoạt động bán hàng đã có rất nhiềuhóa đơn được lập với hơn 2000 mặt hàng cần quảnlý.Không những thế, trong hoạt động bán hàng hiện đại hướng đến kháchhàng nhiều hơn, cần cóchính sách tốt hơn để khai thác khách hàng tiềm năng và giữ chân khách hàng thân thiết Và dođósiêu thị cần có cách quản lý và khai thác tốt hơn những thông tin truy xuất từ dữ liệu kháchhàng của mình, để có những chính sách chăm sóc khách hàng tốt nhất Cùng với đó, Co.op Martluôn quan tâm đến đối tượng nhà cung cấp, những đơn vị trực tiếp cung hàng cho siêu thị.Co.opMart ưu tiên chọn những nhà cung cấp những sản phẩm đạt chứng chỉ ISO 9000 hoặc một hệthống quản lý chất lượng tương đương Hiện có gần 1000 nhà cung cấp, trong đó có trên 60% nhàcung cấp hợp tác lâu năm như Vissan, Vinamilk, Tường An, Unilever, P&G, Ngoài ra siêu thị còn
có sự hợp tác vớingư dân, nông dân để mang đến cho khách hàng những thực phẩm, nông sản tươiđảm bảo tính an toàn vệ sinh Như vậy những dữ liệu cần quản lý trong hoạt động nhập và bánhàng của siêu thị là vô cùng lớn Nó bao gồm không chỉ là hàng hóa khách hàng, nhà cung cấp màcòn cả các chứng từ, hóa đơn như hóa đơn bán hàng, phiếu nhập, phiếu xuất…Độlớn và phức tạpcủa dữ liệu sẽ tăng cùng với sự tăng lên củathời gian hoạtđộng và việc mở rộng quy mô trong siêuthị Nó gây ra nhiều khó khăn trong quản lýcũng như tốc độ xử lý sẽ không đạt được nhưýmuốn.Tính quy mô của dữ liệu cần quản lý đòi hỏi phải xây dựng một hệ chương trình quản lýdựa trên một cơ sở dữ liệu được xây dựng hợp lý và đáp ứng được nhu cầu lưu trữ, xử lý và truyxuất dữ liệu và cung cấp thông tin
Để tiến hành xây dựng cơ sở dữ liệu và thiết kế hệ chương trình quản lý hoạt động nhập vàbán hàng của siêu thị, điều cần quan tâm trước hết là các nghiệp vụ cần quản lý và các nghiệp vụ
ấy diễn ra như thế nào trong hoạt động thực tế của siêu thị
2.2 Tìm hiểu cơ cấu tổ chức:
Siêu thị Co.op Mart hoạt động trên nền tảng cơ cấu tổ chức có sự phân bậc quản lý như sơ đồbên dưới
Trang 10Sơ đồ cơ cấu tổ chức siêu thị Co.op Mart
Ban giám đốc gồm một Giám Đốc và hai phó Giám Đốc có nhiệm vụ điều phối toàn bộ hoạt
động của siêu thị Ban giám đốc phải nắm được tình hình mua bán, doanh thu của siêu thị đểbáo cáo lại cho ban giám đốc hợp tác xã Sài Gòn Co-Op Việc báo cáo được thực hiện hàngtháng, hàng quý hoặc cũng có khi báo cáo đột xuất theo yêu cầu
Bộ phận hành chính thực hiện các công việc liên quan đến hành chính văn phòng.
Bộ phận tài chính kế toán : có chức năng tham mưu giúp Ban Giám đốc chỉ đạo, quản lý điều
hành công tác kinh tế tài chính và hạch toán kế toán; huy động tài chính và quản lý công tácđầu tư tài chính; thực hiện và theo dõi công tác tiền lương, tiền thưởng và các khoản thu nhập,chi trả theo chế độ, chính sách đối với nhân viên, thanh quyết toán các chi phí hoạt động, chiphí phục kinh doanh và chi phí đầu tư các dự án theo quy định, lập các báo cáo tài chính…
Bộ phận quản lý kho: Nhiệm vụ của bộ phận quản lý kho là kiểm tra chất lượng hàng hoá và
nắm tình trạng hàng hoá của siêu thị, đảm bảo hàng hoá luôn ở trong tình trạng tốt nhất khi đếntay khách hàng Khi phát hiện hàng hư hỏng phải kịp thời báo ngay cho ban giám đốc để cóbiện pháp giải quyết và điều phối hàng
Bộ phận bán hàng bao gồm tổ thu ngân và tổ kế hoạch Tổ thu ngân thực hiện việc bán hàng và
lập hóa đơn cho khách hàng đồng thời ghi nhận lại các hóa đơn, số hàng hoá bán được Tổ kế
Ban giám đốc
Ban giám đốc
Tổ bảo vệ hành chính hành chính Bộ phận Bộ phận Bộ phận Bộ phận nhân sự nhân sự Bộ phận bán Bộ phận bán hàng hàng
Tổ kế hoạch
Tổ kế hoạch
Tổ thu ngân
Bộ phận tài chính kế toán
Bộ phận tài chính kế toán quản lý kho Bộ phận
Bộ phận quản lý kho Tổ tin học
Trang 11hoạch thực hiện xây dựng các chiến lược kinh doanh của siêu thị, các kế hoạch bán và nhậphàng…
Tổ tin học: Thực hiện việc nhập liệu, kết xuất các báo cáo cần thiết phục vụ cho các bộ phận
khác, quản lý hệ thống thông tin trong toàn bộ siêu thị
Tổ bảo vệ: Kiểm tra, bảo vệ an ninh của siêu thị, ghi nhận hàng hóa đổi lại của khách hàng.
Trong đó, lãnh đạo cao nhất của siêu thị là ban giám đốc.Họ là những người đưa ra cácquyết định về các chiến lược hoạt động kinh doanh của siêu thị.Bộ phận bán hàng là một bộ phậnquan trọng, bởi đây là một bộ phận đảm nhận một trong các hoạt động chính và quan trọng củasiêu thị mang lại doanh thu và lợi nhuận trực tiếp cho doanh nghiệp
Từ việc tìm hiểu cơ cấu tổ chức của siêu thị đặt ra một nhu cầu cần quan tâm trong việc thiết
kế và xây dựng hệ chương trình quản lý nhập và bán hàng của siêu thị đó là tính chất phân quyềntrong việc truy cập hệ thống Trên thực tế có những thông tin được truy xuất từ dữ liệu của đơn vịkinh doanh mang tính chiến lược, là cơ sở cho việc ra những quyết định quan trọng mà không phảibất kì những nhân viên bình thường nào cũng có thể biết và tìm hiểu Do đó, cần phải có sự phânquyền trong truy cập hệ thống, đó là điều cơ bản trước tiên và vô cùng quan trọng
2.3 Xác định lĩnh vực ưu tiên
Với hoạt động của một siêu thị gồm rất nhiều bộ phận khác nhau với rất nhiều những yêucầu khác nhau, trong phạm vi đồ án thực hiện, chúng tôi chỉ thực hiện quản lý những vấn đề cơbản liên quan đến nhập, lưu kho và bán hàng
Các hoạt động này được xử lý trên một số các ràng buộc cơ bản sau:
Giá vốn hàng bán dùng để tính lợi nhuận sẽ được tính theo hình thức tính giá bình quân giaquyền với công thức
Gi á b ì nhqu â n= Gi á b ì nhqu â ncủah à ngtồnkho∗Sốlượngtồn+Gi á nhập∗Sốlượngnhập
Sốlượngtồn+ Sốlượngnhập
Doanh thu từ hoạt động bán hàng sẽ tính trên tổng giá trị các hóa đơn, không tính đến thuế
Giá bán sẽ tính như sau:
Gi á b á n=Gi á b ìnhqu â n+0.1∗Gi á bì nhqu â n
Trang 12 Lợi nhuận thu được chỉ tính trên lợi nhuận từ bán hàng, không xét đến các hoạt động tài chínhkhác và hoạt động thu, chi khác.
Đơn vị tiền tệ được sử dụng trong toàn bộ các hoạt động xử lý là VNĐ
Hình thức thanh toán của khách hàng là thanh toán bằng tiền mặt Hình thức thanh toán củasiêu thị cho nhà cung cấp là thanh toán bằng tiền mặt và qua tài khoản ngân hàng
Các khách hàng mà siêu thị quản lý là những khách hàng đã thực hiện mở thẻ khách hàng thânthiết từ trung tâm hỗ trợ khách hàng của siêu thị
Hoạt động thanh toán tiền hàng của siêu thị cho nhà cung cấp đựơc tính bằng giá trị nhập củacác phiếu nhập, không tính đến thuế
Tổng giá trị hóa đơn được tính bằng tổng của số lượng bán nhân đơn giá bán của hàng hóa,không xét đến thuế VAT
Khách hàng đã làm thẻ và có số điểm tích lũy từ 500 trở xuống được xem là đối tượng kháchhàng cần quan tâm thúc đẩy các dịch vụ để lôi kéo các khách hàng này
Khách hàng có số điểm tích lũy trên 500 là những khách hàng thân thiết, cần có chính sáchchăm sóc tốt để giữ chân khách hàng này, để họ có thể trở thành một kênh thông tin lôi kéonhiều khách hàng thân thiết cho siêu thị
Mỗi điểm tích lũy của khách hàng được tính như sau: trong tổng giá trị hóa đơn một lần muahàng cứ 10.000VNĐ được ghi nhận 1 điểm tích lũy
Mỗi hàng hóa đều được phân vào một loại hàng nhất định Mỗi loại hàng được trưng bày ởmột gian hàng
Ta quy ước ngay khi một hóa đơn, một phiếu nhập, phiếu xuất được lập, hay một lần thanhtoán được ghi nhận thì ta cập nhật ngay vào cơ sở dữ liệu Điều đó có nghĩa là ngày lập hóađơn, ngày nhập trong phiếu nhập, hay ngày xuất trong phiếu xuất, hay ngày thanh toán trongchi tiết một lần thanh toán sẽ là ngày hiện hành của hệ thống
2.4 Tìm hiểu quy trình nhập và bán hàng:
Như đã nói ở trên, nhập và bán hàng là hai nghiệp vụ cơ bản của một siêu thị bán lẻ khôngchỉ riêng gì siêu thị Co.op Mart Xa Lộ Hà Nội.Hai nghiệp vụ mang tính thường xuyên và quantrọng này là nguồn gốc phát sinh rất nhiều dữ liệu cần quản lý, và đây cũng là hai nghiệp vụ cơ
Trang 13bản được xác định cần giải quyết trong việc thực hiện xây dựng cơ sở dữ liệu và hệ chương trìnhquản lý cho siêu thị Co.op Mart.
2.4.1 Hoạt động nhập hàng
Hoạt động nhập hàng được tiến hành khi siêu thị thống kê số lượng hàng tồn kho của cácmặt hàng và tiến hành ra yêu cầu nhập đối với những mặt hàng có số lượng tồn kho nhỏ hơn 200đơn vị hàng hóa Danh sách các mặt hàng cần nhập sẽ được đề lên ban giám đốc siêu thị kí duyệt
Siêu thị sẽ gửi đơn đặt hàng đến các nhà cung cấp Nhà cung cấp cung hàng theo yêu cầucủa siêu thị, và lập hóa đơn bán hàng cho siêu thị Khi ấy, siêu thị ghi nhận đợt nhập hàng bằngcác phiếu nhập
Mỗi đợt nhập hàng, siêu thị có thể thanh toán cho nhà cung cấp qua nhiều lần với hai hìnhthức là tiền mặt và thanh toán qua các tài khoản ngân hàng
2.4.2 Lưu kho và kiểm kê
Hàng hóa được nhập về sẽ được ghi nhận và lưu kho Khi có yêu cầu từ bộ phận kiểm kêhàng hóa trên các gian hàng trong siêu thị, hàng hóa sẽ được xuất kho, và đưa lên các gian hàng đểtrực tiếp bày bán cho khách hàng Các hàng hóa được xuất kho sẽ được quản lý thông qua cácphiếu xuất
2.4.3 Hoạt động bán hàng
Các khách hàng đến siêu thị, chọn mặt hàng cần mua trên các gian hàng
Khách hàng đến thanh toán tại các quầy thanh toán
Nhân viên thanh toán ghi nhận hóa đơn bán hàng và xuất hóa đơn cho khách hàng
Khách hàng thanh toán tiền hàng cho siêu thị Trong phạm vi đồ án này, hình thức thanhtoán của khách hàng chỉ quản lý hình thức thanh toán bằng tiền mặt
2.5 Xác định các yêu cầu:
Trên các điều kiện đặt ra như trên, cơ sở dữ liệu được đề xuất để quản lý hoạt động nhập vàbán hàng của siêu thị cần đáp ứng các yêu cầu như sau:
2.5.1 Yêu cầu lưu trữ
Để phục vụ xây dựng cơ sở dữ liệu cho chương trình quản lý nhập và bán hàng của siêu thị, yêucầu trước tiên cần xác định những đối tượng nào cấn được lưu trữ và quản lý.Trong quá trình hoạt
Trang 14động nhập và bán hàng các dữ liệu được phát sinh từ rất nhiều nguồn, trong đó các dữ liệu cầnđược lưu trữ bao gồm:
Thứ nhất là dữ liệu về hàng hóa Dữ liệu về hàng hóa là dữ liệu không thể thiếu đối với bất
kì hệ thống bán hàng nào Hàng hóa được lưu trữ với các thuộc tính cơ bản như: loại hàng,tên hàng, số lượng tồn, giá tồn kho,… Ngoài ra, người dùng cũng có thể xác định mặt hàngnày nhập từ nhà cung cấp nào, nhập về từ đợt nhập hàng nào…
Thứ hai là các dữ liệu về nhà cung cấp Lưu trữ dữ liệu các nhà cung cấp giúp quản lý tốt
hơn các đối tác cung ứng hàng cho siêu thị, giúp siêu thị tránh các trường hợp bị động trongviệc cung ứng hàng Nhà cung cấp được lưu trữ với các thuộc tính cơ bản như: tên nhàcung cấp, địa chỉ, điện thoại, fax, email, số tài khoản ngân hàng giao dịch…
Thứ ba là các dữ liệu về khách hàng Quản lý khách hàng thân thiết giúp siêu thị có dữ liệu
phân tích thông tin khách hàng, thói quen mua hàng,… giúp cho siêu thị giữ chân và lôi kéokhách hàng, và có các chính sách hỗ trợ và chăm sóc khách hàng tốt hơn Dữ liệu kháchhàng có các thuộc tính cơ bản như: mã khách hàng, họ, tên, giới tính, địa chỉ, điện thoại,điểm tích lũy…
Thứ tư là các dữ liệu về phiếu nhập Phiếu nhập cho biết thông tin về các đợt nhập hàng.
Phiếu nhập gồm các thuộc tính: mã phiếu nhập, ngày nhập, tống giá trị nhập,…
Thứ năm là các dữ liệu về phiếu xuất, cho biết thông tin các đợt xuất hàng từ kho lên trưng
bày tại các gian hàng của siêu thị Phiếu xuất gồm các thuộc tính: mã phiếu xuất, ngày xuất,xuất mặt hàng nào, giá trị xuất…
Thứ sáu là dữ liệu của các hóa đơn Hóa đơn được lập hàng ngày ghi nhận các hàng hóa
bán ra và doanh thu thu về Mỗi hóa đơn có các thông tin mã hóa đơn, hàng hóa bán, sốlượng bán, đơn giá bán, ngày lập hóa đơn, tổng giá trị hóa đơn
Thứ bảy là dữ liệu loại hàng, cho biết thông tin các nhóm hàng hóa trong siêu thị Mỗi hàng
hóa đều được phân vào một loại hàng nhất định
2.5.2 Yêu cầu xử lý
Các yêu cầu mức độ xử lý đặt ra cho chương trình quản lý bán hàng của siêu thị bao gồm:
2.5.2.1Hoạt động nhập hàng
Trang 15 Lập danh sách 10 mặt hàng có tổng số lượng nhập về nhiều nhất trong tháng x năm y Danhsách sắp xếp theo thứ tự tổng số lượng giảm dần.
Lập danh sách thống kê mặt hàng được nhập về nhiều nhất trong tháng x của năm y
Lập danh sách các phiếu nhập được lập trong tháng x năm y Danh sách gồm: mã phiếu nhập,tên đối tác, ngày lập phiếu, tổng giá trị, số tiền đã thanh toán, số tiền còn nợ
Lập bảng thống kê tình hình nhập kho của năm x Bảng gồm các cột: mã hàng, tên hàng, tổng
số lượng nhập kho, tổng giá trị (của tất cả các lần nhập), đơn giá bình quân
Lập danh sách các phiếu nhập được lập từ ngày x đến ngày y của tháng z năm d
Lập danh sách top 10 nhà cung cấp thường xuyên cung hàng cho siêu thị trong tháng x củanăm y Điều này có nghĩa là lập danh sách của 10 nhà cung cấp mà siêu thị có số lần nhậphàng từ các nhà cung cấp này nhiều nhất trong tháng x của năm y Danh sách gồm các cột: mãnhà cung cấp, tên nhà cung cấp, địa chỉ, điện thoại, email, fax, số lần nhập hàng Trong đó sốlần nhập hàng của một nhà cung cấp chính là tổng số phiếu nhập được ghi nhận là mua hàng
từ nhà cung cấp đó
Lập danh sách các nhà cung cấp mà siêu thị chưa thanh toán tiền hàng Bảng danh sách chobiết siêu thị chưa thanh toán tiền hàng cho nhà cung cấp nào và còn nợ bao nhiêu Danh sáchgồm các cột: Mã nhà cung cấp, tên nhà cung cấp, tổng số nợ
Tính tổng số tiền nhập hàng của siêu thị trong năm x Tổng giá trị nhập hàng được tính trêntổng giá trị các phiếu nhập được nhập về trong năm x
Lập bảng thống kê khối lượng giao dịch của các nhà cung cấp trong năm x Bảng gồm các cột:tên đối tác, địa chỉ, điện thoại, số lượng giao dịch, tổng khối lượng giao dịch với mỗi nhà cungcấp
Lập danh sách các hàng hóa mới nhập về (có ngày nhập về gần nhất với ngày hiện hành tức làngày nhập về lớn nhất trong tất cả các ngày nhập về được ghi nhận trong phiếu nhập) Vìtrong cùng một ngày có thể có nhiều đợt nhập về nên danh sách gồm các cột: Mã phiếu nhập,
Mã hàng hóa, tên hàng hóa, số lượng nhập, đơn giá nhập
Lập danh sách phiếu nhập có tổng giá trị nhập trên x triệu Danh sách gồm các cột mã phiếunhập, tên nhà cung cấp, giá trị phiếu nhập
Trang 16 Lập danh sách các hàng hóa được nhập về trong phiếu nhập có mã là x Danh sách gồm mãhàng, tên hàng, số lượng nhập, đơn giá nhập
Tính tổng số tiền nhập hàng của siêu thị trong năm x Tổng giá trị nhập hàng được tính trêntổng giá trị các phiếu nhập được nhập về trong năm x
Lập danh sách các phiếu nhập được lập từ ngày x đến ngày y của tháng z
Lập danh sách tổng giá trị nhập hàng từng tháng của năm y
Lập danh sách tổng giá trị các hóa đơn xuất ra từ ngày x đến ngày y của các tháng trong năm z
Lập danh sách thống kê 10 loại hàng có doanh thu cao nhất từ tháng x cho đến tháng y của
năm z
Lập danh sách top 10 khách hàng có số lần giao dịch nhiều nhất trong tháng x năm y Danhsách gồm các cột: Số Thẻ KH, họ tên khách hàng, địa chỉ, số lần giao dịch
Lập danh sách top 10 mặt hàng có doanh thu cao nhất trong tháng x năm y Bảng dữ liệu gồm
Mã HH, Tên HH, Tổng Doanh Thu
Tính tổng doanh thu và tổng lợi nhuận của doanh nghiệp trong tháng x năm y
Lập bảng thống kê giá bán cao nhất, giá bán thấp nhất, giá bán bình quân của tất cả các mặthàng Danh sách gồm các cột : mã hàng, tên hàng, giá bán cao nhất, giá bán thấp nhất, giá bánbình quân
Trang 17 Lập bảng thống kê số lượng tiêu thụ của tất cả các khách hàng đối với mặt hàng có mã là x.Bảng gồm ba cột : Số thẻ khách hàng, họ tên khách hàng, tổng số lượng đã đã mua Sắp bảngtheo thứ tự số lượng tiêu thụ giảm dần
Lập danh sách mặt hàng mà khách hàng có MaKH= ‘KH0001’ đã mua Danh sách gồm cáccột : Mã mặt hàng, tên mặt hàng, thuộc loại, tổng số lượng đã mua, tổng giá trị (tiền) đã mua.Sắp danh sách theo thứ tự giảm dần của cột tổng giá trị
Lập bảng thống kê doanh thu của các mặt hàng trong tháng x năm y
Lập danh sách các khách hàng sinh tháng x có điểm tích lũy lớn hơn 0 để chiết khấu chokhách hàng khi khách hàng mua hàng vào tháng x
Lập bảng thống kê khối lượng giao dịch của khách hàng có mã là x Bảng gồm các cột : Sốthẻ KH, họ tên khách hàng, số lượng giao dịch
Tương tự câu trên, lập bảng thống kê khối lượng giao dịch của tất cả các khách hàng củadoanh nghiệp Bảng gồm các cột : Số thẻ KH, họ tên khách hàng, số lượng giao dịch, tổngkhối lượng giao dịch của tất cả các khách hàng Sắp bảng theo thứ tự giảm dần của cột khốilượng giao dịch
Lập danh sách top 10 mặt hàng có lợi nhuận cao nhất trong tháng x năm y
Thống kê doanh thu từ bán hàng theo từng năm từ năm x đến năm y
Thống kê doanh thu bán hàng theo từng tháng của năm x
Thống kê doanh số của các loại hàng trong năm x Doanh số là số lượng được bán ra của cácloại hàng
Tính tổng khối lượng giao dịch của khách hàng có mã là x từ tháng y năm z đến tháng y’ nămz’ Khối lượng lương giao dịch của khách hàng là tổng giá trị hóa đơn mà khách hàng đó đãmua Yêu cầu đề bài tương đương vơi tính tổng giá trị tất cả các hóa đơn của khách hàng có sốthẻ khách hàng là x, trong thời gian 2 năm từ tháng y năm z đến tháng y’ năm z’
Lập danh sách hàng hóa mà khách hàng có số thẻ khách hàng là x đã mua Danh sách gồm cáccột mã hàng hóa, tên hàng hóa, tổng giá trị của hàng hóa đã mua
Tính tỷ lệ doanh thu của siêu thị từ khách hàng thân thiết trên tổng doanh thu của siêu thịtrong năm x
Trang 18 Thống kê doanh thu của siêu thị trong tháng 2 (tháng Tết) của năm 2011 và 2012 Bảng thống
kê gồm 2 cột: Năm và Doanh thu của tháng 2 trong năm đó Đánh giá, so sánh được doanh thucủa siêu thị trong tháng Tết của 2 năm 2011 và 2012
So sánh tỷ lệ doanh thu của giữa năm x và năm y Từ tỷ lệ doanh thu ta có thể đánh giá, sosánh được sự biến động doanh thu của năm trước so với năm nay
Lập bảng thống kê hàng hóa bán ra trong năm x Bảng gồm các cột: mã hàng, tên hàng, tổng
số lượng bán ra, tổng doanh thu, tổng lợi nhuận của mỗi mặt hàng
Lập bảng danh sách khách hàng thân thiết theo điểm tích lũy giảm dần
Tính tổng doanh thu từ tháng 1 đến tháng 6theo từng năm
Lập bảng thống kê các loại hàng gồm các loại hàng bán ra trong năm x Bảng gồm các cột:
Mã loại hàng, tên loại hàng, doanh thu theo từng loại hàng, Lợi nhuận theo loại hàng
Lập danh sách khách hàng sắp xếp theo khối lượng giao dịch từ cao xuống thấp
Lập bảng thống kê khối lượng giao dịch của tất cả các khách hàng của doanh nghiệp Bảnggồm các cột : Số thẻ KH, họ tên khách hàng, số lượng giao dịch, tổng khối lượng giao dịchcủa tất cả các khách hàng, tổng lợi nhuận (mà siêu thị thu được).Sắp bảng theo thứ tự giảmdần của cột khối lượng giao dịch
Thống kê doanh thu các mặt hàng trong năm x Sắp xếp theo doanh thu giảm dần
Lập bảng thống kê tình hình tiêu thụ của các mặt hàng theo 3 tháng đầu năm của x
Lập danh sách liệt kê các mặt hàng đã xuất kho trong ngày hiện tại Bảng dữ liệu gồm có: Mãhàng hóa, Tên hàng hóa, Số lượng xuất, TGT xuất
Thống kê các mặt hàng mà khách hàng từ 13-18 tuổi thường mua Danh sách gồm các cột mãhàng, tên hàng, số lượng hàng được mua ở từng mặt hàng Sắp xếp danh sách theo số lượngmua giảm dần
Lập danh sách khách hàng có ngày sinh trong tháng tiếp theo (so với tháng hiện hành của hệthống) Danh sách xếp theo thứ tự khách hàng có khối lượng giao dịch từ cao xuống thấp Top
10 khách hàng có tổng giao dịch cao nhất sẽ được tặng quà
Trang 19 Lập danh sách các hóa đơn có giá trị trên 1,5 triệu của năm y Danh sách gồm các cột mãhóa đơn, ngày lập hóa đơn, số thẻ khách hàng (nếu hóa đơn đó được mua bởi khách hàng
có làm thẻ, nếu không cột này có thể trống ở một số dòng), tổng giá trị hóa đơn
Trang 20CHƯƠNG II: XÂY DỰNG CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢN LÝ BÁN HÀNG
1 Các bảng trong cơ sở dữ liệu:
Cơ sở dữ liệu xây dựng gồm các bảng để lưu trữ dữ liệu bao gồm: bảng khách hàng, bảngnhà cung cấp, bảng hàng hóa, bảng loại hàng, bảng phiếu nhập, bảng phiếu xuất, bảng hóa đơn,bảng chi tiết phiếu nhập, bảng chi tiết phiếu xuất, bảng chi tiết hóa đơn, bảng chi tiết thanh toán,bảng hình thức thanh toán
1.1 Các lược đồ quan hệ
Các lược đồ quan hệ được xây dựng như sau:
NCC(MaNCC, TenNCC, DiaChi, DienThoai, Fax, Email, NganHang, SoTK);
PhieuNhap(MaPN, MaNCC, NgayNhap, TGTN);
ChiTietPN(MaPN, MaHH, SLN, DGN, HSD);
HH(MaHH, TenHH, GiaBan, SLT, SLK, GiaBinhQuan, MaLoai);
LoaiHang(MaLoai, TenLoai, GianHang);
1.1.1 NCC: làthực thể dữ liệu quản lý thông tin các nhà cung cấp hàng hóa cho siêu thị, gồm
các thuộc tính mã nhà cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại, fax, email của
Trang 21nhà cung cấp, số tài khoản và ngân hàng nơi mở tài khoản của nhà cung cấp để thựchiện thanh toán tiền hàng bằng chuyển khoản.
1.1.2 PhieuNhap là thực thể dữ liệu quản lý thông tin các đợt nhập hàng của siêu thị từ nhà
cung cấp Một phiếu nhập cho biết đợt hàng đó được nhập từ nhà cung cấp nào, vàothời gian nào, và tổng giá trị là bao nhiêu Một phiếu nhập bao gồm các thuộc tính như:
mã phiếu nhập, mã nhà cung cấp, ngày nhập, tổng giá trị toàn bộ hàng hóa được nhậptrong đợt nhập hàng này
1.1.3 ChiTietPNlà mối kết hợp giữa thực thể dữ liệu PhieuNhap và HH Chi tiết phiếu nhập
cho biết hàng hóa nào được nhập từ đợt nhập hàng nào (thuộc về phiếu nhập nào), sốlượng bao nhiêu, giá nhập của từng mặt hàng, và hạn sử dụng của mặt hàng đó
1.1.4 HH: là thực thể dữ liệu mô tả thông tin về hàng hóa có trong siêu thị như tên hàng, giá
bán, giá bình quân, số lượng tồn, số lượng trên kệ hàng
1.1.5 LoaiHang: là thực thể dữ liệu cho biết các nhóm hàng trong siêu thị Mỗi hàng hóa đều
được phân vào một nhóm hàng Loại hàng cho biết những loại hàng nào mà hàng hóathuộc vào Loại hàng cũng cho biết các gian hàng nào mà hàng hóa đó có thể đựơctrưng bày lên, vì mỗi loại hàng đều có một gian hàng trưng bày riêng
1.1.6 HTThanhToanlà thực thể dữ liệu cho biết các hình thức thanh toán tiền hàng cho nhà
cung cấp của siêu thị
1.1.7 ChiTietThanhToan là mối kết hợp giữa PhieuNhap và HTThanhToan cho biết các lần
thanh toán tiền hàng cho một phiếu nhập, thanh toán cho phiếu nhập nào, số tiền baonhiêu và thanh toán bằng hình thức nào
1.1.8 PhieuXuatKho là thực thể dữ liệu ghi nhận một lần xuất kho hàng hóa Một Phiếu Kho
cho biết ngày xuất kho và tổng khối lượng xuất kho
1.1.9 ChiTietPhieuXuatKho là mối kết hợp giữa HH và PhieuXuatKho Một
ChiTietPhieuX-uatKho cho biết hàng hóa nào được xuất kho và xuất bao nhiêu để mang lên trưng bàytrên các gian hàng của siêu thị để bán cho khách hàng
1.1.10 HoaDonBanlà thực thể dữ liệu ghi nhận các hóa đơn được lập ra Một hóa đơn cho biết
các thông tin về mã hóa đơn, ngày lập hóa đơn, tổng giá trị nhập Đối với những hóa
Trang 22đơn lập cho khách hàng có làm thẻ khách hàng sẽ có thêm thông tin về số thẻ kháchhàng.
1.1.11 ChiTietHoaDonBan là mối kết hợp giữa HangHoa và HoaDonBan ghi nhận hàng hóa
nào được bán ra trong một hóa đơn, số lượng bán, đơn giá bán
1.1.12 KhachHanglà thực thể dữ liệu cho biết thông tin về một khách hàng đã làm thẻ khách
hàng tại siêu thị, thông tin bao gồm số thẻ khách hàng, họ, tên, ngày sinh, giới tính, sốđiện thoại, điểm tích lũy
1.2 Mô tả chi tiết từng thuộc tính và dữ liệu mỗi bảng
1.2.1 Bảng NCC:
Bảng NCC gồm các thuộc tính:
TenNCC Tên nhà cung cấp Nvarchar(255) Not null
SoTK Số tài khoản ngân hàng Nvarchar(50) Null
Bảng dữ liệu của bảng NCC:
1.2.2 Bảng PhieuNhap
Bảng PhieuNhap gồm các thuộc tính sau:
Trang 23MaNCC Mã nhà cung cấp Int Not nullNgayNhap Ngày lập phiếu nhập Datetime Not null
Bảng dữ liệu của bảng PhieuNhap:
1.2.3 Bảng ChiTietPN
Bảng ChiTietPN gồm các thuộc tính sau:
HSD Hạn sử dụng của mặt hàng Datetime Not nullBảng dữ liệu của bảng ChiTietPhieuNhap:
1.2.4 Bảng HH
Bảng HH gồm các thuộc tính sau:
Trang 24Field Name Description Data type Allow nulls
SLT Số lượng hàng tồn trong
kho
GiaBin-hQuan
Giá bình quân nhập kho Float Not null
Bảng dữ liệu của bảng HangHoa:
1.2.5 Bảng LoaiHang
Bảng LoaiHang gồm các thuộc tính sau:
GianHang Gian hàng để loại hàng Nvarchar(50) Not nullBảng dữ liệu của bảng LoaiHang:
Trang 251.2.6 Bảng PhieuXuatKho
Bảng PhieuXuatKho gồm các thuộc tính sau:
NgayXuat Ngày lập phiếu xuất kho Datetime Not null
Bảng dữ liệu của bảng PhieuXuatKho:
1.2.7 Bảng ChiTietPhieuXuatKho
Bảng ChiTietPhieuXuatKho gồm có các thuộc tính sau:
Bảng dữ liệu của bảng ChiTietPhieuXuatKho:
1.2.8 Bảng HoaDonBan
Trang 26Bảng HoaDonBan gồm có các thuộc tính sau:
SoTheKH Thẻ khách hàng (nếu khách
hàng đã lập thẻ)
Nvarchar(7) Null
NgayLap Ngày lập hóa đơn bán datetime Not null
Bảng dữ liệu của bảng HoaDonBan:
1.2.9 Bảng ChiTietHoaDonBan
Bảng ChiTietHoaDonBan gồm có các thuộc tính sau:
Bảng dữ liệu của ChiTietHoaDonBan:
Trang 271.2.10 Bảng KhachHang
Bảng KhachHang gồm có các thuộc tính sau:
GioiTinh Giới tính (bằng 0 nếu là nam,
bằng 1 nếu là nữ)
NgaySinh Ngày sinh của khách hàng Datetime Not nullCMND Số chứng minh nhân dân của
khách hàng
Nvarchar(50) Not null
DiaChi Địa chỉ khách hàng Nvarchar(255) Not nullDienThoai Số điện thoại khách hàng Nvarchar(15) Not nullDiemTich-
Luy
Số điểm tích lũy khi mua hàng Float Not nullBảng dữ liệu của bảng KhachHang:
1.2.11 Bảng ChiTietThanhToan
Bảng ChiTietThanhToan gồm có các thuộc tính sau:
NgayThanhToan Ngày thanh toán tiền hàng
cho nhà cung cấp
Datetime Not null
TienThanhToan Số tiền thanh toán cho nhà
cung cấp
Trang 28Dữ liệu của bảng ChiTietThanhToan:
1.2.12 Bảng HTThanhToan
Bảng HTThanhToan gồm có các thuộc tính sau:
HinhThuc-ThanhToan
Hình thức thanh toán chonhà cung cấp (Tiền mặthoặc chuyển khoản quangân hàng)
Nvarchar(50) Not null
Bảng dữ liệu của Bảng HTThanhToan:
2 Biểu đồ thực thể và mối kết hợp – ERD và Thiết kế luận lý:
2.1 Biểu đồ thực thể và mối kết hợp:
Biểu đồ minh họa các đối tượng và mối kết hợp giữa các đối tượng trong cơ sở dữ liệu quản lýbán hàng ở siêu thị Co.op Mart Xa Lộ Hà Nội, quận 9, Thành Phố Hồ Chí Minh được thiết kế nhưsau:
Trang 29Biểu đồ thực thể và mối kết hợp – ERD
Như sơ đồ trên ta có các liên hệ như sau:
Một nhà cung cấp có thể cung cấp hàng nhiều lần cho siêu thị
Mỗi một đợt nhập hàng, siêu thị được phép thanh toán nhiều lần
Một hình thức thanh toán có thể được chọn cho nhiều lần thanh toán Một lần thanh toán chỉđược chọn một hình thức thanh toán
Một phiếu nhập được nhập nhiều hàng hóa Mỗi hàng hóa được nhập về trong nhiều phiếunhập
Mỗi lần xuất kho lên gian hàng, được xuất nhiều hàng hóa Mỗi hàng hóa có thể được xuấtkho nhiều lần
Mỗi hóa đơn bán nhiều mặt hàng Mỗi mặt hàng được bán trong nhiều hóa đơn
Mỗi loại hàng có nhiều mặt hàng Một mặt hàng chỉ phân vào một loại hàng
Mỗi hóa đơn chỉ thuộc về một khách hàng Một khách hàng có thể mua nhiều hóa đơn
2.2 Thiết kế luận lý
Trang 30Sơ đồ Diagram
3 Các điều kiện ràng buộc toàn vẹn, bảng tầm ảnh hưởng và hàm trigger:
Trong nội dung phần này, nhóm không xét đến trườnghợp các ràng buộc khóa chính vàràng buộc phụ thuộc tồn tại, vì những ràng buộc này SQL server sẽ kiểm tra trong quá trình phátsinh những thay đổi trong dữ liệu
Trong phần này, ta xét các ràng buộc sau:
3.1 Ràng buộc trên một quan hệ
3.1.1 Ràng buộc miền giá trị:
Bảng NCC
R1: Số điện thoại có số kí tự phải lớn hơn hay bằng 10 và nhỏ hơn 12.
A(x) là tập hợp các chữ số có trong số điện thoại của nhà cung cấpcó mã là x:
A ( x )={(a)∈{0,1,2, … , 9}|a ∁{t DienT h oai|{t MaNCC =x t ∈ NCC }}
Trang 31NCC + - + (DienThoai)
R2: Số Fax phải có số kí tự phải lớn hơn hay bằng 10
A(x) là tập hợp các chữ số có trong số điện thoại của nhà cung cấpcó mã là x:
A ( x )={(a)∈{0,1,2, … , 9}|a ∁{t Fax|{t MaNCC =x t ∈ NCC }}
R3: Số tài khoản ngân hàng có số kí tự không được nhỏ hơn 13.
Tập hợp A(x) là tập hợp các kí tự có trong số tài khoản của nhà cung cấp có mã là x
A ( x )={(a)∈{0,1,2,3 9}|a∁{t SoTK|{t MaNCC =x t ∈ NCC }}
R4: Ngày nhập bằng ngày hiện hành của hệ thống
∀ x ∈ P h ieuN h ap , x NgayN h ap=Now()
Bảng tầm ảnh hưởng:
Bảng ChiTietThanhToan
Trang 32 R5: Ngày thanh toán phải ghi nhận bằng ngày hiện hành
∀ x ∈C h iTietT h an h Toan, x NgayT h an h Toan=Now()
Bảng tầmảnh hưởng:
R6: Số tiền thanh toán trong một lần thanh toán phải lớn hơn 10000
∀ x ∈C h iTietT h an h Toan, x TienT h an h Toan>10000
Trang 33 R13: Ngày xuất kho ghi nhận bằng ngày hiện hành:
∀ x ∈ P h ieuXuatK h o , x NgayXuat =Now ()
Trang 34 R16: Ngày sinh của khách hàng phải nhỏ hơn ngày hiện hành của hệ thống
∀ x ∈ K h ac h Hang, x NgaySin h<Now()
Bảng tầmảnh hưởng:
R17: Số CMND phải có 9 chữ số:
A(x) là tập hơp các chữ số trong CMND của kháchhàng có số thẻ khách hàng là x:
A ( x )={(a)∈{0,1,2, … , 9}|a ∁{t NgaySin h|{t t SoT h eKH =x ∈ K h ach Hang}}
Trang 35A(x) là tập hợp các chữ số có trong số điện thoại của kháchhàng có số thẻ kháchhàng là x:
A ( x )={(a)∈{0,1,2, … , 9}|a ∁{t DienT h oai|{t t SoT h eKH =x ∈ K h ac h Hang}}
3.1.2 Ràng buộc liên thuộc tính
R19: Trong bảng HH: GiaBan > GiaBinhQuan
∀ x ∈ HH , x GiaBan>x GiaBin h Quan
Bảng tầmảnh hưởng
(GiaBin-hQuan)
3.2 Ràng buộc trên nhiều quan hệ:
R20: Trong quan hệ ChiTietThanhToan và PhieuNhap, thuộc tính TienThanhToan của ChiTietThanhToan phải nhỏ hơn hay bằng thuộc tính TGTN của quan hệ PhieuNhap
∀ x ∈C h iTietT h an h Toan, y ∈ P h ieuN h ap , x MaPN = y MaPN → x TienT h an h Toan≤ y TGTN
Trang 36∀ x ∈ P h ieuXuatK h o , y ∈C h iTietP h ieuXuatK h o
x MaPX = y MaPX → x TGT =∑(y SLX∗y DGX )
Gia-∀ x ∈ HH , y ∈C h iTietPh ieuXuatK h o , z ∈ C h iTietHoaDonBan ,
x MaHH= y MaHH=z MaHH → x GiaBan= y DGX=z DGB
Bảng tầm ảnh hưởng:
Trang 37R24 Thêm Xóa Sửa
∀ x ∈ HH , y ∈C h iTietPN , z ∈C hiTietP hieuXuatK h o ,
x MaHH= y Mahh=z MaHH → x SLT =∑y SLN−∑z SLX
CREATE TRIGGER CHECK_NCC_1 ON dbo.NCC
Trang 38FOR INSERT, UPDATE
AS
DECLARE@DTNVARCHAR(30),@FAX NVARCHAR(30),@N1 INT,@N2 INT
SELECT @DT = DienThoai FROM Inserted
SELECT @FAX =Fax FROM Inserted
IF(@N2<10)
BEGIN
PRINT'Fax phai co 10 so tro len'
ROLLBACK TRANEND
Tại cột NganHang và SoTK được phép để giá trị NULL Nhưng chúng phải đồng thời cógiá trị hoặc là không Nếu cột SoTK có giá trị thì số tài khoản của Nhà Cung Cấp phải có ítnhất 13 số trở lên
Nếu người dùng chỉ nhập giá trị cho 1 trong 2 cột, thì hệ thống sẽ thông báo lỗi, yêu cầungười dùng kiểm tra lại
CREATE TRIGGER CHECK_NCC_2 ON NCC
FOR INSERT, UPDATE
AS
DECLARE @NH NVARCHAR(255), @TK NVARCHAR(50), @N INT
SELECT @NH= NganHang FROM Inserted
SELECT @TK = SoTK FROM Inserted
ELSE
BEGIN
Trang 39SELECT @TK=NULLEND
ROLLBACK TRANEND
ROLLBACK TRANEND
ENDEND
3.3.2 Bảng PhieuNhap
Giá trị tại cột NgayNhap: Ngày lập phiếu nhập phải bằng ngày hiện hành
CREATE TRIGGER CHECK_PN ON PhieuNhap
FOR INSERT, UPDATE
AS
DECLARE @NN datetime
SELECT @NN = NgayNhap FROM Inserted
IF(CONVERT(varchar,@NN,101)!=CONVERT(varchar,getdate(),101))
BEGIN
PRINT'Ngay lap phieu nhap phai bang ngay hien hanh'
ROLLBACKTRANEND
Cột TGTN: Hệ thống quy đinh, khi người sử dụng thêm một phiếu nhập (MaPN= a) thì bỏqua cột TGTN Giá trị tại cột TGTN của phiếu nhập khi thêm mới sẽ được mặc định là giá
Trang 40trị 0 và nó sẽ được tính tự động thường xuyên khi NSD thêm dữ liệu vào bảng ChiTietPN(với MaPN=a)
CREATE TRIGGER CHECK_TGTN ON PhieuNhap
3.3.3 Bảng ChiTietThanhToan
Kiểm tra giá trị tại cột NgayThanhToan phải bằng ngày hiện hành khi có thêm một dòngmới
CREATE TRIGGER CHECK_ChiTietThanhToan ON ChiTietThanhToan
FOR INSERT, UPDATE
AS
DECLARE @NTT datetime, @TienTT int
SET @NTT = NgayThanhToan FROM Inserted
IF (CONVERT(varchar,@NTT,101)!=CONVERT(varchar,getdate(),101))
BEGIN
PRINT'Ngay thanh toan phai lon hoac bang ngay hien hanh'
ROLLBACK TRANEND
Số tiền thanh toán cho mỗi lần phải lớn hơn 10,000 Kiểm tra tổng số tiền thanh toán chomột Phiếu Nhập có lớn hơn Tổng giá trị phiếu nhập hay không Nếu nhà cung cấp không cótài khoản ngân hàng thì không có hình thức thanh toán qua tài khoản
CREATE TRIGGER CHECK_CTTT_TIEN ON ChiTietThanhToan
FORINSERT,UPDATE