Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
1,47 MB
Nội dung
VIỆ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 CÁC TÁC GIẢ Lê Hữu Dũng Nguyễn Thị Tâm (Chủ biên) Trịnh Thị Xuân /3 MỤC LỤC Cho CSDL mẫu toán Quản lý Bán hàng gồm bảng DANH SÁCH CÁC BÀI TẬP THỰC HÀNH 2.1 Bài thực hành Buổi 2.2 Bài thực hành Buổi 2.3 Bài thực hành Buổi 10 2.4 Bài thực hành Buổi 12 2.5 Bài thực hành Buổi 14 2.6 Bài thực hành Buổi 15 ĐÁNH GIÁ THỰC HÀNH 16 /3 Cho CSDL mẫu toán Quản lý Bán hàng gồm bảng tblLoaiHang TT Tên trường Kiểu liệu Kích thước Mơ tả sMaloaihang Kí tự 10 PK sTenloaihang Kí tự 30 tblNhaCungCap TT Tên trường Kiểu liệu iMaNCC Số tự động tăng sTenNhaCC Kí tự 50 sTengiaodich Kí tự 50 sDiachi Kí tự 50 sDienthoai Kí tự 12 Kích thước Mơ tả PK tblMatHang TT Tên trường Kiểu liệu Kích thước Mơ tả sMahang Kí tự 10 PK sTenhang Kí tự 30 iMaNCC Số nguyên sMaloaihang Kí tự fSoluong Số thực sDonvitinh Kí tự FK 10 FK 10 /16 fGiahang Số thực tblKhachHang TT Tên trường Kiểu liệu Kích thước Mơ tả iMaKH Số nguyên sTenKH Kí tự dNgaysinh Ngày tháng sDiachi Kí tự 50 sDienthoai Kí tự 12 TT Tên trường Kiểu liệu Kích thước iMaNV Số nguyên sTenNV Kí tự 30 sDiachi Kí tự 50 sDienthoai Kí tự 12 dNgaysinh Datetime dNgayvaolam Datetime fLuongcoban Số thực fLuongcoban fPhucap Sothuc fPhucap TT Tên trường Kiểu liệu Kích thước iSoHD Số nguyên PK iMaNV Số nguyên FK iMaKH Số nguyên FK dNgaydathang Datetime PK 30 tblNhanVien Mô tả PK tblDonDatHang Mô tả /16 dNgaygiaohang Datetime sDiachigiaohang Kí tự 50 TT Tên trường Kiểu liệu Kích thước iSoHD Số nguyên sMahang Kí tự fGiaban Số thực fSoluongmua Số thực fMucgiamgia Số thực tblChiTietDatHang Mô tả 20 tblDonnhaphang TT Tên trường Kiểu liệu Kích thước Mơ tả iSoHD Số nguyên PK iMaNV Số nguyên FK dNgaynhaphang Datetime tblChiTietNhapHang TT Tên trường Kiểu liệu iSoHD Số nguyên sMahang Kí tự fGianhap Số thực fSoluongnhap Số thực Kích thước Mơ tả PK 10 PK /16 Script cho trước: CREATE TABLE tblLoaiHang ( sMaloaihang NVARCHAR(10) NOT NULL, sTenloaihang NVARCHAR(10) NOT NULL ); ALTER TABLE tblLoaiHang ADD CONSTRAINT PRIMARY KEY(sMaloaihang); PK_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); /16 /16 DANH SÁCH CÁC BÀI TẬP THỰC HÀNH 2.1 Bài thực hành Buổi Bài 1.1 a Tạo Database cho lưu vào thư mục ThuchanhSQL_Tên sinh viên_Lớp đặt ổ D E b Tạo bảng tblKhachHang bảng tblNhanvien theo cấu trúc cho c Thêm trường sCMND không chứa giá trị trùng vào bảng tblNhanVien d Thiết lập ràng buộc khóa chính, khóa ngoại cho bảng 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 mục cho cột sTenHang bảng tblMathang Bài 1.2 a Tạo bảng tblDonNhapHang bảng tblChiTietNhapHang theo cấu trúc cho b Thiết lập ràng buộc khóa chính, khóa ngoại cho bảng tblDonNhapHang 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 trường iSoHD khóa ngoại tham chiếu sang bảng tblDonNhapHang.iSoHD) c Trong bảng tblChiTietNhapHang đảm bảo ràng buộc sau: ○ fGianhap > ○ fSoLuongNhap > 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 đảm bảo ○ dNgaygiaohang lớn dNgaydathang ○ dNgaydathang mặc định thời gian nhỏ thời gian 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 /16 b 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 khố cặp trường {iSoHD, sMaHang} e Trong bảng tblChiTietDatHang, đảm bảo rằng: ○ fGiaban>0 ○ fSoluongMua>0 ○ fMucgiamgia>=0 Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 1.1: Bài 1.2: Bài 1.3: Bài 1.4 /16 2.2 Bài thực hành Buổi Bài 2.1 a Viết lệnh cho phép thêm ghi vào bảng tblLoaiihang b Thêm ghi cho bảng Nhà cung cấp c Với loại hàng có bảng tblLoaihang thực thêm mặt hàng cho loại hàng tương ứng d Xóa mặt hàng có số lượng = e Tăng phụ cấp 10% cho nhân viên có thâm niên làm việc năm trở lên Bài 2.2 A Thực cho phép thêm ghi vào bảng tblKhachHang ghi vào bảng tblNhanVien B Thực thêm 03 ghi vào bảng tblDonDatHang C Thực với đơn đặt hàng bảng tblDonDatHang cho phép thêm chi tiết đơn đặt hàng tương ứng, đơn đặt hàng có 02 mặt hàng thêm D Thực cho phép mức giảm giá 10% cho mặt hàng bán tháng năm 2016 E Thực xóa chi tiết đơn đặt hàng hóa đơn có mã đơn đặt hàng sinh viên tự xác định Bài 2.3 a Với khách hàng Nam, thêm cho người đơn hàng (tblDonDatHang); đơn hàng tháng khác trước đặt mặt hàng (tblChitietDonHang) với số lượng mua khác b Thêm loại hàng “Thời trang” “Chăm sóc sức khoẻ” c Thêm mặt hàng thuộc loại hàng “Thời trang” d Lập đơn đặt hàng cho ⅔ số khách hàng Nữ với ⅘ số mặt hàng Thời trang thêm e Giảm giá bán 5% mặt hàng đặt chưa giao thuộc loại hàng “Thời trang” f Xố loại hàng “Chăm sóc sức khoẻ” Bài 2.4 a Thực thêm 03 ghi vào bảng tblDonNhapHang, ngày nhập thuộc năm 2016 2017 /16 b Thực với đơn nhập hàng bảng tblDonNhapHang cho phép thêm chi tiết đơn nhập hàng tương ứng, đơn nhập hàng có 02 mặt hàng thêm c Thực xóa chi tiết đơn nhập hàng hóa đơn nhập có mã đơn nhập hàng sinh viên tự xác định Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 2.1: Bài 2.2: Bài 2.3: Bài 2.4 /16 2.3 Bài thực hành Buổi Bài 3.1 a Cho biết mặt hàng có số lượng 100 (tblMatHang) b Tạo View số mặt hàng loại hàng c Cho biết số tiền phải trả đơn đặt hàng d Cho biết tổng số tiền hàng thu tháng năm 2016 (tính theo ngày đặt hàng) e Trong năm 2016, mặt hàng đặt mua lần Bài 3.2 a Tạo View tính tổng tiền hàng tổng số mặt hàng đơn nhập hàng b Cho biết danh sách tên mặt hàng mà không nhập tháng năm 2017 c Cho biết tên nhà cung cấp cung cấp mặt hàng thuộc loại hàng xác định (phụ thuộc 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 loại hàng năm 2016 e Cho biết tổng số tiền hàng bán nhân viên 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 b Thống kê số lượng đặt hàng toàn mặt hàng Thời trang (kể mặt hàng chưa đặt lần nào) c Lấy danh sách khách hàng Nam Tổng tiền đặt hàng người 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 khách hàng mua hàng nhiều lần f Tạo View cho xem danh sách mặt hàng giá bán trung bình mặt hàng g Cập nhật giá bán (tblMatHang.fGiaHang) theo qui tắc: Giá bán mặt hàng = Giá mua lớn vịng 30 ngày mặt hàng + 10% 10 /16 Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 3.1: Bài 3.2: Bài 3.3: 11 /16 2.4 Bài thực hành Buổi Bài 4.1 a Tạo thủ tục có tham số truyền vào năm cho biết mặt hàng không bán năm b Viết thủ tục: ○ Tham số truyền vào: số lượng hàng năm; ○ Thực tăng lương lên gấp rưỡi cho nhân viên bán số lượng hàng nhiều số lượng hàng truyền vào năm c Tạo thủ tục thống kê tổng số lượng hàng bán mặt hàng có mã hàng tham số truyền vào d Tạo thủ tục có tham số truyền vào năm, cho biết tổng số tiền hàng thu năm e Viết trigger cho bảng tblChiTietDatHang để cho thêm ghi sửa tblChiTietDatHang.fGiaban chấp nhận giá bán phải lớn giá gốc (tblMatHang.fGiaHang) f Viết trigger để đảm bảo lượng hàng bán khơng vượt q lượng hàng có Bài 4.2 a Tạo thủ tục để bổ sung thêm ghi cho tblDonDatHang (thủ tục cần kiểm tra tính hợp lệ liệu cần bổ sung như: dNgaydathang phải = dNgaydathang) b Thêm cột TongTienHang (float) vào bảng tblKhachHang, tạo trigger cho giá trị TongTienHang tự động tăng lên khách hàng đến tham gia mua hàng cửa hàng c Tạo Thủ tục cho biết danh sách tên mặt hàng nhập hàng từ nhà cung cấp (theo tên nhà cung cấp) năm (tham số truyền vào gồm tên nhà cung cấp năm) d Tạo thủ tục cho biết tên nhà cung cấp ngày nhập hàng nhập hàng mặt hàng theo tên mặt hàng (tham số truyền vào tên mặt hàng) e Thêm cột TongSoMatHang(float) vào bảng tblDONDATHANG, tạo trigger cho giá trị TongSoMatHang tự động tăng lên bổ sung thêm mặt hàng khách đặt mua đơn đặt hàng tương ứng Bài 4.3 a Tạo Stored Procedure thêm liệu cho bảng tblMatHang theo tham số truyền vào 12 /16 b Tạo Stored Procedure: ○ Nhận vào tham số: Giá trị, Mức giảm giá ○ Thực giảm giá cho mặt hàng đặt tháng tại, có (fGiaban*fSoluongmua)>=Giá trị có fMucGiamgia=0 c Tạo Stored Procedure: ○ Nhận vào tham số: thông tin đơn đặt hàng, danh 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 việc thêm đơn đặt hàng chi tiết đơn đặt hàng với: ■ Giá bán mặt hàng lấy tương ứng từ bảng tblMathang ■ Mức giảm giá mặt hàng mặc định d Hãy đảm bảo rằng: có nhân viên bị xố khỏi bảng tblNhanVien (bằng cách nào) đơn đặt hàng đơn nhập hàng nhân viên chuyển cho nhân viên khác có số đơn đặt hàng số đơn nhập hàng cao nhân viên bị xoá Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 4.1: Bài 4.2: Bài 4.3: 13 /16 2.5 Bài thực hành Buổi Bài 5.1 a Tạo tài khoản đăng nhập SQL Server có tên ‘Capnhat’ b Tạo user DB tương ứng với login ‘Capnhat’ thực cấp quyền Insert, Update, Delete c Kiểm trả kết phân quyền việc thực lệnh Select, Insert bảng Bài 5.2 a Tạo user đăng nhập SQL Server có tên “BanHang” thực cấp quyền Insert bảng tblDONDATHANG tblCHITIETDATHANG b Tạo user cấp thực thi thủ tục “Bài 4.2” c Chỉnh sửa quyền người dùng ý b thêm quyền xem thông tin bảng tblMATHANG Bài 5.3 a Tạo tài khoản SQL server login với tên truy cập “U1” mật “a1b2c3” b Tạo user DB tập cho U1 c Cho phép cho U1 toàn quyền bảng tblKhachHang d Tạo Role có tên “BPNhapHang” cấp quyền: ○ Được Thêm Xem liệu tblNhaCungCap, tblDonNhapHang, tblChiTietNhapHang ○ Được Xem liệu tblNhanvien, tblMatHang ○ Cấm Thêm, Sửa, Xoá bảng tblKhachHang e Đưa U1 vào làm thành viên role BPNhapHang Kiểm tra kết phân quyền việc: ○ Thêm đơn nhập hàng với mặt hàng cần nhập (bất kì) ○ Thêm Khách hàng Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 5.1: Bài 5.2: Bài 5.3: 14 /16 2.6 Bài thực hành Buổi Bài 6.1 a Thực phân tán ngang bảng tblKhachhang theo điều kiện khách hàng có địa ‘Hà nội’ đặt trạm khác ‘Hà nội’ đặt trạm b Viết lệnh lấy danh sách khách hàng ‘Hà nội’ ‘TP HCM’ có độ tuổi từ 18 - 25 mua hàng c Viết thủ tục thêm liệu Khách hàng đưa vào trạm phù hợp Bài 6.2 a Thực phân tán ngang bảng tblNHANVIEN theo điều kiện nhân viên có Lương đưới triệu đặt máy trạm nhân viên lại đặt máy trạm b Viết thủ tục để thêm nhân viên vào CSDL tương ứng c Tạo View cho xem danh sách tên nhân viên làm cửa hàng năm Bài 6.3 a Chia tách dọc tblDonDathang thành bảng theo cấu trúc sau ○ tblThongtinGiaohang (iSoHD, dNgaygiaohang, sDiachiGiaohang) ○ tblDonDathang (iSoHD, iMaNV, iMaKH, dNgayDathang) b Chuyển tblThongtinGiaohang liệu sang Máy trạm c Sửa lại Stored Procedure làm Bài 4.3.c để liệu thêm Stored Procedure đến bảng đích chia tách d Tạo View cho xem danh sách nhân viên số đơn hàng chưa đến ngày giao nhân viên Đánh giá GVTH: Điểm đánh giá: .Chữ ký giảng viên: Bài 6.1: Bài 6.2: Bài 6.3: 15 /16 ĐÁNH GIÁ THỰC HÀNH TT Buổi Điểm đánh giá Điểm trung bình Giảng viên (Ký ghi rõ họ tên) 16 /16