Ngày nay, khi đời sống của con người ngày càng được nâng cao, thì nhu cầu về nhà ở càng trở nên phát triển mạnh. Nhiều ngôi nhà, khu trung cư mọc lên với chất lượng tốt đẹp. Vì thế mà nhiều cửa hàng, xí nghiệp kinh doanh vật liệu xây dựng mở lên, bán những vật liệu tốt, bền, đẹp.
9 trang |
Chia sẻ: vietpd | Lượt xem: 1467 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Đề tài Thiết kế cơ sở dữ liệu quản lí vật tư ở xí nghiệp, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BÀI BÁO CÁO THIẾT KẾ CƠ SỞ DỮ LIỆU
QUẢN LÍ VẬT TƯ Ở XÍ NGHIỆP
A: Đề tài: Thiết kế cơ sở dữ liệu quản lí vật tư ở xí nghiệp gồm các nội dung:
1. Khảo sát phân tích quy chế, quy định, cách tính, bảng biểu, báo cáo quản lí vật tư
2. Lập mô hình thực thể quan hệ và sơ đồ dòng dữ liệu
3. Thiết kế lược đò cơ sở dữ liệu đạt dạng chuẩn 3 hoặc boyce-code
4. Nhập dữ liệu test 1 tháng cho 20 loại vật tư, 20 phiếu nhập, 20 phiếu xuất vật tư
5. Viết các câu truy vấn lên các bảng kê nhập xuất vật tư, báo cáo nhập xuất tồn theo quý,theo năm và các yêu cầu khác
6. Cài đặt CSDL cho hệ quản trị CSDL ACCESS
B: NÔỊ DUNG BÁO CÁO
1. Khảo sát
Ngày nay, khi đời sống của con người ngày càng được nâng cao, thì nhu cầu về nhà ở càng trở nên phát triển mạnh. Nhiều ngôi nhà, khu trung cư mọc lên với chất lượng tốt đẹp. Vì thế mà nhiều cửa hàng, xí nghiệp kinh doanh vật liệu xây dựng mở lên, bán những vật liệu tốt, bền, đẹp.
Qua khảo sát tình hình quản lí vật tư ở một số xí nghiệp, cửa hàng. Thực tế đã cho thấy hầu hết các xí nghiệp đều dùng phương pháp thủ công là ghi chép để quản lí vật tư. Việc quản lí như vậy sẽ làm hiệu quả của công việc không cao, thiếu tính khoa học, khi cần tìm hay truy cập dữ liệu sẽ rất khó khăn.
Để quản lí vật tư được dễ dàng hơn, đáp ứng được yêu cầu cấp thiết của nhiều xí nghiệp kinh doanh vật tư, chúng em đã ứng dụng những hiểu biết của
mình về nguyên lí xây dựng cơ sở dữ liệu và những quy định, cách thức quản lí vật tư ở các xí nghiệp để thiết kế CSDL quản lí vật tư bằng ACCESS.
2. Phân tích quy chế
Hàng hoá nhập về phải đảm bảo nguồn gốc, có địa chỉ nhà cung cấp,giá xuất cho các đơn vị khác phải đảm bảo lớn hơn hoặc bằng giá mặt hàng nhập về. Số lượng hàng xuất đi phải đảm bảo nhỏ hơn hoặc bằng số lượng hàng có trong kho cộng với số lượng hàng nhập về.
Các kiểu thực thể đó là:
- dmcungung
- dmvattu
- donvi
- nhap
- xuat
- phieunhap
- phieuxuat
- vattuton
3. Lập mô hình thực thể quan hệ và sơ đồ dòng dữ liệu
a) Sơ đồ thực thể quan hệ
(1.n) )
(1.n) )
Của
Ngày nhập
Số phiếu
macty
tencty
Phiếu nhập
Cung ứng
diachi
Xuất
dienthoai
Nhập
Danh mục vật tư
Vật tư tồn
Soluong
dongia
nhập Người
tenvt
mavt
giatri
soluong
Donvi
tinh
soluong
n
madv
dongia
sophieu
tendv
ngayxuat
diachi
cho
n
Đơn vị
Phiếu xuất
nguoixuat
dienthoai
b) Sơ đồ dòng dữ liệu
Thông tin hợp đồng
Nơi cung ứng
Hợp đồng
Nhận hợp đồng nhập
D2
File nơi cung ứng
Trạng thái hợp đồng
Hợp lệ
File vật tư
Hợp dồng
Xuất
Viết phiếu xuất
Đơn vị xuất vật tư
Nhận hợp đồng xuất
File đơn vị xuất
Trang thái đơn vị
D3
Kiểm tra vật tư
D1
Viết phiếu nhập
Thông tin vật tư
Trạng thái vât tư
Thông tin đơn vị
Nhập
Hợp lệ
Hợp lệ
3. Thiết kế lược đồ cơ sở dữ liệu
+ Kiểu thực thể DMCUNGUNG có các thuộc tính:
- macty(mã của công ty cung ứng vật tư)
- tencty(tên công ty cung ứng vật t ư)
- diachi(địa chỉ công ty)
- dienthoai(điện thoại công ty)
+ Kiểu thực thể DMVATTU có các thuộc tính:
- mavt(mã của vật tư nhập về)
- tenvt(tên vật t ư)
- donvitinh(đon vi tính (cái, tấn, kg…))
+ Kiểu thực thể DONVI có các thuộc tính:
- madv(mã đơn vị mà cửa hang xuất ra)
- tendv(tên đơn vị mà cửa hàng xuất ra)
- diachi(địa chỉ của đơn vị mà của hàng xuất ra)
-dienthoai(số điện thoại của đơn vị đó)
+ Kiểu thực thể nhập có các thuộc tính
Sophieu(số phiếu nhập)
Mavt(mã vật tư cần nhập)
Soluong(số lượng vật tư nhập vào)
Dongia(đơn giá của các mặt hàng nhập vào)
+ Kiểu thực thể PHIEUNHAP có các thuộc tính:
Sophieu( số phiếu nhập)
Macty(mã công ty của mặt hàng nhập)
Ngaynhap( ngày nhập)
Người nhap( người nhập)
+ Kiểu thực thể XUAT có các thụôc tính:
Sophieu(số phiếu xuất)
Mavt(mã vật tư xuất)
Soluong(số lượng xuất)
Dongia(giá trị mỗi mựt hàng khi xuất)
+ Kiểu thực thể PHIEUXUAT có các thuộc tính:
Sophieu(số phiếu xuất)
Ngayxuat( ngày xuất)
Nguoixuat( người xuất)
+ Kiểu thực thể VATTUTON có các thuộc tính:
Tenvt(tên vật tư tồn),
Soluong( số lượng vật tư tồn)
Giatri( gái trị vật tư tồn)
Từ mô hình thực thể quan hệ ta có lược đồ cơ sở dữ liệu quan hệ như sau:
Dmcungung(macty, tencty, diachi, dienthoai)
Dmvattu(mavt, tenvt, donvitinh)
Donvi(madv, tendv, diachi, dienthoai)
Nhap(sophieu, mavt, soluong, dongia)
Phieunhap(sophieu, macty, ngaynhap, nguoinhap)
Xuat(sophieu, mavt, soluong, dongia)
Phieuxuat(sophieu, madv, ngayxuat, nguoixuat)
Vattuton(mavt,tenvt, soluong, donvitinh)
4. Viết các câu truy vấn
+ Câu truy vấn cho vật tư tồn
SELECT
dmvattu.mavt, vattuton.tenvt, +nhap!soluong+xuat!soluong-
vattuton!soluong AS [số lượng tồn], xuat!dongia*[số lượng tồn]
AS[thànhtiền]
From dmvattu ((INNER JOIN nhap ON dmvattu.mavt= nhap.mavt)
INNER JION vattuton ON dmvattu.mavt = vattuto.mavt) INNER JOIN xuat
ON dmvatt.mavt= xuat.mavt,
+ Câu truy vấn lãi suất của từng mặt hàng trong tháng
SELECT DISTINCT dmvattu.mavt, dmvattu.tenvt, Sum(xuat!soluong*xuat!dongia-xuat!soluong*nhap!dongia) AS [lãi suất]
FROM (dmvattu INNER JOIN nhap ON dmvattu.mavt=nhap.mavt) INNER JOIN xuat ON dmvattu.mavt=xuat.mavt
+ Câu truy vấn các mặt hàng đã nhập
SELECT
phieunhap.sophieu, phieunhap.macty, nhap.mavt, phieunhap.ngaynhap,
phieunhap.nguoinhap,nhap.soluong,nhap.dongia, nhap!soluong*nhap!dongia
AS [thành tiền]
FROM phieunhap INNER JOIN nhap ON phieunhap.sophieu = nhap.sophieu;
+ Câu truy vấn các mặt hàng đã xuất
SELECT
phieuxuat.sophieu, phieuxuat.madv, xuat.mavt, phieuxuat.ngayxuat,
phieuxuat.nguoixuat, xuat.soluong, xuat.dongia,
xuat!soluong*xuat!dongia AS [thành tiền]
FROM
phieuxuat INNER JOIN xuat ON phieuxuat.sophieu = xuat.sophieu;
+ Câu truy vấn tìm mã công ty cung ứng vật tư
SELECT dmvattu.mavt, dmvattu.tenvt, dmcungung.tencty
FROM(dmcungung INNER JOIN phieunhap ON dmcungung.macty =
phieunhap.macty) INNER JOIN (dmvattu INNER JOIN nhap On
dmvattu.mavt=nhap.mavt) ON phieunhap.sophieu = nhap.sophieu
GROUP BY dmvattu.mavt, dmvattu.tenvt, dmcungung.tencty, dmcungung.macty
HAVING (((dmcungung.macty)=[nhập mã công ty]));
+ Câu truy vấn tìm vật tư khi biết mã vật tư đó
SELECT dmvattu.mavt, dmvattu.tenvt, nhap.sophieu, nhap.soluong,
nhap.dongia,
xuat.sophieu, xuat.soluong, xuat.dongia
FROM (dmvattu INNER JOIN nhap ON dmvattu.mavt = nhap.mavt) INNER
JOIN xuat ON dmvattu.mavt = xuat.mavt
WHERE (((dmvattu.mavt)=[nhập mã vật tư]));
+ Câu truy vấn tìm vật tư theo tên người nhập
SELECT nhap.mavt, nhap.soluong, phieunhap.ngaynhap
FROM phieunhap INNER JOIN nhap ON phieunhap.sophieu =
nhap.sophieu
WHERE (((phieunhap.nguoinhap)=[nhap ten nguoi nhap]));
+ Câu truy vấn số lần nhập vật tư của từng nhân viên
SELECT nguoinhap, count(nguoinhap) AS [so lan nhap]
FROM Q_nhap
GROUP BY nguoinhap;
+ Câu truy vấn số lần xuất vật tư của từng nhân viên
SELECT nguoixuat, COUNT(nguoixuat) AS [số lần xuất]
FROM Q_xuat
GROUP BY nguoixuat;
+ Câu truy vấn tìm vật tư chỉ do một công ty cung ứng
SELECT tenvt, COUNT(tencty) AS [số công ty cung ứng]
FROM dmvattu INNER JOIN ((dmcungung INNER JOIN phieunhap ON
dmcungung.macty=phieunhap.macty) INNER JOIN nhap ON
phieunhap.sophieu=nhap.sophieu) ON dmvattu.mavt=nhap.mavt
GROUP BY tenvt
HAVING COUNT(tencty)=1;
+ Câu truy vấn tìm vật tư do nhiều công ty cung ứng
SELECT tenvt, COUNT(tencty) AS [số công ty cung ứng]
FROM dmvattu INNER JOIN ((dmcungung INNER JOIN phieunhap ON
dmcungung.macty=phieunhap.macty) INNER JOIN nhap ON
phieunhap.sophieu=nhap.sophieu) ON dmvattu.mavt=nhap.mavt
GROUP BY tenvt
HAVING COUNT(tencty)>1;
+ Câu truy vấn quản lý số phiếu và nơi cung ứng của từng vật tư
TRANSFORM Count(Q_nhap.sophieu) AS CountOfsophieu
SELECT Q_nhap.mavt, Count(Q_nhap.sophieu) AS [tổng số phiếu]
FROM Q_nhap
GROUP BY Q_nhap.mavt
+ Câu truy vấn tìm đơn giá nhập max
SELECT mavt, dongia
FROM Q_nhap
WHERE dongia=
(SELECT max(dongia) as [đơn giá nhập max]
FROM Q_nhap );
+ Câu truy vấn tìm đơn giá nhập min
SELECT mavt, dongia
FROM Q_nhap
WHERE dongia=
(SELECT MIN(dongia) as [đơn giá nhập MIN]
FROM Q_nhap );
+ Câu truy vấn tìm đơn giá xuất max
SELECT mavt, dongia
FROM Q_xuat
WHERE dongia=
(SELECT MAX(dongia) AS [đơn giá xuất max]
FROM Q_xuat );
+ Câu truy vấn tìm đơn giá xuất min
SELECT mavt, dongia
FROM Q_xuat
WHERE dongia=
(SELECT MIN(dongia) AS [đơn giá xuất min]
FROM Q_xuat );