Link tải luận văn miễn phí cho ae Kết Nối

Mô Hình Cơ Sở Dữ Liệu :











Mô Hình Liên Kết Thực Thể :


I, Thiết Lập Cơ Sở Dữ Liệu :

1. Tạo CSDL Bán Hàng
CREATE DATABASE BanHang
ON PRIMARY
(
NAME =BanHang_Data,
FILENAME ='C:\Program Files\Microsoft SQL Server\MSSQL\Data\BanHang_Data.mdf',
SIZE =10,
MAXSIZE =20,
FILEGROWTH =10%
)
LOG ON
(
NAME =BanHang_Log,
FILENAME ='C:\Program Files\Microsoft SQL Server\MSSQL\Data\BanHang_Log.ldf',
SIZE =10,
MAXSIZE =20,
FILEGROWTH =10%
)
GO
USE BanHang

2. Tạo Bảng Vật Tư
CREATE TABLE VATTU
(
MaVTu CHAR(4),
TenVTu VARCHAR(100),
DVTinh VARCHAR(10) DEFAULT '',
PhanTram REAL
CONSTRAINT PRK_VatTu_MaVTu PRIMARY KEY(MaVTu),
CONSTRAINT UNQ_VatTu_TenVTu UNIQUE(TenVTu),
CONSTRAINT CHK_VatTu_PhanTram CHECK(PhanTram BETWEEN 0 AND 100)
)

3. Tạo Bảng Nhà Cung Cấp
CREATE TABLE NHACC
(
MaNhaCC CHAR (3),
TenNhaCC VARCHAR(100),
DiaChi VARCHAR (200),
DienThoai VARCHAR(20) DEFAULT 'Chua co'
CONSTRAINT PRK_NhaCC_MaNhaCC PRIMARY KEY(MaNhaCC),
CONSTRAINT UNQ_NhaCC_MaNhaCC_TenNhaCC UNIQUE(TenNhaCC)
)

4. Tạo Bảng Đơn Đặt Hàng
CREATE TABLE DONDH
(
SoDH CHAR(4),
MaNhaCC CHAR(3),
NgayDH DATETIME DEFAULT GETDATE(),
CONSTRAINT PRK_DonDH_SoDH PRIMARY KEY(SoDH)
)

5. Tạo Bảng Chi Tiết Đơn Đặt Hàng
CREATE TABLE CTDONDH
(
SoDH CHAR(4),
MaVTu CHAR(4),
SLDat INT
CONSTRAINT PRK_CTDONDH_SoDH_MaVTu PRIMARY KEY(SoDH,MaVTu),
CONSTRAINT CHK_CTDONDH_SLDat CHECK(SLDat > 0)
)

6. Tạo Bảng Phiếu Nhập
CREATE TABLE PNHAP
(
SoPN CHAR(4),
SoDH CHAR(4),
NgayNhap DATETIME
CONSTRAINT PRK_PNHAP_SoPN PRIMARY KEY(SoPN)
)

7. Tạo Bảng Chi Tiết Phiếu Nhập
CREATE TABLE CTPNHAP
(
SoPN CHAR(4),
MaVTu CHAR(4),
SLNhap INT,
DGNhap MONEY
CONSTRAINT PRK_CTPNHAP_SoPN_MaVTu PRIMARY KEY(SoPN,MaVTu),
CONSTRAINT CHK_CTPNHAP_SLNhap CHECK(SLNhap > 0 AND DGNhap > 0)
)

8. Tạo Bảng Phiếu Xuất
CREATE TABLE PXUAT
(
SoPX CHAR(4),
NgayXuat DATETIME,
TenKH VARCHAR(100)
CONSTRAINT PRK_PXUAT_SoPX PRIMARY KEY(SoPX)
)

9. Tạo Bảng Chi Tiết Phiếu Xuất
CREATE TABLE CTPXUAT
(
SoPX CHAR(4),
MaVTu CHAR(4),
SLXuat INT,
DGXuat MONEY
CONSTRAINT PRK_CTPXUAT_SoPX_MaVTu PRIMARY KEY(SoPX,MaVTu),
CONSTRAINT CHK_CTPXUAT_SLXuat_DGXuat CHECK(SLXuat > 0 AND DGXuat > 0)
)

10. Tạo Bảng Tồn Kho
CREATE TABLE TONKHO
(
NamThang CHAR(6),
MaVTu CHAR(4),
SLDau INT DEFAULT 0,
TongSLN INT DEFAULT 0,
TongSLX INT DEFAULT 0,
SLCuoi AS SLDau + TongSLN - TongSLX
CONSTRAINT PRK_TONKHO_NamThang_MaVTu PRIMARY KEY(NamThang,MaVTu),
CONSTRAINT CHK_TONKHO_SLDau_TongSLN_TongSLX
CHECK(SLDau >= 0 AND TongSLN >= 0 AND TongSLX >= 0)
)

11. Tạo Liên Kết Giữa Các Bảng Dữ Liệu
ALTER TABLE DONDH ADD CONSTRAINT FRK_DonDH_NhaCC_MaNhaCC
FOREIGN KEY (MaNhaCC) REFERENCES NhaCC(MaNhaCC)
ALTER TABLE CTDONDH ADD CONSTRAINT FRK_CTDONDH_VATTU_MaVTu
FOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu)
ALTER TABLE CTDONDH ADD CONSTRAINT FRK_CTDONDH_DONDH_SoDH
FOREIGN KEY (SoDH) REFERENCES DONDH(SoDH)
ALTER TABLE PNHAP ADD CONSTRAINT FRK_PNhap_DonDH_SoDH
FOREIGN KEY (SoDH) REFERENCES DONDH(SoDH)
ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_VATTU_MaVTu
FOREIGN KEY (MaVTu) REFERENCES VATTU(MaVTu)
ALTER TABLE CTPNHAP ADD CONSTRAINT FRK_CTPNHAP_PNHAP_SoPN
FOREIGN KEY (SoPN) REFERENCES PNHAP(SoPN)
ALTER TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT_VATTU_MaVTu
FOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu)
ALTER TABLE CTPXUAT ADD CONSTRAINT FRK_CTPXUAT_PXUAT_SoPX
FOREIGN KEY(SoPX) REFERENCES PXUAT(SoPX)
ALTER TABLE TONKHO ADD CONSTRAINT FRK_TONKHO_VATTU_MaVTu
FOREIGN KEY(MaVTu) REFERENCES VATTU(MaVTu)
GO

II, Chèn Dữ Liệu Vào Các Bảng :

1. Chèn bảng Nhà Cung Cấp
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C01','Bui Tien Truong','Xuan La, Tay Ho, Ha Noi','0989995221')
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C02','Nguyen Thi Thu','Quan La, Tay Ho, Ha Noi','0979012300')
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C03','Ngo Thanh Tung','Kim Lien, Dong Da','0988098591')
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C04','Bui Tien Lap','Ha Noi','0904255934')
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C05','Hong That Cong','Ha Noi','chua co')
INSERT INTO NHACC (MaNhaCC,TenNhaCC,DiaChi,DienThoai) VALUES ('C07','Bui Duc Kien','To 11, Cum 2, Xuan La','0437530097')

2. Chèn bảng Vật Tư
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('DD01','Dau DVD Hitachi 1 dia','Bo',40)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('DD02','Dau DVD Hitachi 3 dia','Bo',40)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('TL15','Tu lanh Sanyo 150 lit','Cai',25)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('TL90','Tu lanh Sanyo 90 lit','Cai',20)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('TV14','Tivi Sony 14 inches','Cai',15)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('TV21','Tivi Sony 21 inches','Cai',10)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('TV29','Tivi Sony 29 inches','Cai',10)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('VD01','Dau VCD Sony 1 dia','Bo',30)
INSERT INTO VATTU (MaVTu,TenVTu,DVTinh,PhanTram) VALUES ('VD02','Dau VCD Sony 3 dia','Bo',30)

3. Chèn bảng Đơn Đặt Hàng
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D001','C03','01/15/2002')
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D002','C01','01/30/2002')
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D003','C02','02/10/2002')
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D004','C05','02/17/2002')
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D005','C02','03/01/2002')
INSERT INTO DONDH(SoDH,MaNhaCC,NgayDH) VALUES ('D006','C05','03/12/2002')

4. Chèn bảng Phiếu Nhập
INSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES ('N001','D001','01/17/2002')
INSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES ('N002','D001','01/20/2002')
INSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES ('N003','D002','01/31/2002')
INSERT INTO PNHAP(SoPN,SoDH,NgayNhap) VALUES ('N004','D003','02/15/2002')

5. Chèn bảng Chi Tiết Đơn Đặt Hàng
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D001','DD01',10)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D001','DD02',15)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D002','VD02',30)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D003','TV14',10)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D003','TV29',20)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D004','TL90',10)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D005','TV14',10)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D005','TV29',20)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D006','TV14',10)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D006','TV29',20)
INSERT INTO CTDONDH(SoDH,MaVTu,SLDat) VALUES('D005','VD01',20)

6. Chèn bảng Chi Tiết Phiếu Nhập
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N001','DD01',8,2500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N001','DD02',10,3500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N002','DD01',2,2500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N002','DD02',5,3500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N003','VD02',30,2500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N004','TV14',5,2500000)
INSERT INTO CTPNHAP(SoPN,MaVTu,SLNhap,DGNhap) VALUES('N004','TV29',12,3500000)

7. Chèn bảng Phiếu Xuất
INSERT INTO PXUAT(SoPX,NgayXuat,TenKH) VALUES('X001','01/17/2002','Duong Minh Chau')
INSERT INTO PXUAT(SoPX,NgayXuat,TenKH) VALUES('X002','01/25/2002','Nguyen Kim Dung')
INSERT INTO PXUAT(SoPX,NgayXuat,TenKH) VALUES('X003','01/31/2002','Nguyen Tien Dung')

8. Chèn bảng Chi Tiết Phiếu Xuất
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X001','DD01',2,3500000)
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X002','DD01',1,3500000)
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X002','DD02',5,4900000)
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X003','DD01',3,3500000)
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X003','DD02',2,4900000)
INSERT INTO CTPXUAT(SoPX,MaVTu,SLXuat,DGXuat) VALUES('X003','VD02',10,3250000)

9. Chèn bảng Tồn Kho
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200201','DD01',0,10,6)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200201','DD02',0,15,7)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200201','VD02',0,30,10)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200202','DD01',4,0,0)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200202','DD02',8,0,0)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200202','VD02',20,0,0)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200202','TV14',5,0,0)
INSERT INTO TONKHO(NamThang,MaVTu,SLDau,TongSLN,TongSLX) VALUES('200202','TV29',12,0,0)


III, Bài Tập VIEW :

1. Tạo view vw_DMVT gồm (MaVTu và TenVTu) dùng để liệt kê danh sách các vật tư hiện có trong bảng VATTU :

CREATE VIEW vw_DMVT
AS
SELECT MaVTu,TenVTu
FROM VatTu

SELECT * FROM vw_DMVT

2. Tạo view vw_DonDH_TongSLDatNhap gồm (SoHD, TongSLDat và TongSLNhap) dùng để thống kê những đơn đặt hàng đã được nhập hàng đầy đủ :

CREATE VIEW vw_DonDH_TongSLDatNhap (SoDH,TongSLDat,TongSLNhap)
AS
SELECT DH.SoDH,SUM(SLDat),SUM(SLNhap)
FROM DONDH DH LEFT JOIN (PNHAP PN INNER JOIN CTPNHAP CTPN ON PN.SoPN=CTPN.SoPN) ON DH.SoDH=PN.SoDH LEFT JOIN CTDONDH ON DH.SoDH=CTDONDH.SoDH
GROUP BY DH.SoDH

SELECT * FROM vw_DonDH_TongSLDatNhap

3. Tạo view vw_DonDH_DaNhapDu gồm (SoHD, DaNhapDu) có hai giá trị là ‘Da Nhap Du’ nếy đơn hàng đó đã nhập đủ hay ‘Chua Nhap Du’ nếu đơn đặt hàng đó chưa nhập đủ :



Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 
Last edited by a moderator:
Top