Professional Documents
Culture Documents
APznzaYNfK-GR0QEOsD631JMeHtUMDc_YhRh2fxMe89xSqobOs3wYsuWMfU9yz4vuvFyEk20zThL10VKthjP0KnS0T74yd5mxR60G97pGHz5Yq-OvJyQdE7-rFK2F-4HVRIoN7jz_GwJmgngAfNO7cut1eiX1CJc6QtMEXkpPdrvTOc89kSURaiNa8s8fYDeG6C48YygLG4sv80Oxc92JU
APznzaYNfK-GR0QEOsD631JMeHtUMDc_YhRh2fxMe89xSqobOs3wYsuWMfU9yz4vuvFyEk20zThL10VKthjP0KnS0T74yd5mxR60G97pGHz5Yq-OvJyQdE7-rFK2F-4HVRIoN7jz_GwJmgngAfNO7cut1eiX1CJc6QtMEXkpPdrvTOc89kSURaiNa8s8fYDeG6C48YygLG4sv80Oxc92JU
Cho lược đồ cơ sở dữ liệu gồm những loại quan hệ được mô tả như sau, thuộc tính gạch
chân là khóa chính:
LOAISP (MALOAI, TENLOAI, DVT)
SANPHAM (MASP, TENSP, MOTA, GIA, MALOAI)
KHACHHANG (MAKH, TENKH, DIACHI, DIENTHOAI)
DONDH (SODDH, NGAYDAT, MAKH, DIENGIAI)
CTDDH (SODDH, MASP, SOLUONG)
Giải thích:
• LOAISP: Mỗi loại sản phẩm có mã loại và tên loại là duy nhất.
• SANPHAM: Mỗi sản phẩm có mã số duy nhất, có tên sản phẩm là duy nhất, mô tả sản
phẩm và giá của sản phẩm. Mỗi sản phẩm chỉ thuộc 1 loại.
• KHACHHANG: Mỗi khách hàng có mã số, tên, địa chỉ và điện thoại.
• DONDH: Mỗi đơn đặt hàng có số đơn duy nhất, có ngày đặt và do 1 khách hàng nào đó
đặt.
• CTDDH: Mỗi đơn đặt hàng có thể đặt nhiều sản phẩm với số lượng khác nhau cho từng
sản phẩm.
Yêu cầu: Cơ sở dữ liệu
- Tạo CSDL: HO_TENSV
- Tạo các bảng.
- Tạo các ràng buộc khóa chính, khóa ngoại.
- TenSP, TenLoai: là duy nhất.
- Đơn giá phải lớn hơn hoặc 100000
- Số lương phải >=0
- Nhập dữ liệu.
CÁC BẢNG DỮ LIỆU MẪU:
LOAISP (MALOAI, TENLOAI)
MALOAI TENLOAI DVT
L01 Tủ Cái
L02 Bàn Cái
L03 Giường Cái
a) Tạo view có tên V_A với yêu cầu sau: Lấy ra danh sách các sản phẩm được đặt với
tổng số lượng đặt nhiều nhất. Thông tin gồm: Mã sản phẩm, Tên sản phẩm, Tên
loại sản phẩm, tổng số lượng đặt nhiều nhất.
b) Tạo Function F_B có 2 tham số vào là: Số đơn đặt hàng, năm.
Function cho biết: số sản phẩm đã đặt trong năm 2019.
(Chú ý: Nếu Số đơn hàng này không tồn tại thì phải trả về 0).
c) Tạo Procedure tên là P_C cho có 2 tham số sau
- 1 tham số nhận vào là: Số đơn đặt hàng.
- 1 tham số trả về cho biết: số sản phẩm đã đặt trong năm 2019 (Không viết lại truy
vấn, hãy sử dụng Function FuncB_02 để thực hiện)
d) Tạo Trigger tên Tg_D không cho phép user nhập vào số lượng của sản phẩm nhỏ
hơn bằng 0.
e) Tạo View V_E Lấy ra danh sách tất cả các khách hàng gồm Mã khách hàng, tên
khách hàng, địa chỉ, số lượng hóa đơn đã đặt (nếu khách hàng đó chưađ ặt hàng thì
cột số lượng hóa đơn để trống)
f) Tạo Procdure P_F Lấy ra danh sách F mặt hàng có số lượng bán lớn nhất (F là
tham số).
g) Viết hàm F_G tính tổng số lượng đặt được cho từng mặt hàng theo tháng, năm
nào đó. Với mã hàng, tháng và năm là các tham số truyền vào, nếu tháng không
nhập vào tức là tính tất cả các tháng.
h) Viết trigger Tg_H Không cho phép user nhập vào hai loại sản phẩm có cùng tên
i) Viết trigger Tg_I Mỗi hóa đơn cho phép đặt tối đa 5 sản phẩm
j) Tạo 3 user: Giám đốc, Kế toán và Nhân viên. Thực hiện phân quyền như sau:
Giám đốc: Toàn quyền trên toàn bộ CSDL
Kế toán: Chỉ được xem trên bảng SANPHAM Các bảng khác toàn quyền.
Nhân viên: Không được truy cập bảng KHACHHANG, SANPHAM, LOAI. Các
bảng khác được quyền xem, không được cập nhật.
k) Tạo transaction Tr_K thêm 1 sản phẩm phải có trông loại sản phẩm nếu ko có ko
được thêm vào.
---Hết---