Mời các bạn cùng tham khảo Đề thi kết thúc môn học học kì 2 môn Chuyên đề hướng đối tượng cơ sở dữ liệu năm 2020-2021 có đáp án - Trường ĐH Đồng Tháp sau đây để biết được cấu trúc đề thi, cách thức làm bài thi cũng như những dạng bài chính được đưa ra trong đề thi. Từ đó, giúp các bạn sinh viên có kế hoạch học tập và ôn thi hiệu quả.
Trang 1
TRUONG DAI HOC DONG THAP
DE THI KET THÚC MÔN HỌC
Mén hoc: CB HQT CSDL, ma MH: IN4105p, học kỷ: 2, năm học: 2020 - 2021
Ngành/khối ngành: ĐHCNTTISA hình thức thị: Tự luận
Thời gian làm bài: 75 phút
Ghi chú: Sinh viên được sử dụng tài liệu Cho lược để quan hệ QLHANGHOA như sau:
HANGHOA (MaHG, TenHG, DVT, Dongia, Cohang)
Moi mat hàng có một mã số duy nhất có tên hang, don vị tính, đơn giá và hàng có còn trong kho hay không (Cohang = 0 nếu hết hàng, Cohang = I nếu còn hàng)
KHACH (MaKH, HotenKH, Diachi, Daily)
Mỗi khách hàng có một mã số duy nhất, họ tên, địa chỉ và khách có phải là đại ly hay khách hàng lẻ (Daily = 1 nếu khách là đại lý, Daily = 0 nếu khách là khách mua bán lẻ)
HOADON (SoHD, Ngaylap, Ngaygiao, ‘ MaKH)
Mỗi hóa đơn có một số hóa dơn duy nhất, ngày lập, trị giá hóa đơn, ngày giao hàng và giao cho khách hàng nào
CTHOADON (SoHD MaLhG, Soluong, Giaban)
Lưu thông tin chỉ tiết của hóa đơn bao gdm sé HD, mã hàng, số lượng bán và giá bán của mặt
hàng đó
GLBANHANS 2021, HOADON
IP * SoHD
MakH
HOTENKH NGAYLAP DIACHI NGAYGIAO
DAILY Hl TRIGIA,
MAKH
SOHD IPFˆ trên SOLUONG GIABAN
Cau 1 (4.0 diễm) Truy vấn dữ liệu SQL,
a) Tìm thông tin hàng hoá MANG, TENHG, DVT, DONGIA không còn hàng
b) Tìm Họ tên, địa chỉ của khách hàng lẻ mua ngày từ ngày 10 đến 15/07/2020
€) Tìm tên của những mặt hàng vừa được mua bởi các đại lý ở Vĩnh Long vừa dược mua bởi các khách hàng lẻ ở Trà Vinh
đ) In ra tổng số lượng bán của tất cả các mặt hàng trong tháng 8/2020
Câu 2 (2.0 điểm) Lập trình PL/SQL Viết khối lệnh hiển thị thông tin khách hàng (MAKH,
HOTENKN) khi nhập vào SOHD
Cau 3 (2.0 diém) Procedure Tao Procedure cập nhật lại GIABAN của một mặt hàng trong bảng CTHOADON: GIABAN = 130% * DONGIA voi tham sé dau vào là SOHD va MAHG tương ứng Cau 4 (2.0 d) Bao mat trong Oracle
Tạo người dùng HQTCSDL, password: 1234 véi Quota 4M cho phép người dùng tao bảng KHOA (MaKH TenKH) trong schema nay
Hét
Trang 2ĐÁP ÁN ĐÈ THỊ KẾT THÚC MÔN HOC
Môn học: CĐHQT CSDL mã MH: IN415p học kỳ: 2, năm học: 2020 - 2021
Ng sành/khối nganh: DHCNTT18A
- Y 1: Tim théng tin hàng hoá không còn hàng 1,0
SELECT MAHG, TENHG, DVT, DONGIA
FROM HANGHOA
WHERE COHANG = Ô
| - Ý 2: Họ tên, địa chỉ của khách hàng lẻ mua ngày từ ngày 10 đến 15/07/2014 1,0
SELECT K.MAKH, HOTENKH, DIACHI, NGAYLAP
FROM KHACH K INNER JOIN HOADON H ON K.MAKH = H.MAKH
| WHERE DAILY = @ AND (NGAYLAP BETWEEN DATE'202@-7-10' AND
DATE '2020-7-15')
-Ý 3: Tìm tên của những mặt hàng vừa dược mua bởi các đại lý ở Vinh Long vừa
được mua bởi các khách hàng lẻ ở Trà Vinh 1,0
SELECT HH.MAHG, TENHG
FROM (((KHACH K INNER JOIN HOADON HD ON K.MAKH = HD.MAKH)
INNER JOIN CTHOADON CT ON CT.SOHD = HD.SOHD) INNER JOIN HANGHOA HH ON HH.MAHG = CT.MAHG)
| WHERE DIACHI LIKE N'Vinh Long’ AND DAILY = 1
| TNTERSECT
SELECT HH.MAHG, TENHG
FROM (((KHACH K INNER JOIN HOADON HD ON K.MAKH = HD.MAKH)
INNER JOIN CTHOADON CT ON CT.SOHD = HD.SOHD) INNER JOIN HANGHOA HH ON HH.MAHG = CT.MAHG) WHERE DIACHI LIKE N'Tra Vinh’ AND DAILY = @
~ Ý 4: In ra tổng số lượng bán của tất cả các mặt hàng trong tháng 8/2014
SELECT SUM(SOLUONG)
FROM CTHOADON CT INNER JOIN HOADON HD ON CT.SOHD = HD.SOHD
WHERE EXTRACT(MONTH FROM(NGAYLAP)) = 8 AND 1,0
= _ EXTRACT(YEAR FROM(NGAYLAP)) = 2014
z Lap trinh PL/SQL Viet khối lénh hién thj théng tin khách hang (MAKH, 2,0 HOTENKH) khi nhap vao SOHD
DECLARE
VSOHD HOADON.SOHD%TYPE : = '&VSOHD' ;
VMAKH HOADON.MAKH%TYPE ;
| VHOTENKH KHACH.HOTENKH&TYPE ;
| | CURSOR CURHOADON IS
SELECT HOADON.MAKH, HOTENKH
FROM HOADON, KHACH
| WHERE HOADON.MAKH = KHACH.MAKH AND SOHD = VSOHD;
BEGIN
| OPEN CURHOADON ;
FETCH CURHOADON INTO VMAKH, VHOTENKH;
IF CURHOADON%ROWCOUNT=@ THEN
| DBMS_OUTPUT.PUT_LINE( "KHONG CO HOA DON || VSOHD);
| ELSE
DBMS_OUTPUT.PUT_LINE(VSOHD ||' CO KHACH HANG:");
DBMS_OUTPUT.PUT_LINE( 'MAKH HOTENKH");
Trang 3
FETCH CURHOADON TNTO VMAKH, VHOTENKH; DBMS_OUTPUT PUT_LINE (VMAKH || ' ' |] VHOTENKH ); ¬
EXIT WHEN CURHOADON%NOT FOUND;
END LOOP; END LP}
CLOSE CURHOADON ;
END;
Procedure Tao Procedure cập nhật lại GIABAN của một mặt hàng trong bảng CTHOADON: GIABAN = 130% * DONGIA hang hoa tương ứng
CREATE OR REPLACE PROCEDURE Tang_giaban (vSOHD char, vMAHG
char) IS gia_old INT; gia_new INT;
BEGIN SELECT GIABAN INTO gia_old FROM CTHOADON WHERE SOHD=vSOHD AND MAHG=vMAHG ;
IF SQL%FOUND THEN SELECT DONGIA INTO gia_new FROM HANGHOA WHERE MAHG=vMAHG;
UPDATE CTHOADON SET GIABAN = 139/100*gia_new;
WHERE SOHD=VSOHD AND MAHG=vMAHG;
IF SQL%ROWCOUNT<>@ THEN
DBMS_OUTPUT.PUT_LINE (‘Gia ban cua ' ll
VSOHD || ', ' || vMAHG || "duoc cap nhat");
END IF; END IF;
EXCEPTION WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Khong tim thay hoa don: "ty VSOHD ||", va mat hang’ || vMAHG);
END;
Bao mat trong Oracle _
- Y I: Tao nguoi ding HQTCSDL, password: 1234 V6i Quota 4M cho phép người
dùng tạo bảng KHOA (MaKH, TenKH) trong schema nảy B1: Tạo người dùng
CREATE USER HQTCSDL IDENTIFIED BY 1234
DEFAULT TABLESPACE USERS QUOTA 4M ON USERS;
B2: Cấp quyền session cho user nay
GRANT CREATE SESSION To HQTCSDL ;
-~B3: cấp quyền hệ thống cho user này để được phép tạo bảng
GRANT CREATE TABLE TO HQTCSDL
WITH ADMIN OPTION;
B4: Đăng nhập user này, thực hiện tạo bảng
CREATE TABLE KHOA(
MaKH chan(5),
TenKH Varchar2(3@));
“Phân dưới đây được in 6 mat sau cia dap in
Y kiên Trưởng bộ môn (nêu có) Người giới thiệu
(Ký tên, họ tên)
(Ký tên, họ tên)
Noun TR Mj Aung Nhắn TL Là