Đề bài + kèm lời giải chi tiết Bài tập lớn môn Hệ cơ sở dữ liệu (CO2013) thầy Trần Quang Đại học Bách Khoa HCM 2021 khoa Khoa học máy tínhMô tả nghiệp vụPhòng kinh doanh của một xí nghiệp chế biến hải sản và thực phẩm xuất khẩu cần xây dựng hệthống quản lý bán hàng ở thị trường nội địa. Kết quả khảo sát về nghiệp vụ như sau:Các mặt hàng của xí nghiệp bao gồm các loại: Nước chấm: tương ớt, tương cà, nước mắm, … Thực phẩm đông lạnh: chả giò, há cảo, hoành thánh, … Trà: trà khổ qua, trà xanh, trà lài, …
Bài tập lớn Môn: Hệ sở liệu Mô tả nghiệp vụ Phịng kinh doanh xí nghiệp chế biến hải sản thực phẩm xuất cần xây dựng hệ thống quản lý bán hàng thị trường nội địa Kết khảo sát nghiệp vụ sau: Các mặt hàng xí nghiệp bao gồm loại: - Nước chấm: tương ớt, tương cà, nước mắm, … - Thực phẩm đơng lạnh: chả giị, há cảo, hoành thánh, … - Trà: trà khổ qua, trà xanh, trà lài, … Mỗi mặt hàng cấp mã số để phân biệt, thông tin khác mặt hàng gồm: tên mặt hàng, mô tả, đơn vị tính Giá bán tất mặt hàng áp dụng thống cho khách hàng Hàng ngày phòng kinh doanh đưa bảng báo giá, bảng báo giá có giá trị ngày Cần lưu trữ lại việc tăng giảm giá bán để phục vụ cho việc xây dựng hệ hỗ trợ định sau Xí nghiệp khơng bán lẻ Khách hàng xí nghiệp khách mua sỉ (mua hàng phép ghi nợ trả sau) đại lý (chỉ hưởng chiết khấu) Khách hàng phải điền thơng tin vào biểu mẫu xí nghiệp cung cấp, gồm: tên khách hàng, số CMND, địa chỉ, số điện thoại liên lạc, mã số thuế Sau xem xét chấp nhận phòng kinh doanh cấp mã số khách hàng Riêng khách làm đại lý làm thêm hợp đồng đại lý, thông tin hợp đồng gồm mã số hợp đồng, ngày ký hợp đồng, thời hạn hợp đồng, thông tin khách hàng Phòng kinh doanh dựa vào địa khách hàng để xếp vào khu vực nhằm phục vụ cho việc phát triển thị trường Mỗi khu vực có mã khu vực tên khu vực Khách hàng muốn mua hàng lập đơn đặt hàng Thông tin đơn đặt hàng gồm ngày đặt hàng, thông tin khách hàng, mặt hàng số lượng cần mua Khi nhận đơn đặt hàng, phòng kinh doanh kiểm tra xem có đủ hàng hay khơng (số liệu phận kho cung cấp định kỳ) Đối với khách mua sỉ kiểm tra thêm công nợ khách hàng (số liệu kế toán cung cấp định kỳ) Đối với khách đại lý kiểm tra thêm số lượng tồn kho đại lý (dựa vào phiếu giao hàng báo cáo bán hàng đại lý) Nếu chấp nhận đơn hàng, phòng kinh doanh tiến hành lập phiếu giao hàng Thông tin phiếu giao hàng gồm: mã số phiếu giao, ngày lập phiếu giao, mã số đơn đặt hàng (mỗi đơn đặt hàng giao nhiều lần), mặt hàng giao, số lượng giao, đơn giá (lấy theo bảng báo giá ngày), tổng trị giá phiếu giao Phiếu giao chuyển cho kế tốn xí nghiệp để lập hố đơn theo dõi cơng nợ Quy định công nợ khách mua sỉ: khách hàng tùy thuộc q trình làm ăn với xí nghiệp có định mức công nợ (quy định số tiến tối đa phép nợ) khác nhau, vượt định mức mức khơng bán thiếu tiếp, bán tiền mặt Mức chiết khấu cho đại lý tính theo khu vực loại hàng Ví dụ: - Khu vực Tp.HCM: Loại trà 15%, loại thực phẩm đông lạnh 10%, loại nước chấm 9% - Khu vực đồng sông Cửu Long: trà 17%, thực phẩm đông lạnh 15%, nước chấm 10% Sơ đồ ERD đề xuất Các thực thể Mối quan hệ thực thể Phần 1: Tạo CSDL Oracle (3.5đ) Tạo bảng liệu với thuộc tính ràng buộc sau Bảng LoaiHang (MSLoai, TenLoai) - MSLoai: có định dạng: [A-Z][A-Z][A-Z] Ví dụ: NCH Bảng KhuVuc(MSKV, TenKV) - MSLoai: có định dạng: [A-Z][A-Z][A-Z] Ví dụ: HCM Bảng ChietKhau(MSKV, MSLoai, TyLeCK) Bảng MatHang (MSMH, TenMH, SLTon, DVT, MoTa, MSLoai) - MSMH: có định dạng: [A-Z][A-Z][A-Z][A-Z][0-9][0-9][0-9] Ví dụ: NCTC001 - Khi thêm hay cập nhật mặt hàng, SLTon không phép < Bảng GiaMH (MSMH, Ngay, Gia) - Ngay: Giá trị mặc định ngày Bảng KhachHang (MSKH, TenKH, SoCMND, DiaChi, MSThue, KHS, MSKV) - MSKH: có định dạng: [A-Z][A-Z]{[0-9]}* Ví dụ: DL1, DL12, KS135 - MSThue: có quy định sau: Giá trị nhập vào bao gồm 10 chữ số 13 chữ số - KHS: Yes (Default) khách hàng khách hàng sỉ, No khách hàng đại lý Bảng DienThoaiKH(MSKH, SoDT) - SoDT khách hàng bao gồm 10 11 chữ số Ví dụ: 0988881234, 01212871234, 0838234567 Bảng KhachHangSi (MSKH, DinhMucCongNo, CongNo) - CongNo: Giá trị không vượt giá trị DinhMucCongNo Bảng HopDongDL(MSHD, NgayKi, ThoiHan, MSKH) Bảng TonKhoDL(MSKH, MSMH, SLTon) - Khi thêm hay cập nhật, SLTon không phép < Bảng DonDatHang(MSDH, NgayDH, MSKH) - MSDH: Giá trị nhập theo định dạng sau: [0-9][0-9][0-9][0-9][0-9][0-9]/[0-9][0-9][0-9][0-9] Trong chữ số đầu giá trị NgayDH dạng YYMMDD Ví dụ: 090315/0001 - NgayDH: Giá trị mặc định ngày Bảng ChiTietDonDatHang(MSDH, MSMH, SLDat, SLDaGiao) - SLDaGiao: thể số lượng mặt hàng giao Giá trị mặc định: Bảng PhieuGiao(MSPG, NgayGiao, MSDH) - MSPG: Giá trị nhập theo định dạng sau: [0-9][0-9][0-9][0-9][0-9][0-9]/[0-9][0-9][0-9][0-9] Trong chữ số đầu giá trị NgayGiao dạng YYMMDD Ví dụ: 090315/0001 - NgayGiao: Giá trị mặc định ngày NgayGiao phải ngày sau NgayDH đơn đặt hàng giao Bảng ChiTietPhieuGiao(MSPG, MSMH, SLGiao, DG) Lưu ý: Sinh viên phải xác định kiểu liệu, kích thước liệu, số ràng buộc khác hợp lý, đặc biệt ràng buộc khóa chính, khóa ngọai, unique, not null Tạo index: Người dùng sở liệu thường hay truy vấn thông tin sau: a Thông tin khách hàng dựa số CMND b Thông tin đơn đặt hàng dựa tháng đặt hàng c Thông tin hợp đồng đại lý dựa ngày thời hạn Dựa câu truy vấn trên, bạn tạo index thích hợp để tăng tốc độ truy xuất sở liệu Phần 2: STORE PROCEDURE, FUNCTION, TRIGGER (2đ) TRIGGER (1.5đ) a Khi user nhập đơn đặt hàng cập nhật đơn đặt hàng, khách hàng sỉ, hệ thống kiểm tra xem công nợ khách hàng vượt 90% định mức công nợ khơng thực thao tác Nếu khách hàng đại lý, hệ thống kiểm tra xem hợp đồng đại lý bị thời hạn khơng thực thao tác Ví dụ, định mức công nợ KS135 1,000,000 công nợ 950,000 khơng cho khách hàng đặt hàng b Khi user thêm, xóa hay sửa record chi tiết phiếu giao, hệ thống cần xử lý công việc sau: Cập nhật lại số lượng giao mặt hàng (thuộc tính SLDaGiao) chi tiết đơn đặt hàng số lượng tồn kho mặt hàng cơng ty (thuộc tính SLTon MatHang) Nếu vi phạm quy định SLTon mặt hàng vi phạm SLDat đơn đặt hàng hệ thống thơng báo lỗi hủy bỏ thao tác Ví dụ, mặt hàng NCTC001 đơn đặt hàng số lượng 10(ĐVT) Số lượng giao (ĐVT) Như vậy, phiếu giao giao NCTC001 có số lượng 20 (ĐVT) Thì nhập phiếu giao, hệ thống báo lỗi “Số lượng giao NCTC001 vượt số lượng đặt hàng” hủy bỏ thao tác Trường hợp thỏa số lượng tồn mặt hàng 15 Thì hệ thống báo lỗi “Số lượng giao NCTC001 vượt số lượng tồn kho” hủy bỏ thao tác Nếu thỏa hết điều kiện quy định, hệ thống thực thao tác này, đồng thời cập nhật lại số lượng giao cho mặt hàng chi tiết đơn đặt hàng tương ứng số lượng tồn mặt hàng Lưu ý: trường hợp xóa sửa số lượng mặt hàng phiếu giao STORE PROCEDURE/FUNCTION (0.5đ) Viết hàm tính tổng giá trị chiết khấu (thành tiền) cho đại lý tháng dựa theo giá trị mặt hàng giao cho đại lý tháng Lưu ý: tỷ lệ chiết khấu phụ thuộc vào khu vực khách hàng lọai mặt hàng Tham số đầu vào: Mã khách hàng đại lý, tháng cần tính Giá trị trả về: tổng giá trị chiết khấu đại lý tháng Phần 3: Thao tác sở liệu (3.5đ) INSERT Thực việc nhập liệu cho bảng sở liệu Yêu cầu: Dữ liệu bảng phải có nghĩa, bảng có tối thiểu hàng UPDATE Tăng định mức công nợ tất khách hàng sỉ thuộc khu vực “Đồng Sông Cửu Long” lên 20% DELETE Xóa thơng tin đơn đặt hàng khách hàng có mã KS135 vào ngày 15/03/2009 Giả sử có liệu đầy đủ đơn đặt hàng Việc xóa liệu có thực thành cơng khơng? Giải thích SELECT a Hiển thị mức chiết khấu thông tin mặt hàng theo khu vực b Hiển thị thông tin tất phiếu giao cho lần đặt hàng có MSDH “090315/0001” Thơng tin bao gồm MSPG, NgayGiao, MSDH, NgayDH, MaKH, TenKH, tổng trị giá phiếu giao c Hiển thị thơng tin đại lý, hợp đồng đại lý mà hợp đồng cịn nhiều tháng hết thời hạn d Liệt kê danh sách mặt hàng có tổng giá trị giao lớn tháng khu vực Thông tin bao gồm tên khu vực, thông tin mặt hàng, tên lọai hàng, tổng giá trị giao mặt hàng tháng e Hiển thị danh sách đơn đặt hàng chưa giao hết hàng Thông tin hiển thị bao gồm MSDH, NgayDH, TenKH, MSMH, TenMH, SLDat, Số lượng Trong số lượng cịn tính từ SLDat SLGiao Phần 4: Phân quyền truy cập (1đ) Tạo user Đăng nhập vào CSDL user có quyền DBA SYS hay SYSTEM Tạo user sau: a) User NVKD (user nhân viên phòng kinh doanh) b) User KTVXN (user kế tóan viên xí nghiệp) c) User GD (user giám đốc) Phân quyền truy cập, sử dụng a) Gán quyền kết nối vào CSDL cho tất user b) User NVKD phép xem, xóa, sửa tất bảng, ngọai trừ thao tác xóa, sửa liệu công nợ cho khách hàng sỉ c) User KTVXN phép xem liệu bảng, phép xóa, sửa liệu bảng cơng nợ khách hàng sỉ d) User GD: có tồn quyền CSDL Phần 5(*): Xây dựng ứng dụng (2đ thưởng) Xây dựng ứng dụng nhỏ đáp ứng yêu cầu sau: - Mơi trường lập trình: tự chọn - Ứng dụng kết nối với sở liệu - Hiển thị liệu form, cần xây dựng form cho vài bảng không thiết toàn sở liệu - Thực số chức bản: thêm, xóa, sửa (*) Đây phần khơng bắt buộc ... No khách hàng đại lý Bảng DienThoaiKH(MSKH, SoDT) - SoDT khách hàng bao gồm 10 11 chữ số Ví dụ: 09888 812 34, 012 128 712 34, 0838234567 Bảng KhachHangSi (MSKH, DinhMucCongNo, CongNo) - CongNo: Giá... KHS, MSKV) - MSKH: có định dạng: [A-Z][A-Z]{[0-9]}* Ví dụ: DL1, DL12, KS135 - MSThue: có quy định sau: Giá trị nhập vào bao gồm 10 chữ số 13 chữ số - KHS: Yes (Default) khách hàng khách hàng sỉ,... mặt hàng NCTC0 01 đơn đặt hàng số lượng 10 (ĐVT) Số lượng giao (ĐVT) Như vậy, phiếu giao giao NCTC0 01 có số lượng 20 (ĐVT) Thì nhập phiếu giao, hệ thống báo lỗi “Số lượng giao NCTC0 01 vượt số lượng