Với mỗi loại hàng có trong bảng tblLoaihang thực hiện thêm 3 mặt hàng cho mỗi loại hàng tương ứng.. Thực hiện với mỗi đơn đặt hàng trong bảng tblDonDatHang cho phép thêm các chi tiết đơn
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
VỞ THỰC HÀNH
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Sinh viên: Lớp tín chỉ:
HÀ NỘI 8/2017
Trang 2CÁC TÁC GIẢ
2 Nguyễn Thị Tâm (Chủ biên)
3 Trịnh Thị Xuân
Trang 3MỤC LỤC
1 Cho CSDL mẫu bài toán Quản lý Bán hàng gồm các bảng 1
2 DANH SÁCH CÁC BÀI TẬP THỰC HÀNH 6
2.1 Bài thực hành Buổi 1 6
2.2 Bài thực hành Buổi 2 8
2.3Bài thực hành Buổi 3 10
2.4Bài thực hành Buổi 4 12
2.5Bài thực hành Buổi 5 14
2.6Bài thực hành Buổi 6 15
3 ĐÁNH GIÁ THỰC HÀNH 16
Trang 41 Cho CSDL mẫu bài toán Quản lý Bán hàng gồm các bảng
tblLoaiHang
tblNhaCungCap
tblMatHang
Trang 57 fGiahang Số thực
tblKhachHang
tblNhanVien
tblDonDatHang
Trang 65 dNgaygiaohang Datetime
tblChiTietDatHang
tblDonnhaphang
tblChiTietNhapHang
Trang 7Script cho trước:
CREATE TABLE tblLoaiHang
(
sMaloaihang NVARCHAR(10) NOT
NULL, sTenloaihang NVARCHAR(10)
NOT NULL );
ALTER TABLE tblLoaiHang ADD CONSTRAINT PK_sMaloaihang PRIMARY KEY(sMaloaihang);
CREATE TABLE tblNhaCungCap
(
iMaNCC int IDENTITY(1,1) NOT NULL,
sTenNhaCC NVARCHAR(50) NULL,
sTengiaodich NVARCHAR(50) NULL,
sDiachi NVARCHAR(50) NULL,
sDienthoai NVARCHAR(12) NULL,
CONSTRAINT PK_tblNhaCungCap PRIMARY KEY (iMaNCC)
);
CREATE TABLE tblMatHang
(
sMahang NVARCHAR(10) NOT NULL,
sTenhang NVARCHAR(30) NOT NULL,
iMaNCC INT NULL ,
sMaloaihang NVARCHAR(10) NULL,
fSoluong FLOAT NULL,
fGiahang FLOAT NULL);
ALTER TABLE tblMatHang
ADD CONSTRAINT PK_mathang PRIMARY KEY (sMahang),
CONSTRAINT FK_mathang_loaihang FOREIGN KEY
(sMaloaihang) REFERENCES tblLoaiHang(sMaloaihang),
CONSTRAINT FK_mathang_nhacungcap FOREIGN KEY
(iMaNCC) REFERENCES tblNhaCungCap(iMaNCC);
Trang 92 DANH SÁCH CÁC BÀI TẬP THỰC HÀNH
2.1 Bài thực hành Buổi 1
Bài 1.1
a Tạo Database đã cho và lưu vào thư mục ThuchanhSQL_Tên sinh viên_Lớp đặt tại ổ D hoặc E
b Tạo bảng tblKhachHang và bảng tblNhanvien theo cấu trúc đã cho
c Thêm trường sCMND không chứa giá trị trùng nhau vào bảng tblNhanVien
d Thiết lập ràng buộc khóa chính, khóa ngoại cho 2 bảng trên
e Thiết lập ràng buộc ngày vào làm việc so với ngày sinh tối thiểu
đủ 18 tuổi
f Thêm cột sDonvitinh cho bảng Mặt hàng
g Tạo chỉ mục cho cột sTenHang trong bảng tblMathang
Bài 1.2
a Tạo bảng tblDonNhapHang và bảng tblChiTietNhapHang theo cấu trúc đã cho
bảng tblChiTietNhapHang vừa tạo (bảng tblChiTietNhapHang đặt trường sMaHang làm
khóa ngoại, tham chiếu sang bảng tblMatHang và trường iSoHD là khóa ngoại và tham chiếu sang bảng tblDonNhapHang.iSoHD)
c Trong bảng tblChiTietNhapHang đảm bảo ràng buộc cơ bản sau:
Bài 1.3
a Thêm trường bGioitinh (bit) vào bảng tblKhachhang
b Tạo bảng tblDonDatHang theo cấu trúc trên và đảm bảo rằng
○ dNgaydathang mặc định bằng thời gian hiện tại và luôn nhỏ hơn hoặc bằng thời gian hiện tại
c Trong bảng tblDonDatHang, đặt trường iMaKH làm khoá ngoại, tham chiếu sang tblKhachHang.iMaKH
d Trong bảng tblDonDatHang, đặt trường iMaNV làm khoá ngoại, tham chiếu sang tblNhanVien.iMaNV
Bài 1.4
a Tạo bảng tblChiTietDatHang theo cấu trúc trên
Trang 10b Trong bảng tblChiTietDatHang, sửa cấu trúc trường sMaHang sang kiểu Kí tự có độ dài 10
c Trong bảng tblChiTietDatHang, đặt trường sMaHang làm khoá ngoại, tham chiếu sang tblMatHang.sMaHang; đặt trường iSoHD làm khoá ngoại, tham chiếu sang tblDonDatHang.iSoHD
d Trong bảng tblChiTietDatHang, đặt khoá chính trên cặp trường {iSoHD, sMaHang}
e Trong bảng tblChiTietDatHang, đảm bảo rằng:
Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 112.2 Bài thực hành Buổi 2
Bài 2.1
a Viết lệnh cho phép thêm 3 bản ghi vào bảng tblLoaiihang
b Thêm 3 bản ghi cho bảng Nhà cung cấp
c Với mỗi loại hàng có trong bảng tblLoaihang thực hiện thêm 3 mặt hàng cho mỗi loại hàng tương ứng
e Tăng phụ cấp 10% cho những nhân viên có thâm niên làm việc 5 năm trở lên
Bài 2.2
A Thực hiện cho phép thêm 3 bản ghi vào bảng tblKhachHang và 3 bản ghi vào bảng tblNhanVien
B Thực hiện thêm 03 bản ghi vào bảng tblDonDatHang
C Thực hiện với mỗi đơn đặt hàng trong bảng tblDonDatHang cho phép thêm các chi tiết đơn đặt hàng tương ứng, mỗi đơn đặt hàng có ít nhất
02 mặt hàng được thêm
D Thực hiện cho phép mức giảm giá là 10% cho các mặt hàng bán trong tháng 7 năm 2016
E Thực hiện xóa các chi tiết đơn đặt hàng của hóa đơn có mã đơn đặt hàng do sinh viên tự xác định
Bài 2.3
(tblDonDatHang); mỗi đơn hàng trong 1 tháng khác nhau trước đây và đặt ít nhất 3 mặt hàng (tblChitietDonHang) với số lượng mua khác nhau.
b Thêm loại hàng “Thời trang” và “Chăm sóc sức khoẻ”
c Thêm 5 mặt hàng thuộc loại hàng “Thời trang”
d Lập đơn đặt hàng cho ít nhất ⅔ số khách hàng Nữ với ít nhất ⅘
số mặt hàng Thời trang đã thêm
e Giảm giá bán 5% mỗi mặt hàng đã đặt và chưa giao thuộc loại hàng “Thời trang”
f Xoá loại hàng “Chăm sóc sức khoẻ”
Bài 2.4
a Thực hiện thêm 03 bản ghi vào bảng tblDonNhapHang, ngày nhập thuộc năm 2016 và 2017
Trang 12b Thực hiện với mỗi đơn nhập hàng trong bảng tblDonNhapHang cho phép thêm các chi tiết đơn nhập hàng tương ứng, mỗi đơn nhập hàng có ít nhất 02 mặt hàng được thêm
c. Thực hiện xóa các chi tiết đơn nhập hàng của hóa đơn nhập có mã đơn nhập hàng do sinh viên tự xác định
Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 132.3 Bài thực hành Buổi 3
Bài 3.1
a Cho biết những mặt hàng nào có số lượng dưới 100 (tblMatHang)
b Tạo View số mặt hàng của từng loại hàng
c Cho biết số tiền phải trả của từng đơn đặt hàng
d Cho biết tổng số tiền hàng thu được trong mỗi tháng của năm
2016 (tính theo ngày đặt hàng)
Bài 3.2
a Tạo View tính tổng tiền hàng và tổng số mặt hàng của từng đơn nhập hàng
b Cho biết danh sách tên các mặt hàng mà không được nhập về trong tháng 6 năm 2017
hàng xác định nào đó (phụ thuộc dữ liệu nhập vào - Ví dụ: Máy xách tay)
d Tạo View cho biết số lượng đã bán của từng loại hàng trong năm 2016
e Cho biết tổng số tiền hàng đã bán được của từng nhân viên trong năm 2016
Bài 3.3
a Lấy danh sách khách hàng Nữ chưa đặt hàng lần nào
b Thống kê số lượng đặt hàng của toàn bộ các mặt hàng Thời trang (kể cả các mặt hàng chưa được đặt lần nào)
d Tạo View thống kê số lượng khách hàng theo Giới tính
e Tạo View cho xem danh sách 3 khách hàng mua hàng nhiều lần nhất
f Tạo View cho xem danh sách mặt hàng và giá bán trung bình của từng mặt hàng
g Cập nhật giá bán (tblMatHang.fGiaHang) theo qui tắc: Giá bán 1 mặt hàng = Giá mua lớn nhất trong vòng 30 ngày của mặt hàng
đó + 10%
Trang 14Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 152.4 Bài thực hành Buổi 4
Bài 4.1
a Tạo thủ tục có tham số truyền vào là năm cho biết các mặt hàng không bán được trong năm đó
được số lượng hàng nhiều hơn số lượng hàng truyền vào trong năm
đó
c Tạo thủ tục thống kê tổng số lượng hàng bán được của một mặt hàng có mã hàng là tham số truyền vào
d Tạo thủ tục có tham số truyền vào là năm, cho biết tổng số tiền hàng thu được trong năm đó
e Viết trigger cho bảng tblChiTietDatHang để sao cho khi thêm 1 bản ghi hoặc khi sửa tblChiTietDatHang.fGiaban chỉ chấp nhận giá bán ra phải lớn hơn hoặc bằng giá gốc (tblMatHang.fGiaHang)
f Viết trigger để đảm bảo lượng hàng bán ra không vượt quá lượng hàng hiện có
Bài 4.2
cần kiểm tra tính hợp lệ của dữ liệu cần bổ sung như: dNgaydathang phải <= ngày hiện tại và dNgaygiaohang phải >= dNgaydathang)
b Thêm cột TongTienHang (float) vào bảng tblKhachHang, tạo trigger sao cho giá trị TongTienHang tự động tăng lên mỗi khi khách hàng đến tham gia mua hàng tại cửa hàng
c Tạo Thủ tục cho biết danh sách tên các mặt hàng đã được nhập hàng từ một nhà cung cấp (theo tên nhà cung cấp) trong một năm nào đó
(tham số truyền vào gồm tên nhà cung cấp và một năm)
d Tạo thủ tục cho biết tên các nhà cung cấp và ngày nhập hàng đã
được nhập hàng của một mặt hàng nào đó theo tên mặt hàng (tham số
truyền vào là tên mặt hàng)
sao cho giá trị của TongSoMatHang tự động tăng lên mỗi khi bổ sung thêm một mặt hàng khách đặt mua trong đơn đặt hàng tương ứng
Bài 4.3
a Tạo Stored Procedure thêm dữ liệu cho bảng tblMatHang theo các tham số truyền vào
Trang 16b Tạo Stored Procedure:
có (fGiaban*fSoluongmua)>=Giá trị và đang có fMucGiamgia=0.
sách mặt hàng ở dạng xâu gồm “{{Mã hàng 1, Số lượng 1}, {Mã hàng 2, Số lượng 2}, ….}”
○ Thực hiện việc thêm đơn đặt hàng và chi tiết đơn đặt hàng với:
tblMathang
bất kì cách nào) thì các đơn đặt hàng và đơn nhập hàng của nhân viên đó sẽ được
chuyển đều cho các nhân viên khác có số đơn đặt hàng và số đơn nhập hàng cao nhất
nhưng ít hơn nhân viên bị xoá.
Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 172.5 Bài thực hành Buổi 5
Bài 5.1
a Tạo tài khoản đăng nhập SQL Server có tên ‘Capnhat’
b Tạo user trong DB tương ứng với login ‘Capnhat’ và thực hiện cấp quyền Insert, Update, Delete
c Kiểm trả kết quả phân quyền bằng việc thực hiện lệnh Select, Insert trên bảng bất kì
Bài 5.2
a Tạo user đăng nhập SQL Server có tên “BanHang” và thực hiện cấp quyền Insert trên bảng tblDONDATHANG và tblCHITIETDATHANG
b Tạo user và cấp quyển thực thi thủ tục ở “Bài 4.2”
c Chỉnh sửa quyền của người dùng ở ý b thêm quyền xem thông tin của bảng tblMATHANG
Bài 5.3
a Tạo 1 tài khoản SQL server login với tên truy cập “U1” và mật
khẩu là “a1b2c3”
b Tạo 1 user trong DB của bài tập này cho U1.
c Cho phép cho U1 được toàn quyền trên bảng tblKhachHang
d Tạo Role có tên “BPNhapHang” và cấp quyền:
tblDonNhapHang, tblChiTietNhapHang
e Đưa U1 vào làm thành viên của role BPNhapHang Kiểm tra kết quả phân quyền bằng việc:
Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 182.6 Bài thực hành Buổi 6
Bài 6.1
a Thực hiện phân tán ngang bảng tblKhachhang theo điều kiện khách hàng có địa chỉ ‘Hà nội’ đặt tại trạm 1 và khác ‘Hà nội’ đặt ở trạm 2
b Viết lệnh lấy danh sách của khách hàng ở ‘Hà nội’ hoặc ‘TP HCM’
có độ tuổi từ 18 - 25 đã mua hàng
c Viết thủ tục thêm dữ liệu Khách hàng và đưa vào trạm phù hợp
Bài 6.2
a Thực hiện phân tán ngang bảng tblNHANVIEN theo điều kiện nhân viên có Lương cơ bản đưới 4 triệu đặt tại máy trạm 1 và các nhân viên còn lại đặt ở máy trạm 2
b Viết thủ tục để thêm một nhân viên mới vào CSDL tương ứng
c Tạo View cho xem danh sách tên các nhân viên đã làm ở cửa hàng trên 2 năm
Bài 6.3
a Chia tách dọc trên tblDonDathang thành 2 bảng theo cấu trúc như sau
b Chuyển tblThongtinGiaohang cùng dữ liệu sang Máy trạm 2
c Sửa lại Stored Procedure đã làm ở Bài 4.3.c để dữ liệu được thêm bằng Stored Procedure đó sẽ đến đúng các bảng đích đã chia tách
d Tạo View cho xem danh sách nhân viên và số đơn hàng chưa đến ngày giao của từng nhân viên
Đánh giá của GVTH:
Điểm đánh giá: Chữ ký giảng viên:
Trang 193 ĐÁNH GIÁ THỰC HÀNH
1
2
3
4
5
6
Điểm trung bình Giảng viên
(Ký và ghi rõ họ tên)