1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lab6 Quản lý thông tin IE103 UIT

11 423 1

Đ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

Định dạng
Số trang 11
Dung lượng 503,73 KB

Nội dung

Bài tập thực hành môn Quản lý Thông tin tuần 6 Câu 1 Liệt kê các thực thể có mặt trong CSDL trên SINHVIEN, DETAI, GIAOVIEN, HOCVI, CHUYENNGANH, HOCHAM, HOIDONG Câu 2 Mô tả lược đồ quan hệ cho CSDL trên Vẽ sơ đồ Diagram cho các quan hệ trên (sử dụng chức năng tạo Diagram trong SQL Server) SINHVIEN (MSSV, TENSV, SODT, LOP, DIACHI) DETAI (MSDT, TENDT) SV DETAI (MSSV, MSDT) GIAOVIEN (MSGV, TENGV, DIACHI, SODT, MSHH, NAMHH) HOCVI (MSHV, TENHV) CHUYENNGANH (MSCN, TENCN) GV HV CN (MSGV, MSHV, MSCN, NAM.

Bài tập thực hành môn Quản lý Thông tin tuần Câu 1: Liệt kê thực thể có mặt CSDL SINHVIEN, DETAI, GIAOVIEN, HOCVI, CHUYENNGANH, HOCHAM, HOIDONG Câu 2: Mô tả lược đồ quan hệ cho CSDL Vẽ sơ đồ Diagram cho quan hệ (sử dụng chức tạo Diagram SQL Server) SINHVIEN (MSSV, TENSV, SODT, LOP, DIACHI) DETAI (MSDT, TENDT) SV_DETAI (MSSV, MSDT) GIAOVIEN (MSGV, TENGV, DIACHI, SODT, MSHH, NAMHH) HOCVI (MSHV, TENHV) CHUYENNGANH (MSCN, TENCN) GV_HV_CN (MSGV, MSHV, MSCN, NAM) HOCHAM (MSHH, TENHH) GV_HDDT (MSGV, MSDT, DIEM) GV_PBDT (MSGV, MSDT, DIEM) GV_UVDT (MSGV, MSDT, DIEM) HOIDONG (MSHD, PHONG, TGBD, NGAYHD, TINHTRANG, MSGV) HOIDONG_GV (MSHD, MSGV) HOIDONG_DT (MSHD, MSDT, QUYETDINH) Sơ đồ Diagram: SV_DETAI SINHVIEN MSSV MSSV TENSV MSDT SODT GV_PBDT LOP MSGV DIACHI MSDT DETAI GV_HDDT DIEM MSDT MSGV TENDT MSDT DIEM GV_UVDT HOIDONG_DT MSGV MSHD MSDT MSDT QUYETDINH DIEM HOIDONG_GV MSHD MSGV HOIDONG MSHD HOCHAM PHONG MSHH TGBD TENHH NGAYHD TINHTRANG MSGV GIAOVIEN MSGV TENGV DIACHI SODT MSHH GV_HV_CN NAMHH MSGV MSHV MSCN NAM CHUYENNGANH HOCVI MSHV TENHV MSCN TENCN Câu 3: Hiện thực ràng buộc sau Yêu cầu phát biểu ràng buộc, vẽ bảng tầm ảnh hưởng, sau thực SQL Server 3.1 Một sinh viên tham gia đề tài Bảng tầm ảnh hưởng: Thêm Sửa SINHVIEN DETAI SV_DETAI + +(MSSV) - Trigger cho thao tác thêm liệu bảng SV_DETAI: Xóa -(*) -(*) - create trigger TRG_SV_DETAI_INSERT on SV_DETAI for insert as begin declare @MSSV char(8), @SLDT int select @MSSV = MSSV from inserted select @SLDT = count(MSDT) from SV_DETAI where MSSV = @MSSV if(@SLDT > 1) begin print 'Mot sinh vien chi duoc tham gia mot de tai!' rollback transaction end end - Trigger cho thao tác sửa liệu bảng SV_DETAI: create trigger TRG_SV_DETAI_UPDATE on SV_DETAI for update as begin declare @MSSV char(8), @SLDT int select @MSSV = MSSV from inserted select @SLDT = count(MSDT) from SV_DETAI where MSSV = @MSSV if(@SLDT > 1) begin print 'Mot sinh vien chi duoc tham gia mot de tai!' rollback transaction end end 3.2 Một đề tài khơng có sinh viên tham gia Bảng tầm ảnh hưởng: Thêm Sửa SINHVIEN DETAI SV_DETAI + +(MSDT) - Trigger cho thao tác thêm liệu bảng SV_DETAI: create trigger TRG_SV_DETAI_MAX_BA_INSERT on SV_DETAI for insert as begin declare @MSDT char(8), @SLSV int select @MSDT = MSDT from inserted select @SLSV = count(MSSV) from SV_DETAI where MSDT = @MSDT if(@SLSV > 3) begin print 'Mot de tai khong qua sinh vien!' rollback transaction end end - Trigger cho thao tác sửa liệu bảng SV_DETAI: create trigger TRG_SV_DETAI_MAX_BA_UPDATE on SV_DETAI for update as begin declare @MSDT char(8), @SLSV int select @MSDT = MSDT from inserted select @SLSV = count(MSSV) from SV_DETAI where MSDT = @MSDT if(@SLSV > 3) begin print 'Mot de tai khong qua sinh vien!' rollback transaction end end Xóa -(*) -(*) - 3.3 Điểm đề tài thang điểm từ đến 10 Bảng tầm ảnh hưởng: Thêm Sửa Xóa GV_UVDT + +(DIEM) - GV_HDDT + +(DIEM) - GV_PBDT + +(DIEM) - - Thêm ràng buộc DIEM bảng GV_UVDT: alter table GV_UVDT add constraint CHECK_DIEM_GV_UVDT check (DIEM between and 10) - Thêm ràng buộc DIEM bảng GV_HDDT: alter table GV_HDDT add constraint CHECK_DIEM_GV_HDDT check (DIEM between and 10) -Thêm ràng buộc DIEM bảng GV_PBDT: alter table GV_PBDT add constraint CHECK_DIEM_GV_PBDT check (DIEM between and 10) 3.4 GV chủ tịch hội đồng phải có học vị tiến sĩ Thêm Sửa HOIDONG + +(MSGV) GIAOVIEN HOCVI GV_HV_CN +(MSGV, MSHV) - Trigger cho thao tác thêm liệu bảng HOIDONG: Xóa -(*) -(*) -(*) + create trigger TRG_TS_MSGV_HOIDONG_INSERT on HOIDONG for insert as begin declare @MSGV char(8), @MSHV int select @MSGV = MSGV from inserted select @MSHV = MSHV from GV_HV_CN where MSGV = @MSGV if (@MSHV != 4) begin print 'Chu tich hoi dong phai co hoc vi tien si' rollback transaction end end - Trigger cho thao tác sửa liệu bảng HOIDONG: create trigger TRG_TS_MSGV_HOIDONG_UPDATE on HOIDONG for update as begin declare @MSGV char(8), @MSHV int select @MSGV = MSGV from inserted select @MSHV = MSHV from GV_HV_CN where MSGV = @MSGV if (@MSHV != 4) begin print 'Chu tich hoi dong phai co hoc vi tien si' rollback transaction end end - Trigger cho thao tác sửa liệu bảng GV_HV_CN: create trigger MSGV_MSHV_GV_HV_CN_UPDATE on GV_HV_CN for UPDATE as begin if ( exists ( select * from HOIDONG, inserted where HOIDONG.MSGV = inserted.MSGV) ) begin declare @MSGV char(8), @MSHV int select @MSGV = MSGV from inserted select @MSHV = MSHV from GV_HV_CN where MSGV = @MSGV if (@MSHV != 4) begin print 'Chu tich hoi dong phai co hoc vi tien si' rollback transaction end end end - Trigger cho thao tác xóa liệu bảng GV_HV_CN: create trigger MSGV_MSHV_GV_HV_CN_DELETE on GV_HV_CN for delete as begin if ( exists ( select * from HOIDONG, deleted where HOIDONG.MSGV = deleted.MSGV) ) begin declare @MSHV int select @MSHV = MSHV from deleted if (@MSHV = 4) begin print 'Chu tich hoi dong phai co hoc vi tien si' rollback transaction end end end Câu 4: Viết truy vấn xử lý thông tin sau sử dụng Function, stored procedured: 4.1 Tìm điểm trung bình đề tài create procedure TINH_DTB @MSDT char(6), @DIEMTB float OUTPUT as begin select @DIEMTB = (SUM(GV_HDDT.DIEM) + SUM(GV_PBDT.DIEM) + SUM(GV_UVDT.DIEM)) / (count(GV_HDDT.MSGV) + count(GV_PBDT.MSGV) + count(GV_UVDT.MSGV)) from DETAI as A inner join GV_HDDT on A.MSDT = GV_HDDT.MSDT inner join GV_UVDT on A.MSDT = GV_UVDT.MSDT inner join GV_PBDT on a.MSDT = GV_PBDT.MSDT where A.MSDT = @MSDT if (@DIEMTB is null) set @DIEMTB = end declare @A float Tạo biến A exec TINH_DTB '97005', @A OUTPUT Truyền MSDT A vào hàm TINH_DTB print @A – In giá trị biến A 4.2 In danh sách điểm trung bình đề tài danh sách đề tài create function F_TINH_DTB (@MSDT char(6)) returns float as begin declare @DIEMTB float select @DIEMTB = (SUM(GV_HDDT.DIEM) + SUM(GV_PBDT.DIEM) + SUM(GV_UVDT.DIEM)) / (count(GV_HDDT.MSGV) + count(GV_PBDT.MSGV) + count(GV_UVDT.MSGV)) from DETAI as A inner join GV_HDDT on A.MSDT = GV_HDDT.MSDT inner join GV_UVDT on A.MSDT = GV_UVDT.MSDT inner join GV_PBDT on a.MSDT = GV_PBDT.MSDT where A.MSDT = @MSDT if (@DIEMTB is null) set @DIEMTB = return @DIEMTB end In danh sách điểm trung bình đề tài select MSDT, TENDT, dbo.F_TINH_DTB(MSDT) DIEM_TB from DETAI 4.3 In danh sách giảng viên có phản biện đề tài create procedure DS_GV_PBDT as begin select distinct GIAOVIEN.* from GIAOVIEN, GV_PBDT where GIAOVIEN.MSGV = GV_PBDT.MSGV end In danh sách giảng viên có phản biện đề tài exec DS_GV_PBDT 4.4 In danh sách đề tài hội đồng create procedure DS_DETAI_HOIDONG @MSHD int as begin select HD.MSHD, DETAI.* from DETAI, HOIDONG_DT HD where DETAI.MSDT = HD.MSDT AND @MSHD=HD.MSHD end In danh sách đề tài hội đồng (1) exec DS_DETAI_HOIDONG Câu 5: Phân quyền, xác thực 5.1 Tạo user: GIANGVIEN, GIAOVU SINHVIEN, đặt mật tuỳ ý  Tạo login user  create login GIANGVIEN with password = '12345' create login GIAOVU with password = '12345' create login SINHVIEN with password = '12345' Tạo database user create user GIANGVIEN for login GIANGVIEN create user GIAOVU for login GIAOVU create user SINHVIEN for login SINHVIEN 5.2 Phân quyền cho user database sau:  GIAOVU có quyền xem chỉnh sửa tất bảng grant grant grant grant grant grant grant grant grant grant grant grant grant grant  update update update update update update update update update update update update update update on on on on on on on on on on on on on on SINHVIEN to GIAOVU DETAI to GIAOVU SV_DETAI to GIAOVU GIAOVIEN to GIAOVU HOCVI to GIAOVU CHUYENNGANH to GIAOVU GV_HV_CN to GIAOVU HOCHAM to GIAOVU GV_HDDT to GIAOVU GV_PBDT to GIAOVU GV_UVDT to GIAOVU HOIDONG to GIAOVU HOIDONG_GV to GIAOVU HOIDONG_DT to GIAOVU GIANGVIEN có quyền xem bảng liên quan đến thông tin giáo viên, thông tin học sinh, đề tài mà GV hướng dẫn, phản biện hay làm uỷ viên, xem thông tin hội đồng grant grant grant grant grant grant  select, select, select, select, select, select, select, select, select, select, select, select, select, select, select select select select select select on on on on on on GIAOVIEN to GIANGVIEN SINHVIEN to GIANGVIEN GV_HDDT to GIANGVIEN GV_PBDT to GIANGVIEN GV_UVDT to GIANGVIEN HOIDONG to GIANGVIEN GIANGVIEN có quyền cập nhật thông tin giảng viên grant update on GIAOVIEN to GIANGVIEN  SINHVIEN có quyền xem thơng tin sinh viên, hội đồng đề tài hữu hệ thống grant select on SINHVIEN to SINHVIEN grant select on HOIDONG to SINHVIEN grant select on DETAI to SINHVIEN  Tất người dùng khơng có quyền xố thơng tin deny deny deny deny deny deny deny deny deny deny deny deny deny deny delete delete delete delete delete delete delete delete delete delete delete delete delete delete on on on on on on on on on on on on on on SINHVIEN to GIANGVIEN, GIAOVU, SINHVIEN DETAI to GIANGVIEN, GIAOVU, SINHVIEN SV_DETAI to GIANGVIEN, GIAOVU, SINHVIEN GIAOVIEN to GIANGVIEN, GIAOVU, SINHVIEN HOCVI to GIANGVIEN, GIAOVU, SINHVIEN CHUYENNGANH to GIANGVIEN, GIAOVU, SINHVIEN GV_HV_CN to GIANGVIEN, GIAOVU, SINHVIEN HOCHAM to GIANGVIEN, GIAOVU, SINHVIEN GV_HDDT to GIANGVIEN, GIAOVU, SINHVIEN GV_PBDT to GIANGVIEN, GIAOVU, SINHVIEN GV_UVDT to GIANGVIEN, GIAOVU, SINHVIEN HOIDONG to GIANGVIEN, GIAOVU, SINHVIEN HOIDONG_GV to GIANGVIEN, GIAOVU, SINHVIEN HOIDONG_DT to GIANGVIEN, GIAOVU, SINHVIEN Câu 6: Thiết kế report cho đề tài sau: a Thông tin GV phản biện b Thông tin hội đồng chấm đề tài c Thông tin điểm đề tài (lưu ý: điểm làm tròn chữ số) ... GIAOVU GIANGVIEN có quyền xem bảng liên quan đến thông tin giáo viên, thông tin học sinh, đề tài mà GV hướng dẫn, phản biện hay làm uỷ viên, xem thông tin hội đồng grant grant grant grant grant grant... GIANGVIEN, GIAOVU, SINHVIEN Câu 6: Thiết kế report cho đề tài sau: a Thông tin GV phản biện b Thông tin hội đồng chấm đề tài c Thông tin điểm đề tài (lưu ý: điểm làm tròn chữ số) ... transaction end end end Câu 4: Viết truy vấn xử lý thông tin sau sử dụng Function, stored procedured: 4.1 Tìm điểm trung bình đề tài create procedure TINH_DTB @MSDT char(6), @DIEMTB float OUTPUT

Ngày đăng: 16/06/2022, 23:12

TỪ KHÓA LIÊN QUAN

w