xây dựng Cơ sở dữ liệu quản lý xuất nhập đĩa cho các cửa hàng vừa và nhỏ, áp dụng cho Cửa hàng đĩa Heaven
Trang 1MỤC LỤC
MỞ ĐẦU 2
CHƯƠNG I: KHẢO SÁT HỆ THỐNG 4
I MÔ TẢ HỆ THỐNG 4
1) Tổng quan 4
2) Quy trình xử lý 4
II YÊU CẦU TIN HỌC HÓA 7
1) Nội dung đề tài 7
2) Mô tả yêu cầu 7
III GIẢI QUYẾT VẤN ĐỀ 8
CHƯƠNG II: MÔ HÌNH THỰC THỂ LIÊN KẾT E-R VÀ MÔ HÌNH QUAN HỆ 9
I CÁC BƯỚC XÂY DỰNG 9
II KÝ HIỆU SỬ DỤNG 9
III ÁP DỤNG BÀI TOÁN 9
CHƯƠNG III: CƠ SỞ DỮ LIỆU SQL SERVER 2005 14
I MÔ TẢ CÁC BẢNG VÀ QUAN HỆ 14
1) Mô tả các bảng trong cơ sở dữ liệu 14
2) Các bảng của cơ sở dữ liệu 14
3) Sơ đồ mô tả mối quan hệ giữa các bảng 17
II CÁC THỦ TỤC MÔ TẢ YÊU CẦU CỦA CƠ SỞ DỮ LIỆU 17
1) Các thủ tục mô tả chức năng cơ bản 17
2) Các thủ tục mô tả chức năng được yêu cầu 18
3) Chi tiết các Store Procedure thực thi yêu cầu 19
PHỤ LỤC PHỤ LỤC 1: KẾ HOẠCH TỔNG THỂ 24
PHỤ LỤC 2: BIÊN BẢN KHẢO SÁT 28
PHỤ LỤC 3: ĐÁNH GIÁ THÀNH VIÊN 33
Trang 2MỞ ĐẦU
Ngày nay xã hội phát triển không ngừng nhanh chóng, xã hội càng phát triển thì thông tincàng to lớn dồi dào, phong phú và đa dạng Thông tin thực sự trở thành nguồn tài nguyên vôcùng quý giá trong đời sống khoa học kỹ thuật, kinh doanh cũng như mọi hoạt động khác của xãhội Những ứng dụng tin học đã trợ giúp con người sản xuất hiệu quả thúc đẩy các tiến trình làmviệc được nhanh chóng Khi lượng thông tin gia tăng thì nhu cầu của việc quản lý, tổ chức và xử
lý thông tin có một ý nghĩa quan trọng đối với những người lãnh đạo Trước những nhu cầu nhưvậy thì việc lưu trữ và xử lý thông tin bằng phương pháp thủ công và sổ tay truyền thống khôngcòn phù hợp nữa Chính vì vậy vấn đề quan trọng đựơc đặt ra là làm thế nào để khai thác nhanh,chính xác và hiệu quả lượng thông tin quý giá đó chỉ có máy tính là cộng cụ điện tử cho phép xử
lý nhanh chóng các nhu cầu khác nhau, sản phẩm của nó được ứng dụng rộng rãi trong thực tiễn.Tin học thực sự trở là một ngành khoa học về các quá trình thu thập xử lý và lưu trữ thông tinmột cách có hiệu quả nhất, ý thức được vai trò và ý nghĩa quan trọng đó nên trong lần làm báocáo bài tập lớn môn Đồ án Cơ sở dữ liệu này nhóm xin được ứng dụng tin học vào công tác quản
lý đĩa của cửa hàng bán đĩa Heaven Thực hiện hình thức quản lý bán đĩa một cách khoa học vàhiệu quả, tiết kiệm chi phí cho cửa hàng cũng như đem lại sự thoải mái nhất cho khách hàng khimua hàng
1 Mục đích, ý nghĩa của báo cáo:
Nghiên cứu, phân tích hệ thống quản lý đĩa nhằm xây dựng Cơ sở dữ liệu quản lý xuất nhậpđĩa cho các cửa hàng vừa và nhỏ, áp dụng cho Cửa hàng đĩa Heaven
Xây dựng Cơ sở dữ liệu cho chương trình quản lý bán đĩa, qua đó rút ra các kinh nghiệm thựctiễn để xây dựng các chương trình quản lý bán hàng nói chung và quản lý cửa hàng đĩa nói riêng
và mang ý nghĩa thực tiễn
2 Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu gồm:
Các loại đĩa, hiểu phương thức phân loại đĩa
Các hoá đơn nhập xuất
Phạm vi nghiên cứu: trong một cửa hàng bán đĩa cụ thể
3 Kết cấu và nội dung của báo cáo
Trang 3- Tên báo cáo.
- Báo cáo gồm:
Mở đầu
Chương I: Khảo sát hệ thống
Chương II: Mô hình thực thể liên kết E-R và Mô hình quan hệ
Chương III: Cơ sở dữ liệu SQL Server 2005
2 E-R Entity Relationship Mô hình thực thể liên kết
Trang 4Chủ cửa hàng sẽ có thể thống kê một cách cụ thể doanh thu, số lượng,… bất kỳ lúc nào theomong muốn và theo dõi thông tin bán hàng của nhân viên.
2) Quy trình xử lý
2.1 Phân loại đĩa
- Đĩa trò chơi dành cho các thể loại máy khác nhau được đánh mã theo thể loại bao gồm:
Đĩa PC: dành để cài đặt cho các máy vi tính cá nhân
Đĩa PS2: dành cho dòng máy PlayStation 2 của Sony
Đĩa Xbox: dành cho dòng máy Xbox 360, Xbox Live của Microsoft
Đĩa Wii: dành cho dòng máy Wii của Nintendo
- Đĩa phần mềm gồm các phiên bản hệ điều hành và các phần mềm thông dụng được đánh
mã S+Tên thể loại bao gồm:
Đĩa hệ điều hành: gồm các phiên bản hệ điều hành Windows từ Windows 98 đếnWindows 7 và các phiên bản Linux ít phổ thông: Fedora, Ubuntu,…
Đĩa phần mềm tiện ích: gồm các đĩa phần mềm tiện ích khối văn phòng như bộMicrosoft Office, HTKK Thuế,… và các phần mềm chuyên dụng phục vụ khối thiết
kế như Adobe Photoshop, AutoCAD, CorelDRAW,…
Ngoài ra gồm các đĩa phần mềm phổ thông khác
Trang 52.2 Phương thức triển khai hoá đơn
- Coi đối tượng khách hàng vừa là nguồn nhập hàng, vừa là khách mua hàng
- Hoá đơn được triển khai làm 2 loại chính: Nhập hàng và Xuất hàng
2.3 Mục tiêu của cơ sở dữ liệu
- Đầy đủ các chức năng cơ bản để nhập xuất dữ liệu cho từng bảng
- Thực hiện thêm các yêu cầu quản lý như: thống kê, báo cáo, theo yêu cầu của công việc kinh doanh
2.4 Một số mẫu biểu
Qua quá trình khảo sát trên, tại cửa hàng đĩa Heaven có các mẫu biểu sau:
- Đơn đặt hàng:
Cửa hàng đĩa Heaven
Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội
Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx
ĐƠN ĐẶT HÀNG
Họ tên: ………
Địa chỉ: ………
………
Điện thoại: ………
Hình thức thanh toán: ………
STT Mã đĩa Tên đĩa Số lượng Đơn giá Thành tiền 1 x X x x x Cộng tiền hàng: ………
Tổng cộng thanh toán: ………
Số tiền viết bằng chữ: ………
Người mua hàng
(Ký, ghi rõ họ tên)
Người bán hàng
(Ký, ghi rõ họ tên)
Trang 6- Hoá đơn nhập hàng:
Đơn vị bán hàng:………
Địa chỉ: ………
Số tài khoản: ……….
Điện thoại: ………
HOÁ ĐƠN NHẬP HÀNG Đơn vị mua hàng: Cửa hàng đĩa Heaven Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx Số tài khoản: 1234-5678-ABCD Hình thức thanh toán: ………
STT Mã đĩa Tên đĩa Số lượng Đơn giá Thành tiền 1 x X x x x Cộng tiền hàng: ………
Tổng cộng thanh toán: ………
Số tiền viết bằng chữ: ………
Người giao hàng (Ký, ghi rõ họ tên) Người nhận hàng (Ký, ghi rõ họ tên) - Hoá đơn bán hàng: Cửa hàng đĩa Heaven Địa chỉ: 668 đường Láng - Đống Đa - Hà Nội Điện thoại: (04)3xxxxxxx - Di động: 098xxxxxxx HOÁ ĐƠN BÁN HÀNG Họ tên: ………
Địa chỉ: ………
Điện thoại: ………
Hình thức thanh toán: ………
STT Mã đĩa Tên đĩa Số lượng Đơn giá Thành tiền 1 x X x x x Cộng tiền hàng: ………
Tổng cộng thanh toán: ………
Số tiền viết bằng chữ: ………
Người mua hàng
(Ký, ghi rõ họ tên)
Người bán hàng
(Ký, ghi rõ họ tên)
Trang 7II YÊU CẦU TIN HỌC HÓA
1) Nội dung đề tài
Với nhu cầu thông tin và quy mô kinh doanh ngày càng mở rộng của cửa hàng, tạo điều kiệnthuận lợi cho việc quản lý đĩa cũng như việc nhập xuất đĩa và truy xuất thông tin nhanh chóng vềđĩa Do đó CSDL đòi hỏi phải lập trình để thực hiện được đầy đủ các thao tác nhập xuất, thống
kê thông tin một cách đầy đủ và cụ thể, giúp cho cập nhật những đĩa mới cho cửa hàng nhanhchóng, dễ hàng hơn
Nhân viên phải nhập các thông tin cho các đĩa mới, nhà cung cấp mới, khách hàng mới vàotrong dữ liệu và có sự kiểm tra về tính chính xác, đúng đắn của dữ liệu
Nhân viên được phép chỉnh sửa, xóa những thông tin sai, không phù hợp theo quyền hạn chophép
Chủ cửa hàng theo dõi quá trình mua bán, thống kê doanh thu của cửa hàng
2) Mô tả yêu cầu
Yêu cầu chức năng:
Liệt kê thông tin Đĩa:
o Toàn bộ
o Theo thời gian
o Theo nhân viên
o Theo khách hàng
Liệt kê nhân viên theo doanh thu
Thống kê tổng doanh thu:
Trang 8o Theo tháng
o Theo năm
Liệt kê các đĩa chưa bán
Liệt kê các đĩa bán chạy nhất
III GIẢI QUYẾT VẤN ĐỀ
Từng bước đi vào phân tích, thiết kế hệ thống để giải quyết vấn đề
Khảo sát: Tiến hành khảo sát ở một khu vực, địa chỉ cụ thể để lấy thông tin thực tế
Mô hình hóa nghiệp vụ: Dựa trên khảo sát thực trạng, mô hình hóa các nghiệp vụ bằng
mô hình thực thể liên kết, từ đó chuyển sang mô hình quan hệ
Thiết kế: Từ kết quả ở các mô hình quan hệ, triển khai thiết kế CSDL để đạt được cáckết quả như mong muốn
Trang 9CHƯƠNG II: MÔ HÌNH THỰC THỂ LIÊN KẾT E-R
VÀ MÔ HÌNH QUAN HỆ
I CÁC BƯỚC XÂY DỰNG
- Bước 1: Xác định các thực thể.
- Bước 2: Đặc tả mô hình.
- Bước 3: Mô hình thực thể liên kết.
- Bước 4: Mô hình quan hệ.
II KÝ HIỆU SỬ DỤNG
- Thuộc tính:
- Tập thực thể:
- Quan hệ:
- (min,max): Ràng buộc liên kết
III ÁP DỤNG BÀI TOÁN
Trang 10KhachHang (Khách hàng):
SDT Số điện thoại khách hàng Text
Email Thư điện tử khách hàng Text
NhanVienBH (Nhân viên bán hàng):
TheLoaiDia (Thể loại đĩa):
Trang 11Dia (Đĩa):
HoaDon (Hoá đơn):
CTiet_HD (Chi tiết hoá đơn):
Trang 12- Bước 3: Mô hình thực thể liên kết
Hình 2.1: Mô hình thực thể liên kết của cửa hàng bán đĩa
- Bước 4: Mô hình quan hệ
Trang 13+ KhachHang (MaKH, TenKH, Dchi_KH, SDT, Email)
+ NhanVienBH (MaNV, TenNV, Dchi_NV)
+ Dia (MaDia, TenDia, MaTL)
+ TheLoaiDia (MaTL, TenTL)
+ HoaDon (MaHD, NgayBan, MaNV, MaKH, MaLoai)
+ CTiet_HD (MaHD, MaDia, SoLuong, DonGia)
+ LoaiPhieu (MaLoai, TenLoai)
Trang 14CHƯƠNG III: CƠ SỞ DỮ LIỆU SQL SERVER 2005
I MÔ TẢ CÁC BẢNG VÀ QUAN HỆ
1) Mô tả các bảng trong cơ sở dữ liệu
1 NhanVienBH Nhân viên bán hàng Các thông tin về nhân viên
2 KhachHang Khách hàng Các thông tin về khách hàng
3 HoaDon Hoá đơn Thông tin chung về giao dịch
4 CTiet_HD Chi tiết hoá đơn Thông tin chi tiết về từng đĩa được giao dịch
5 LoaiPhieu Loại phiếu xuất nhập Cho biết loại hoá đơn là nhập hay bán hàng
6 Dia Đĩa Cho biết thông tin chung về Đĩa
7 TheLoaiDia Thể loại đĩa Cho biết Đĩa đó thuộc thể loại gì
2) Các bảng của cơ sở dữ liệu
Trang 173) Sơ đồ mô tả mối quan hệ giữa các bảng
Hình 3.1: Mối quan hệ giữa các bảng trong CSDL
II CÁC THỦ TỤC MÔ TẢ YÊU CẦU CỦA CƠ SỞ DỮ LIỆU
1) Các thủ tục mô tả chức năng cơ bản
dbo.sp_Insert[Tên bảng] Nhập dữ liệu cho các bảng
dbo.sp_Delete[Tên bảng] Xoá dữ liệu ở từng bảng Cho phép sửa, xoá, thống kê
đầy đủ theo các khoá, các trường
dbo.sp_Update[Tên bảng] Sửa dữ liệu ở từng bảng
dbo.sp_Select[Tên bảng] Thống kê dữ liệu ở từng bảng
2) Các thủ tục mô tả chức năng được yêu cầu
Trang 182 dbo.yc_1a_LietKeDia Liệt kê đĩa theo thể loại
3 dbo.yc_1b_LietKeDia Liệt kê đĩa theo hoá đơn
nhân viên
6 dbo.yc_3_NhanVien Liệt kê 3 nhân viên bán hàng thu được
doanh thu nhiều nhất
Thống kê
doanh thu
7 dbo.yc_4_DoanhThu Tổng doanh thu bán hàng
8 dbo.yc_4a_DoanhThu Tổng doanh thu bán hàng theo tháng
9 dbo.yc_4b_DoanhThu Tổng doanh thu bán hàng theo nămBáo cáo
tổng hợp
nhập, xuất
10 dbo.yc_5_BaoCaoChung Báo cáo chung
11 dbo.yc_5a_BaoCaoThang Báo cáo theo tháng
12 dbo.yc_5b_BaoCaoNam Báo cáo theo năm
Thống kê
sự phổ biến
của đĩa
13 dbo.yc_6_DiaKoBanDuoc Thống kê các đĩa không bán được trong
toàn bộ thời gian
14 dbo.yc_6a_DiaKoBanDuoc Thống kê các đĩa không bán được theo
tháng
15 dbo.yc_6b_DiaKoBanDuoc Thống kê các đĩa không bán được theo
năm
16 dbo.yc_7_DiaBanChay Thống kê 10 đĩa bán chạy nhất
17 dbo.yc_7a_DiaBanChay Thống kê 10 đĩa bán chạy nhất theo tháng
18 dbo.yc_7b_DiaBanChay Thống kê 10 đĩa bán chạy nhất theo năm
3) Chi tiết các Store Procedure thực thi yêu cầu
Trang 19Liệt kê
thông tin
toàn bộ Đĩa
SELECT Dia MaDia , Dia TenDia , TheLoaiDia TenTL ,
SUM ( CTiet_HD SoLuong ) AS SoLuong , CTiet_HD DonGia , LoaiPhieu TenLoai
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN LoaiPhieu ON HoaDon MaLoai = LoaiPhieu MaLoai GROUP BY Dia MaDia , Dia TenDia , TheLoaiDia TenTL , CTiet_HD DonGia , HoaDon MaLoai , LoaiPhieu TenLoai
SELECT Dia MaDia , Dia TenDia , TheLoaiDia TenTL ,
SUM ( CTiet_HD SoLuong ) AS SoLuong , CTiet_HD DonGia , LoaiPhieu TenLoai
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN LoaiPhieu ON HoaDon MaLoai = LoaiPhieu MaLoai WHERE TheLoaiDia TenTL = @TenTL
GROUP BY Dia MaDia , Dia TenDia , TheLoaiDia TenTL , CTiet_HD DonGia , HoaDon MaLoai , LoaiPhieu TenLoai
SELECT Dia MaDia , Dia TenDia , TheLoaiDia TenTL ,
SUM ( CTiet_HD SoLuong ) AS SoLuong , CTiet_HD DonGia , LoaiPhieu TenLoai
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN LoaiPhieu ON HoaDon MaLoai = LoaiPhieu MaLoai WHERE LoaiPhieu TenLoai = @LoaiHD
GROUP BY Dia MaDia , Dia TenDia , TheLoaiDia TenTL , CTiet_HD DonGia , HoaDon MaLoai , LoaiPhieu TenLoai
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongTien
HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN KhachHang ON HoaDon MaKH = KhachHang MaKH
WHERE HoaDon MaLoai = 'PX'
GROUP BY KhachHang MaKH , KhachHang TenKH , KhachHang Dchi_KH , KhachHang SDT , KhachHang Email ORDER BY TongTien DESC
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongTien
HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN KhachHang ON HoaDon MaKH = KhachHang MaKH
WHERE HoaDon MaLoai = 'PX' AND KhachHang Dchi_KH = @DiaChi GROUP BY KhachHang MaKH , KhachHang TenKH ,
KhachHang Dchi_KH , KhachHang SDT , KhachHang Email ORDER BY TongTien DESC
Trang 20SELECT SUM ( ch SoLuong * ch DonGia ) AS DoanhThu
HoaDon ON ch MaHD = HoaDon MaHD WHERE DATEPART ( MONTH , HoaDon NgayBan ) = @Thang AND
DATEPART ( YEAR , HoaDon NgayBan ) = @Nam
9
Doanh thu
bán hàng
theo năm
SELECT SUM ( ch SoLuong * ch DonGia ) AS DoanhThu
HoaDon ON ch MaHD = HoaDon MaHD WHERE DATEPART ( YEAR , HoaDon NgayBan ) = @Nam
10 Báo cáo
chung
SELECT Dia MaDia , Dia TenDia , tld TenTL , A TongNhap ,
B TongXuat FROM Dia INNER JOIN TheLoaiDia tld ON tld MaTL = Dia MaTL LEFT JOIN
(
SELECT Dia MaDia ,
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongNhap
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN
HoaDon ON CTiet_HD MaHD = HoaDon MaHD HERE HoaDon MaLoai = 'PN' )
GROUP BY Dia MaDia ) A ON A MaDia = Dia MaDia LEFT JOIN
( SELECT Dia MaDia ,
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongXuat
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE HoaDon MaLoai = 'PX' ) GROUP BY Dia MaDia
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL LEFT JOIN (
SELECT Dia MaDia ,
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongNhap
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE HoaDon MaLoai = 'PN' ) GROUP BY Dia MaDia
) A ON A MaDia = Dia MaDia LEFT JOIN
( SELECT Dia MaDia ,
Trang 21SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongXuat
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE HoaDon MaLoai = 'PX' ) GROUP BY Dia MaDia
) B ON B MaDia = A MaDia WHERE DATEPART ( MONTH , HoaDon NgayBan ) = @Thang AND
DATEPART ( YEAR , HoaDon NgayBan ) = @Nam GROUP BY Dia MaDia , Dia TenDia , TheLoaiDia TenTL ,
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD INNER JOIN TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL LEFT JOIN (
SELECT Dia MaDia ,
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongNhap
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE HoaDon MaLoai = 'PN' ) GROUP BY Dia MaDia
) A ON A MaDia = Dia MaDia LEFT JOIN
( SELECT Dia MaDia ,
SUM ( CTiet_HD SoLuong * CTiet_HD DonGia ) AS TongXuat
Dia ON CTiet_HD MaDia = Dia MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE HoaDon MaLoai = 'PX' ) GROUP BY Dia MaDia
) B ON B MaDia = A MaDia WHERE DATEPART ( YEAR , HoaDon NgayBan ) = @Nam GROUP BY Dia MaDia , Dia TenDia , TheLoaiDia TenTL ,
TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL INNER JOIN CTiet_HD ON Dia MaDia = CTiet_HD MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE Dia MaDia NOT IN (
SELECT CTiet_HD MaDia FROM CTiet_HD INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD WHERE HoaDon MaLoai = 'PX' )
TheLoaiDia ON Dia MaTL = TheLoaiDia MaTL INNER JOIN CTiet_HD ON Dia MaDia = CTiet_HD MaDia INNER JOIN HoaDon ON CTiet_HD MaHD = HoaDon MaHD
WHERE Dia MaDia NOT IN (