Đề tài Xây dựng cơ sở dữ liệu cho Quản lý mua bán

Ngày nay, hoạt động trao đổi buôn bán không còn xa lạ với chúng ta, với tốc độ phát triển một cách mạnh mẽ các ngành nghề kéo theo buôn bán kinh doanh cũng phát triển theo. Cũng suất phát từ đó vấn đề quản lí dữ liệu đã cần được quan tâm phát triển. Ví dụ việc quản lý xuất nhập hàng, mua bán hàng hóa va quản lý tồn kho, những vấn đề này cần được thực hiện một cách chính xác, chặt chẽ. Nhưng để tổ chức quản lý những công việc trên bằng phương pháp thủ công ghi chép thì không phải là một công việc đơn giản, không phải ai cũng làm được mà cần phải có một kỹ năng nghiệp vụ và cần 1 hệ thống, 1 cơ sở dữ liệu quản lý chặt chẽ và chính xác để vịêc mua bán kinh doanh thụân tịên hơn, và nhất là không dẫn đến những thiệt hại cho hoạt động buôn bán. Vậy nên phương pháp thủ công này thì mất nhiều công sức và dễ bị nhầm lẫn.Vì lý do đó nhóm em chọn đề tài này để thực hành vịêc kinh doanh, quản lý vịêc mua bán, trau dồi kinh nghiệm và nhất là cách xây dựng 1 csdl bằng việc ứng dụng công nghệ thông tin.

doc26 trang | Chia sẻ: tuandn | Lượt xem: 4283 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng cơ sở dữ liệu cho Quản lý mua bán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TIỂU LUẬN MÔN HỌC HỆ CƠ SỞ DỮ LIỆU ĐỀ TÀI: QUẢN LÝ MUA BÁN GVHD: Trần Thị Kim Chi Sinh viên thực hiện: Phạm Phú Nhân 09203631 Hoàng Anh Tuấn 09170111 Phạm Hải Băng 09219351 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM TP.HCM 11/2010 PHỤ LỤC I.GIỚI THIỆU ĐỀ TÀI 1. Mụch đích chọn đề tài 2. Yêu cầu đề tài II. XÂY DỰNG MÔ HÌNH THỰC THỂ KẾT HỢP Kiểu thực thể Các thuộc tính Các mối quan hệ Mô hình thực thể kết hợp III. MÔ HÌNH QUAN HỆ IV. CÁC RÀNG BUỘC V. ĐẠI SỐ QUAN HỆ B. NỘI DUNG I. GIỚI THIỆU ĐỀ TÀI 1. Mụch đích chọn đề tài Ngày nay, hoạt động trao đổi buôn bán không còn xa lạ với chúng ta, với tốc độ phát triển một cách mạnh mẽ các ngành nghề kéo theo buôn bán kinh doanh cũng phát triển theo. Cũng suất phát từ đó vấn đề quản lí dữ liệu đã cần được quan tâm phát triển. Ví dụ việc quản lý xuất nhập hàng, mua bán hàng hóa va quản lý tồn kho, những vấn đề này cần được thực hiện một cách chính xác, chặt chẽ. Nhưng để tổ chức quản lý những công việc trên bằng phương pháp thủ công ghi chép thì không phải là một công việc đơn giản, không phải ai cũng làm được mà cần phải có một kỹ năng nghiệp vụ và cần 1 hệ thống, 1 cơ sở dữ liệu quản lý chặt chẽ và chính xác để vịêc mua bán kinh doanh thụân tịên hơn, và nhất là không dẫn đến những thiệt hại cho hoạt động buôn bán. Vậy nên phương pháp thủ công này thì mất nhiều công sức và dễ bị nhầm lẫn.Vì lý do đó nhóm em chọn đề tài này để thực hành vịêc kinh doanh, quản lý vịêc mua bán, trau dồi kinh nghiệm và nhất là cách xây dựng 1 csdl bằng việc ứng dụng công nghệ thông tin. 2. yêu cầu đề tài Công ty ABC cần quản lý việc mua bán các mặt hàng cho các đại lý với mô tả như sau: Mỗi mặt hàng cần được lưu trữ các thông tin cơ bản sau: mã hàng (không trùng nhau), tên hàng, đơn vị tính, mô tả, tên nhà sản xuất, đơn giá, số lượng tồn kho. Các đại lý bán/mua hàng cũng cần được lưu lại các thông tin như: Mã số đại lý (không trùng nhau), tên đại lý, địa chỉ của đại lý, số điện thoại, số Fax, địa chỉ Email, tên người đại diện. Dữ liệu bán/mua cần được lưu trữ riêng biệt. Mỗi lần bán/mua hàng: công ty cần lưu lại thông tin từ các hoá đơn bán/mua bao gồm các thông tin: số hoá đơn, ngày bán/mua, họ tên và địa chỉ của người mua/ người bán (đại lý), tổng số tiền mua/bán, số tiền thuế VAT, tổng số tiền sau khi đã tính thuế, người lập phiếu (người phụ trách việc mua/bán). Bên cạnh các thông tin trên, công ty cũng cần lưu lại thông tin chi tiết của từng hoá đơn như: số hoá đơn, mã hàng đươc bán/mua, số lượng bán/mua, đơn giá của từng mặt hàng. Yêu cầu được đề ra là xây dựng cơ sở dư cho cty qản lý vịêc mua bán với các đại lý sỉ, lẻ. dễ dàng, thụân tiện cho việc qản lý, giảm chi phí do tiền chi cho nhân công, tránh các thiệt hại không đáng có do sai sót của người quản lý. II .XÂY DỰNG MÔ HÌNH THỰC THỂ KẾT HỢP Kiểu thực thể KHACHHANG MATHANG HDNHAP HDXUAT Các thuộc tính *KHACHHANG Makh( khóa chính ) Tenkh Diachi Sdt Fax Email Daidien *MATHANG Mamh (khóa chính) tenmh dvt mota nsx dongia slton *HDNHAP sohdnhap(khóa chính) ngaynhap makh(khóa ngoại) *HDXUAT sohdxuat(khóa chính) makh (khóa ngoại) ngayxuat Các mối quan hệ Giữa khách hàng (đại lý) và hóa đơn nhập (hóa đơn mua hàng của cửa hàng) KHACHANG HDNHAP Sohdnhap Ngaynhap makh 1 23/1/2010 1 2 14/2/2010 1 3 14/2/2010 2 4 23/1/2010 3 Một khách hàng hay một đại lý thì có thể bán cho cửa hàng của chúng ta một hoặc nhiều lần cần thiết và sẽ có một hoặc nhiều hóa đơn , tuy nhiên một hóa đơn nhập hàng của cửa hàng chúng ta thì lại là của một và chỉ một đại lý duy nhất. Giữa khách hàng (đại lý) và hóa đơn xuất (hd bán hàng của cửa hàng) HDXUAT KHACHANG Sohdxuat Ngaynhap makh 1 21/1/2010 1 2 19/2/2010 1 3 17/2/2010 2 4 26/1/2010 3 Một khách hàng hay một đại lý thì có thể mua một hoặc nhiều mặt hàng từ cửa hàng của chúng ta và sẽ có một hoặc nhiều hóa đơn , tuy nhiên một hóa đơn bán hàng của cửa hàng chúng ta thì lại là của một và chỉ một đại lý duy nhất. Giữa mặt hàng và hóa đơn nhập HDNHAP MATHANG Trong một hóa đơn nhập hàng (hd mua hàng của đại lý ) thì có thể có nhiều mặt hàng trong đó và ngược lại một mặt hàng thì cũng có thể có mặt trong nhiều hóa đơn nhập khác nhau vì vậy xuất hiện mối quan hệ nhiều nhiều yêu cầu ta phải đưa về quan hệ một nhiều bằng cách thêm một quan hề khác đó là chi tiết hóa đơn nhập (CTNHAP) gồm các thuộc tính sau: *CTNHAP sohdnhap (khóa chính) mamh (khóa chính) soluong dg vat tt Giữa mặt hàng và hóa đơn xuất HDXUAT MATHANG Trong một hóa đơn xuất hàng (hd bán hàng của đại lý ) thì có thể có nhiều mặt hàng trong đó và ngược lại một mặt hàng thì cũng có thể có mặt trong nhiều hóa đơn xuất khác nhau vì vậy xuất hiện mối quan hệ nhiều nhiều yêu cầu ta phải đưa về quan hệ một nhiều bằng cách thêm một quan hề khác đó là chi tiết hóa đơn xuất (CTXUAT) gồm các thuộc tính sau: *CTNHAP sohdxuat (khóa chính) mamh (khóa chính) soluong dg vat tt Xây dựng mô hình thực thể kết hợp III. MÔ HÌNH QUAN HỆ KHACHHANG (makh,tenkh,diachi,daidien) MATHANG (mamh, tenmh, dvt, mota, nsx, dongia, slton) HDNHAP (sohdnhap,ngaynhap,makh,tongtien) HDXUAT (sohdxuat, ngayxuat, makh,tongtien) SDT (makh, sdt) FAX (makh, fax) EMAIL (makh, email) CTNHAP (sohdnhap, mamh, soluong, dg, vat, tt) CTXUAT (sohdxuat, mamh, soluong, dg, vat, tt) IV. CÁC RÀNG BUỘC KHACHHANG Với r là một quan hệ của khách hàng ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1.MAKH ≠ t2.MAKH R1 Thêm Xóa Sửa R + - + R2: " t € r t.tenkh is not null R2 Thêm Xóa Sửa R + - + MATHANG Với r là một quan hệ của mặt hàng ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1.MAMH ≠ t2.MAMH R1 Thêm Xóa Sửa R + - + R2: " t € r t.tenmh is not null R2 Thêm Xóa Sửa R + - + R3: " t € r t.dongia is not null R3 Thêm Xóa Sửa R + - + R4: " t € r t.dvt is not null R4 Thêm Xóa Sửa R + - + R5: " t € r t.nsx is not null R5 Thêm Xóa Sửa R + - + HDNHAP Với r là một quan hệ của hóa đơn nhập ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1.sohdnhap ≠ t2.sohdnhap R1 Thêm Xóa Sửa R + - + R2: " t € r t.ngaynhap is not null R2 Thêm Xóa Sửa R + - + R3 : " t € r t.tongtien is not null R3 Thêm Xóa Sửa R + - + Với r, s lần lượt là một quan hệ của HDNHAP, KHACHHANG ta có ràng buộc toàn vẹn sau R r [makh] Í s[makh] R3 Thêm Xóa Sửa R + - + S - + - HDXUAT Với r là một quan hệ của hóa đơn xuất ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1.sohdxuat ≠ t2.sohdxuat R1 Thêm Xóa Sửa R + - + R2: " t € r t.ngayxuat is not null R2 Thêm Xóa Sửa R + - + R3 : " t € r t.tongtien is not null R3 Thêm Xóa Sửa R + - + Với r, s lần lượt là một quan hệ của HDXUAT, KHACHHANG ta có ràng buộc toàn vẹn sau R r [makh] Í s[makh] R3 Thêm Xóa Sửa R + - + S - + - CTNHAP Với r là một quan hệ của CTNHAP ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1. sohdnhap, mamh ≠ t2. sohdnhap, mamh R1 Thêm Xóa Sửa R + - + R2: " t € r t.soluong is not null R2 Thêm Xóa Sửa R + - + R3: " t € r t.dg is not null R3 Thêm Xóa Sửa R + - + R4: " t € r t.VAT is not null R4 Thêm Xóa Sửa R + - + R5: " t € r t.tt is not null R5 Thêm Xóa Sửa R + - + CTXUAT Với r là một quan hệ của CTXUAT ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1. sohdxuat, mamh ≠ t2. sohdxuat, mamh R1 Thêm Xóa Sửa R + - + R2: " t € r t.soluong is not null R2 Thêm Xóa Sửa R + - + R3: " t € r t.dg is not null R3 Thêm Xóa Sửa R + - + R4: " t € r t.VAT is not null R4 Thêm Xóa Sửa R + - + R5: " t € r t.tt is not null R5 Thêm Xóa Sửa R + - + EMAIL Với r là một quan hệ của EMAIL ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1. makh ≠ t2. makh R1 Thêm Xóa Sửa R + - + FAX Với r là một quan hệ của FAX ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1. makh ≠ t2. makh R1 Thêm Xóa Sửa R + - + Với r là một quan hệ của EMAIL ta có các ràng buộc toàn vẹn sau: R1: " t1, t2 € r t1. makh ≠ t2. makh R1 Thêm Xóa Sửa R + - + V. ĐẠI SỐ QUAN HỆ Liệt kê tên các kh mua loại hàng có mã F5 Ptenkh(KHACHHANG mamh=mamh smamh=‘F5’(MATHANG)) liệt kê các mặt hàng có đơn giá =5tr sdongia=5tr (MATHANG) Liệt kê các công ty nhập & xuất có số lượng bằng nhau HDNHAP HDXUAT soluong=soluong Lịêt kê các mặt hàng có số lượng tồn >=50 sslton=50 v slton>50 (MAT HANG) Liệt kê những khách hàng mua mặt hàng là ‘ca’ smamh=ca CTXUAT HDXUAT Sohdxuat=Sohdxuat VI. TRUY VẤN SQL --tạo cơ sở dữ liệu bán hàng CREATE DATABASE banhang ON PRIMARY ( NAME=BH1_data, filename='D:\tieuluan\BH1.mdf', SIZE=10,MAXSIZE=50,FILEGROWTH=15% ), ( NAME=BH2_data, filename='D:\tieuluan\BH2.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=15%), FILEGROUP BH1group ( NAME=BH3_data, FILENAME='D:\tieuluan\BH3.ndf', SIZE=10,MAXSIZE=50,FILEGROWTH=5%) LOG ON ( NAME=BH_log, FILENAME='D:\tieuluan\BH.ldf', SIZE=5, MAXSIZE=25, FILEGROWTH=5%) drop table mathang use banhang drop table ctxuat --tạo bảng khách hàng create table KHACHHANG ( MAKH char(5)not null PRIMARY KEY, TENKH Varchar(30) NOT NULL, DIACHI Varchar(40), DAIDIEN VARCHAR(30) ) --tạo bảng mặt hàng create table MATHANG ( mamh char(5) not null PRIMARY KEY, tenmh Varchar(20)unique not null, dvt char(10)not null, mota VARCHAR(20), nsx DateTime NOT NULL, dongia smallmoney not null, slton int ) --tạo bảng chi tiết nhập hàng hóa create table ctnhap ( sohdnhap int identity not null, mamh char(5) not null, soluong int not null, dg smallmoney, vat float , tt as((soluong*dg)+(soluong*dg*vat)/100), primary key (sohdnhap,mamh) ) --tạo bảng chi tiết xuất hàng hóa create table ctxuat ( sohdxuat int identity not null, mamh char(5) not null, soluong int not null,dg smallmoney, vat float , tt as((soluong*dg)+(soluong*dg*vat)/100), primary key (sohdxuat,mamh) ) --tạo bảng hóa đơn nhập create table hdnhap ( sohdnhap int identity not null primary key, makh char(5) foreign key references khachhang(makh), ngaynhap DateTime NOT NULL DEFAULT (GetDate()), tongtien float ) --tạo bảng hóa đơn xuất create table hdxuat ( sohdxuat int identity not null primary key, makh char(5) foreign key references khachhang(makh), ngayxuat DateTime NOT NULL DEFAULT (GetDate()), tongtien float ) --tạo bảng số điện thoại của khách hàng create table sdt ( makh char(5) primary key, sodt char(12) ) --tạo bảng địa chỉ email của khách hàng create table email ( makh char(5) primary key, email char(40) ) --tạo bảng số fax của khách hàng create table fax ( makh char(5) primary key, fax char(20) ) --các câu lệnh truy vấn --Cho biết hai mặt hàng có cùng đơn giá SELECT mh1.tenmh, mh2.tenmh,mh1.dongia FROM mathang mh1, mathang mh2 WHERE mh1.dongia = mh2.dongia --Danh sách các hoá đơn gồm Mahd, tenkh SELECT h.makh, tenkh FROM hdnhap h, khachhang k WHERE h.makh = k.makh --Cho biết tổng tiền xuất của từng khách hàng SELECT makh, SUM ((soluong*dg)+(soluong*dg*vat)/100) AS Total FROM ctxuat c,hdxuat h where c.sohdxuat=h.sohdxuat GROUP BY makh --Cho biết tổng tiền của từng hóa đơn SELECT sohdnhap, SUM((soluong*dg)+(soluong*dg*vat)/100) AS Total FROM ctnhap GROUP BY sohdnhap --Cho biết trung bình thu được theo từng hóa đơn SELECT sohdnhap, AVG ((soluong*dg)+(soluong*dg*vat)/100) AS AVGTOTAL FROM ctnhap GROUP BY sohdnhap --Cho biết các sản phẩm có đơn giá cao nhất SELECT * FROM mathang WHERE dongia>= ALL (SELECT dongia FROM mathang) --Cho biết các sản phẩm có đơn vị tính có chữ cai và có đơn giá cao nhất SELECT * FROM mathang WHERE dvt like '%cai%' and dongia >= ALL (SELECT dongia FROM mathang) --liệt kê những khách hàng cùng địa chỉ select distinct a.makh,a.tenkh,a.diachi from khachhang a,khachhang b where a.makh!=b.makh and a.diachi=b.diachi; --liệt kê nhữn khách hàng mua nhiều hơn 2 sản phẩm select a.makh, a.tenkh,sosp=count(c.mamh) from ctxuat c,khachhang a,hdxuat b where a.makh=b.makh and b.Sohdxuat=c.Sohdxuat group by a.makh, a.tenkh having count(c.mamh)>=2; --liệt kê những mặt hàng còn tồn trong kho select * from mathang where slton>0 --liệt kê mặt hàng tên là cam select * from mathang where tenmh like 'cam'