1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môn cơ sở dữ liệu bài tập thực hành 5 ngôn ngữ định nghĩa dữ liệu

21 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Môn Cơ sở dữ liệu Bài tập thực hành 5 Ngôn ngữ định nghĩa dữ liệu
Tác giả Nguyễn Hoàng Vũ
Người hướng dẫn Nguyễn Ngọc Quí
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh, Trường Đại học Công nghệ Thông tin, Khoa Hệ thống Thông tin
Chuyên ngành Cơ sở dữ liệu
Thể loại Bài tập thực hành
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 774,54 KB

Nội dung

Nếu điều kiện nàykhông được đáp ứng, thì câu lệnh chèn hoặc cập nhật dữ liệu trong bảng sẽ bị từ chối.Câu 2:Học viên thi một môn tối đa 3 lần.- Input: Bảng KETQUATHI- Output: Ràng buộc l

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA HỆ THỐNG THÔNG TIN MÔN CƠ SỞ DỮ LIỆU BÀI TẬP THỰC HÀNH 5 GVHD: Nguyễn Ngọc Quí Sinh viên thực hiện: Nguyễn Hoàng Vũ  Tp Hồ Chí Minh, 09/2023  IT004 – Cơ sở dữ liệu NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……., ngày…… tháng……năm 2023 Người nhận xét (Ký tên và ghi rõ họ tên) 2|Page IT004 – Cơ sở dữ liệu MỤC LỤC I Ngôn ngữ định nghĩa dữ liệu: 5 1 Kết quả thi là “Dat” nếu điểm từ 5 đến 10 và “Khong dat” nếu điểm nhỏ hơn 5 .5 2 Học viên thi một môn tối đa 3 lần 5 3 Học kỳ chỉ có giá trị từ 1 đến 3 5 4 Học vị của giáo viên chỉ có thể là “CN”, “KS”, “Ths”, “TS”, “PTS” 6 5 Lớp trưởng của một lớp phải là học viên của lớp đó 6 6 Trưởng khoa phải là giáo viên thuộc khoa và có học vị “TS” hoặc “PTS” 7 7 Học viên ít nhất là 18 tuổi 8 8 Giảng dạy một môn học ngày bắt đầu (TUNGAY) phải nhỏ hơn ngày kết thúc (DENNGAY).8 9 Giáo viên khi vào làm ít nhất là 22 tuổi 9 10 Tất cả các môn học đều có số tín chỉ lý thuyết và tín chỉ thực hành chênh lệch nhau không quá 3 9 11 Học viên chỉ được thi một môn học nào đó khi lớp của học viên đã học xong môn học này 10 12 Mỗi học kỳ của một năm học, một lớp chỉ được học tối đa 3 môn 11 13 Sỉ số của một lớp bằng với số lượng học viên thuộc lớp đó 11 14 Trong quan hệ DIEUKIEN giá trị của thuộc tính MAMH và MAMH_TRUOC trong cùng một bộ không được giống nhau (“A”, “A”) và cũng không tồn tại hai bộ (“A”, “B”) và (“B”, “A”) .14 15 Các giáo viên có cùng học vị, học hàm, hệ số lương thì mức lương bằng nhau 14 16 Học viên chỉ được thi lại (lần thi >1) khi điểm của lần thi trước đó dưới 5 15 17 Ngày thi của lần thi sau phải lớn hơn ngày thi của lần thi trước (cùng học viên, cùng môn học) 16 18 Học viên chỉ được thi những môn mà lớp của học viên đó đã học xong 17 19 Khi phân công giảng dạy một môn học, phải xét đến thứ tự trước sau giữa các môn học (sau khi học xong những môn học phải học trước mới được học những môn liền sau) 17 20 Giáo viên chỉ được phân công dạy những môn thuộc khoa giáo viên đó phụ trách 18 II Link code sql 19 3|Page IT004 – Cơ sở dữ liệu DANH MỤC BẢNG 1 Bảng KHOA 2 Bảng MONHOC 3 Bảng DIEUKIEN 4 Bảng GIAOVIEN 5 Bảng LOP 6 Bảng HOCVIEN 7 Bảng GIANGDAY 8 Bảng KETQUATHI 4|Page IT004 – Cơ sở dữ liệu NỘI DUNG BÀI LÀM Câu 1: Kết quả thi là “Dat” nếu điểm từ 5 đến 10 và “Khong dat” nếu điểm nhỏ hơn 5 - Input: Bảng KETQUATHI - Output: Ràng buộc kết quả thi điểm từ 5-10 là “Dat” và nhỏ hơn 5 là “Khong dat” - Hướng giải thuật :  Ràng buộc CHECK này xác định rằng nếu giá trị của cột DIEM nằm trong khoảng từ 5 đến 10 và giá trị của cột KQUA là 'Dat', hoặc nếu giá trị của cột DIEM nhỏ hơn 5 và giá trị của cột KQUA là 'Khong Dat', thì ràng buộc này sẽ được đáp ứng Nếu điều kiện này không được đáp ứng, thì câu lệnh chèn hoặc cập nhật dữ liệu trong bảng sẽ bị từ chối Câu 2: Học viên thi một môn tối đa 3 lần - Input: Bảng KETQUATHI - Output: Ràng buộc lần thi của học viên chỉ được nhỏ hơn hoặc bằng 3 - Hướng giải thuật:  Đầu tiên, chúng ta cần sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra (CHECK constraint) vào bảng KETQUATHI  Ràng buộc sẽ kiểm tra giá trị của cột LANTHI (số lần thi) và đảm bảo rằng giá trị này không vượt quá 3  Khi thêm mới hoặc cập nhật dữ liệu trong bảng KETQUATHI, ràng buộc này sẽ được kiểm tra để đảm bảo tính hợp lệ của số lần thi  Nếu số lần thi vượt quá 3, thao tác thêm mới hoặc cập nhật dữ liệu sẽ bị từ chối Câu 3: Học kỳ chỉ có giá trị từ 1 đến 3 5|Page IT004 – Cơ sở dữ liệu - Input: Bảng GIANGDAY - Output: Ràng buộc học kỳ chỉ được giá trị từ 1 đến 3 - Hướng giải thuật:  Sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra vào bảng GIANGDAY  Ràng buộc CK_HOCKY sẽ kiểm tra giá trị của cột HOCKY và đảm bảo rằng giá trị này nằm trong khoảng từ 1 đến 3  Khi thêm mới hoặc cập nhật dữ liệu trong bảng GIANGDAY, ràng buộc này sẽ được kiểm tra để đảm bảo tính hợp lệ của dữ liệu về học kỳ Câu 4: Học vị của giáo viên chỉ có thể là “CN”, “KS”, “Ths”, “TS”, “PTS” - Input: Bảng GIANGDAY - Output: Ràng buộc học vị của một giáo viên chỉ có thể nằm trong “CN”, “KS”, “Ths”, “TS”, “PTS” - Hướng giải thuật:  Sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra vào bảng GIAOVIEN  Ràng buộc CK_HOCVI sẽ kiểm tra giá trị của cột HOCVI và đảm bảo rằng giá trị này chỉ nằm trong danh sách học vị cho phép là "CN", "KS", "ThS", "TS", hoặc "PTS"  Khi thêm mới hoặc cập nhật dữ liệu trong bảng GIAOVIEN, ràng buộc này sẽ được kiểm tra để đảm bảo tính hợp lệ của học vị Câu 5: Lớp trưởng của một lớp phải là học viên của lớp đó 6|Page IT004 – Cơ sở dữ liệu - Input: Bảng LOP - Output: Ràng buộc để lớp trưởng của một lớp thì phải là học viên của lớp đó - Hướng giải thuật:  Khi có sự cập nhật dữ liệu trên bảng LOP, trigger này sẽ được kích hoạt  Trigger sử dụng bảng INSERTED để lấy dữ liệu về lớp sau khi cập nhật (tức là lớp sau khi thay đổi) Đồng thời, nó sẽ lấy mã lớp của học viên tương ứng từ bảng HOCVIEN  Trigger sẽ so sánh xem mã lớp của lớp trưởng hiện tại sau khi cập nhật có khớp với mã lớp của học viên trong bảng HOCVIEN hay không  Nếu mã lớp của lớp trưởng không khớp với mã lớp của học viên, trigger sẽ thực hiện ROLLBACK để hủy bỏ các thay đổi và in ra thông báo "TRGLOP CUA 1 LOP PHAI LA HOCVIEN CUA LOP DO"  Nếu mã lớp của lớp trưởng khớp với mã lớp của học viên, trigger sẽ in ra thông báo "SUCCESSFUL" Câu 6: Trưởng khoa phải là giáo viên thuộc khoa và có học vị “TS” hoặc “PTS” 7|Page IT004 – Cơ sở dữ liệu - Input: Bảng KHOA - Output: Ràng buộc để trưởng khoa nhập vào phải là giáo viên thuộc khoa và có học vị “TS” hoặc “PTS” - Hướng giải thuật:  Trigger UPDATE_KHOA_C6 kiểm tra xem trưởng khoa (TRGKHOA) của khoa đã cập nhật có phải là giáo viên thuộc khoa đó hay không Nếu không, trigger sẽ thực hiện ROLLBACK và in ra thông báo lỗi "ERROR! TRGKHOA PHAI LA GIAOVIEN THUOC KHOA" Nếu TRGKHOA là giáo viên thuộc khoa, trigger sẽ kiểm tra học vị của giáo viên đó, nếu không phù hợp, trigger sẽ thực hiện ROLLBACK và in ra thông báo lỗi "ERROR! TRGKHOA PHAI CO HOCVI='TS' HOAC HOCVI='PTS'"  Khi có sự cập nhật dữ liệu trên bảng KHOA hoặc GIAOVIEN, các trigger sẽ được kích hoạt Câu 7: Học viên ít nhất là 18 tuổi 8|Page IT004 – Cơ sở dữ liệu - Input: Bảng HOCVIEN - Output: Ràng buộc để học viên bắt buộc phải đủ ít nhất là 18 tuổi - Hướng giải thuật:  Thực hiện câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra vào bảng HOCVIEN  Ràng buộc này có tên là CHECK_TUOI  Sử dụng hàm YEAR(GETDATE()) để lấy năm hiện tại và hàm YEAR(NGSINH) để lấy năm sinh của học viên  Chênh lệch giữa năm hiện tại và năm sinh được tính toán, và sau đó kiểm tra xem chênh lệch này có lớn hơn hoặc bằng 18 không  Nếu chênh lệch tuổi không đạt 18, ràng buộc sẽ ngăn chặn thao tác thêm mới hoặc cập nhật dữ liệu Câu 8: Giảng dạy một môn học ngày bắt đầu (TUNGAY) phải nhỏ hơn ngày kết thúc (DENNGAY) - Input: Bảng GIANGDAY - Output: Ràng buộc ngày bắt đầu giảng dạy 1 môn học phải nhỏ hơn ngày kết thúc môn học đó - Hướng giải thuật:  Chúng ta sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra (CHECK constraint) vào bảng GIANGDAY  Ràng buộc này sẽ kiểm tra xem giá trị của cột TUNGAY (ngày bắt đầu) có nhỏ hơn giá trị của cột DENNGAY (ngày kết thúc) không  Khi thêm mới hoặc cập nhật dữ liệu trong bảng GIANGDAY, ràng buộc này sẽ được kiểm tra để đảm bảo tính chặt chẽ của ngày bắt đầu và ngày kết thúc  Nếu ngày bắt đầu lớn hơn hoặc bằng ngày kết thúc, thao tác thêm mới hoặc cập nhật dữ liệu sẽ bị từ chối Câu 9: Giáo viên khi vào làm ít nhất là 22 tuổi 9|Page IT004 – Cơ sở dữ liệu - Input: Bảng GIAOVIEN - Output: Ràng buộc để giáo viên phải đạt ít nhất là 22 tuổi - Hướng giải thuật:  Sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra (CHECK constraint) vào bảng GIAOVIEN  Trong ràng buộc này, chúng ta sử dụng hàm YEAR để lấy năm từ cột NGVL (ngày bắt đầu làm việc) và từ cột NGSINH (ngày sinh) để tính tuổi khi vào làm việc  Ràng buộc sẽ kiểm tra xem sự chênh lệch về tuổi khi vào làm việc có lớn hơn hoặc bằng 22 tuổi không  Nếu tuổi khi vào làm việc không đáp ứng điều kiện, thao tác thêm mới hoặc cập nhật dữ liệu trong bảng GIAOVIEN sẽ bị từ chối Câu 10: Tất cả các môn học đều có số tín chỉ lý thuyết và tín chỉ thực hành chênh lệch nhau không quá 3 - Input: Bảng MONHOC - Output: Ràng buộc để số TCLT và số TCTH có chênh lệch không vượt quá 3 - Hướng giải thuật:  Sử dụng câu lệnh ALTER TABLE để thêm ràng buộc kiểm tra (CHECK constraint) vào bảng MONHOC  Trong ràng buộc này, chúng ta sử dụng hàm ABS để lấy giá trị tuyệt đối của hiệu số giữa TCLT (số tín chỉ lý thuyết) và TCTH (số tín chỉ thực hành)  Ràng buộc này sẽ kiểm tra xem sự chênh lệch giữa số tín chỉ lý thuyết và số tín chỉ thực hành có lớn hơn 3 đơn vị không  Nếu sự chênh lệch không vượt quá 3, thì thao tác thêm mới hoặc cập nhật dữ liệu trong bảng MONHOC sẽ được chấp nhận Câu 11: Học viên chỉ được thi một môn học nào đó khi lớp của học viên đã học xong môn học này 10 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng KETQUATHI - Output: Ràng buộc để học sinh chỉ được thi nếu lớp của học viên đã học viên đã học xong môn học này - Hướng giải thuật:  Trigger sử dụng các biến @NGTHI và @DENNGAY để lưu trữ giá trị của NGTHI và DENNGAY từ bảng INSERTED  Trigger lấy dữ liệu từ bảng INSERTED để so sánh thông tin về học viên (MAHV), lớp học (MALOP), và môn học (MAMH)  Sau đó, trigger kiểm tra xem thời gian thi (@NGTHI) có lớn hơn thời gian kết thúc học môn học đó (@DENNGAY) hay không Nếu có, trigger in ra thông báo "SUCCESSFUL! KETQUATHI HOP LE."  Trong trường hợp không, trigger sẽ thực hiện ROLLBACK và in ra thông báo lỗi "ERROR! LOP CUA HV CHUA HOC XONG MON NAY"  Khi có sự thêm mới hoặc cập nhật dữ liệu vào bảng KETQUATHI, trigger sẽ được kích hoạ Câu 12: Mỗi học kỳ của một năm học, một lớp chỉ được học tối đa 3 môn 11 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng GIANGDAY - Output: Ràng buộc để trong mỗi học kì của một năm thì một lớp học chỉ được học tối đa 3 môn - Hướng giải thuật:  Khi có sự thêm mới hoặc cập nhật dữ liệu vào bảng GIANGDAY, trigger này sẽ được kích hoạ  Trigger sử dụng một biến @SL_MONHOC để lưu trữ số lượng môn học của mỗi lớp trong cùng học kỳ và cùng năm học  Sử dụng câu lệnh SELECT để đếm số môn học (sử dụng COUNT) và lưu vào biến @SL_MONHOC, dựa trên điều kiện MALOP, HOCKY và NAM tương ứng giữa bảng GIANGDAY và bảng INSERTED sau khi thêm mới hoặc cập nhật dữ liệu  Nếu số lượng môn học vượt quá 3, trigger sẽ thực hiện ROLLBACK để hủy bỏ các thay đổi và in ra thông báo lỗi "ERROR! LOP NAY DA HOC HON 3 MON TRONG CUNG HOCKY, NAM" Câu 13: Sỉ số của một lớp bằng với số lượng học viên thuộc lớp đó 12 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng HOCVIEN, LOP - Output: Ràng buộc để sỉ số của một lớp bằng số học viên của lớp đó - Hướng giải thuật: 13 | P a g e IT004 – Cơ sở dữ liệu  Trigger TRG_LOP_THEM_17:  Mục đích: Đảm bảo rằng khi một lớp mới được thêm vào, sỉ số của lớp không được bằng 0  Khi có sự thêm mới vào bảng LỚP, trigger này sẽ kiểm tra xem số lượng sinh viên (SISO) của lớp mới có khác 0 hay không Nếu khác 0, sẽ in ra thông báo "THANH CONG", ngược lại trigger sẽ in ra thông báo "ERROR" và thực hiện ROLLBACK TRANSACTION  Trigger TRG_LOP_SUA_17:  Mục đích: Đảm bảo rằng khi có sự cập nhật thông tin của lớp, sỉ số của lớp phải bằng số lượng học viên thuộc lớp đó  Khi có sự cập nhật thông tin lớp, trigger này sẽ so sánh số lượng sinh viên (SISO) của lớp với số lượng học viên thuộc lớp tương ứng Nếu bằng nhau, sẽ in ra thông báo "THANH CONG", ngược lại sẽ in ra "ERROR" và thực hiện ROLLBACK TRANSACTION  Trigger TRG_HOCVIEN_THEM_SUA_17:  Mục đích: Cập nhật số lượng sinh viên (SISO) của lớp sau khi có sự thêm mới hoặc cập nhật thông tin học viên  Khi có sự thêm mới hoặc cập nhật thông tin học viên, trigger này sẽ cập nhật lại SISO của lớp tương ứng bằng cách tăng thêm số lượng học viên mới vào lớp  Trigger TRG_HOCVIEN_XOA_SUA_17:  Mục đích: Cập nhật số lượng sinh viên (SISO) của lớp sau khi có sự xóa hoặc cập nhật thông tin học viên  Khi có sự xóa hoặc cập nhật thông tin học viên, trigger này sẽ cập nhật lại SISO của lớp tương ứng bằng cách giảm đi số lượng học viên bị xóa hoặc cập nhật 14 | P a g e IT004 – Cơ sở dữ liệu Câu 14: Trong quan hệ DIEUKIEN giá trị của thuộc tính MAMH và MAMH_TRUOC trong cùng một bộ không được giống nhau (“A”, “A”) và cũng không tồn tại hai bộ (“A”, “B”) và (“B”, “A”) - Input: Bảng DIEUKIEN - Output: Ràng buộc để thuộc tính MAMH và MAMH_TRUOC trong quan hệ DIEUKIEN ở cùng 1 bộ thì không được giống nhau và cũng không tồn tại 2 bộ ví dụ như (“A”, “B”), (“B”, “A”) - Hướng giải thuật:  Khi có sự thêm mới hoặc cập nhật dữ liệu vào bảng DIEUKIEN, trigger này sẽ được kích hoạ  Trigger sử dụng các biến @MAMH và @MAMH_TRC để lưu trữ giá trị của MAMH và MAMH_TRUOC từ bảng INSERTED  Trigger kiểm tra xem giá trị của MAMH có bằng với giá trị của MAMH_TRUOC hay không Nếu có, trigger sẽ in ra thông báo lỗi và thực hiện ROLLBACK để hủy bỏ các thay đổi  Nếu giá trị của MAMH không bằng với giá trị của MAMH_TRUOC, trigger sẽ kiểm tra xem đã tồn tại bộ dữ liệu có giá trị MAMH_TRUOC là MAMH và MAMH_TRUOC là MAMH hay không Nếu tồn tại, trigger sẽ in ra thông báo lỗi và thực hiện ROLLBACK  Nếu không có trường hợp nào trên, trigger sẽ in ra thông báo "THANH CONG" Câu 15: Các giáo viên có cùng học vị, học hàm, hệ số lương thì mức lương bằng nhau 15 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng GIAOVIEN - Output: Ràng buộc để các giáo viên có cùng học vị, học hàm thì mức lương bằng nhau - Hướng giải thuật:  Trigger này được kích hoạt sau mỗi lần có thay đổi hoặc thêm mới giáo viên (FOR INSERT, UPDATE)  Trigger sử dụng biến @MUCLUONG để lưu mức lương và biến @MAGV để lưu mã giáo viên  Trigger sau đó lấy thông tin mức lương (@MUCLUONG) từ bảng GIAOVIEN và mã giáo viên (@MAGV) từ bảng INSERTED (bảng ảo chứa dữ liệu mới được thêm hoặc cập nhật trong bảng GIAOVIEN)  Trigger sử dụng DISTINCT để chọn các bản ghi duy nhất trong bảng GIAOVIEN và INSERTED dựa trên các tiêu chí học vị, học hàm và hệ số lương tương đồng nhau  Trigger sau đó cập nhật mức lương của các giáo viên có thông tin tương tự nhau để chắc chắn rằng họ sẽ có cùng mức lương Câu 16: Học viên chỉ được thi lại (lần thi >1) khi điểm của lần thi trước đó dưới 5 16 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng KETQUATHI - Output: Ràng buộc để học sinh chỉ được thi lại nếu lần thi trước đó có điểm dưới 5 - Hướng giải thuật:  Trigger này được kích hoạt sau khi có sự thêm mới hoặc cập nhật dữ liệu trong bảng KETQUATHI (FOR INSERT, UPDATE)  Trigger sử dụng biến @LANTHI để lưu trữ số lần thi và @DIEM để lưu trữ điểm  Trigger sau đó lấy số lần thi (@LANTHI) từ bảng INSERTED (bảng chứa dữ liệu mới được thêm hoặc cập nhật trong bảng KETQUATHI)  Nếu số lần thi lớn hơn 1 (lần thi > 1), trigger sẽ tiến hành kiểm tra điểm của lần thi trước đó  Trigger lấy điểm (@DIEM) của lần thi trước đó và kiểm tra xem điểm có đạt từ 5 trở lên hay không Nếu có, trigger sẽ thực hiện ROLLBACK TRANSACTION và in ra thông báo "HV NAY DA THI DAT"  Trong trường hợp điểm không đạt, trigger tiếp tục thực hiện việc xóa các kết quả thi có số lần thi lớn hơn số lần thi hiện tại Câu 17: Ngày thi của lần thi sau phải lớn hơn ngày thi của lần thi trước (cùng học viên, cùng môn học) 17 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng KETQUATHI - Output: Ràng buộc để ngày thi của lần thi sau sẽ lớn hơn ngày thi của lần thi trước - Hướng giải thuật:  Khi có sự thêm mới hoặc cập nhật dữ liệu trong bảng KETQUATHI, trigger này sẽ được kích hoạt (FOR INSERT, UPDATE)  Trigger sử dụng biến @MAHV để lưu trữ mã học viên, @MAMH để lưu trữ mã môn học, @LANTHI để lưu trữ số lần thi, và @NGTHI để lưu trữ ngày thi  Sau đó, trigger lấy thông tin về số lần thi, mã học viên, mã môn học, và ngày thi từ bảng INSERTED và bảng KETQUATHI  Trigger kiểm tra xem ngày thi của lần thi hiện tại có lớn hơn ngày thi của lần thi tiếp theo của học viên đó không Nếu không thỏa mãn, trigger sẽ thực hiện ROLLBACK TRANSACTION Câu 18:Học viên chỉ được thi những môn mà lớp của học viên đó đã học xong 18 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng HOCVIEN - Output: Ràng buộc để học viên chỉ thi được những môn mà lớp học viên đó đã học xong - Hướng giải thuật:  Khi có sự cập nhật thông tin của học viên trong bảng HOCVIEN, trigger này sẽ được kích hoạt (AFTER UPDATE)  Trigger sử dụng biến @MAHV để lưu trữ mã học viên và @MALOP để lưu trữ mã lớp học sau khi có sự cập nhật thông tin  Sau đó, trigger kiểm tra xem học viên có thi môn học mà lớp của học viên chưa học xong không, thông qua việc so sánh dữ liệu trong bảng KETQUATHI và GIANGDAY  Nếu phát hiện rằng học viên đó thi môn mà lớp của học viên chưa học xong, hoặc thi vào thời gian không phù hợp, trigger sẽ thực hiện ROLLBACK TRANSACTION  Ngược lại, nếu học viên thỏa mãn điều kiện, trigger sẽ in ra thông báo "THANH CONG" Câu 19: Khi phân công giảng dạy một môn học, phải xét đến thứ tự trước sau giữa các môn học (sau khi học xong những môn học phải học trước mới được học những môn liền sau) 19 | P a g e IT004 – Cơ sở dữ liệu - Input: Bảng GIANGDAY - Output: Ràng buộc để muốn học những môn học tiếp theo phải xem có môn học nào liền trước đó không mới có thể học được - Hướng giải thuật: Câu 20: Giáo viên chỉ được phân công dạy những môn thuộc khoa giáo viên đó phụ trách - Input: Bảng GIANGDAY - Output: Ràng buộc để giáo viên chỉ được phân công dạy những môn thuộc khoa giao viên đó phụ trách - Hướng giải thuật:  Trigger này được kích hoạt sau mỗi lần có sự thêm mới hoặc cập nhật dữ liệu trong bảng GIANGDAY (FOR INSERT, UPDATE)  Trigger sử dụng biến @MAKHOA1 để lưu trữ mã khoa của môn học và @MAKHOA2 để lưu trữ mã khoa của giáo viên 20 | P a g e

Ngày đăng: 20/03/2024, 22:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w