Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Quản lý sinh viênChuong_Trinh_Hoc
Ma_CT
Ten_CT
Giang_KhoaMa_CT
Ma_Khoa
MaMH
Nam_Hoc
Hoc_Ky
STLT
STTH
So_Tin_Chi
Ket_QuaMaSV
MaMH
Lan_Thi
Diem_Thi
KhoaMa_Khoa
Ten_Khoa
Nam_Thanh_Lap
Khoa_HocMa_Khoa_Hoc
Nam_Bat_Dau
Nam_Ket_Thuc
LopMa_Lop
Ma_Khoa
Ma_Khoa_Hoc
Ma_CT
STT
Mon_HocMaMH
Ma_Khoa
TenMH
Sinh_VienMaSV
Ho_Ten
Nam_Sinh
Dan_Toc
Ma_Lop
Bài tập SP
Hãy viết các Stored Procedure sau:
1. In danh sách các sinh viên của 1 lớp học
2. Nhập vào 2 sinh viên, 1 môn học, tìm xem sinh viên nào có điểm thi môn học đó lần đầu tiên là cao hơn.
3. Nhập vào 1 môn học và 1 mã sv, kiểm tra xem sinh viên có đậu môn này trong lần thi đầu tiên
không (đậu nếu điểm >=5), nếu đậu thì xuất ra là “Đậu”, không thì xuất ra “Không đậu”
4. Nhập vào 1 khoa, in danh sách các sinh viên (mã sinh viên, họ tên, ngày sinh) thuộc khoa này.
5. Nhập vào 1 sinh viên và 1 môn học, in điểm thi của sinh viên này của các lần thi môn học đó.
Ví dụ: Lần 1 : 10 Lần 2: 8
6. Nhập vào 1 sinh viên, in ra các môn học mà sinh viên này phải học.
7. Nhập vào 1 môn học, in danh sách các sinh viên đậu môn này trong lần thi đầu tiên.
8. In điểm các môn học của sinh viên có mã số là maSinhVien được nhập vào.
Chú ý: điểm của môn học là điểm thi của lần thi sau cùng
Bài tập SP
Thêm 1 quan hệ XepLoai (MaSV, diemTrungBinh, ketQua, hoc Luc)
9. Đưa dữ liệu vào bảng xếp loại:
- diemTrungBinh được tính từ các môn đã có điểm của sinh viên. Điểm trung bình được tính dựa trên điểm thi lần sau cùng.
- ketQua của sinh viên là ”Đạt‘ nếu diemTrungBinh của sinh viên đó lớn hơn hoặc bằng 5 và không quá 2 môn dưới 4 điểm, ngược lại thì kết quả là không đạt.
- Đối với những sinh viên có ketQua là ”Đạt‘ thì hocLuc được xếp loại như sau:
• diemTrungBinh >= 8 thì hocLuc là ”Giỏi”
• 7 < = diemTrungBinh < 8 thì hocLuc là ”Khá” Còn lại là ”Trung bình”
10. In ra điểm trung bình cho các sinh viên có tham gia đầy đủ các môn học của khoa, chương trình mà sinh viên đang theo học.
11. Thêm dữ liệu kết quả: Nhận vào tham số mã sinh viên, mã môn học, điểm thi. Lần thi sẽ đượctự động tính bằng lần thi cao nhất hiện tại của sinh viên cho môn học đó + 1. Tiến hành thêmvào bảng kết quả dòng mới với các thông tin tương ứng.
Bài tập Function
Hãy viết các Function sau:
1. Với 1 mã sinh viên và 1 mã khoa, kiểm tra xem sinh viên có thuộc khoa này không (trả về đúng hoặc sai)
2. Tính điểm thi sau cùng của một sinh viên trong một môn học cụ thể
3. Tính điểm trung bình của một sinh viên (chú ý : điểm trung bình được tính dựa trên lần thi sau cùng), sử dụng function 2 đã viết
4. Nhập vào 1 sinh viên và 1 môn học, trả về các điểm thi của sinh viên này trong các lần thi của mônhọc đó.
5. Nhập vào 1 sinh viên, trả về danh sách các môn học mà sinh viên này phải học.
6. Nhập vào mã môn học, trả về điểm thi lần đầu của các sinh viên tham gia môn học này
7. Nhập vào mã môn học, in ra điểm cao nhất đạt được của môn học này
8. Nhập vào mã khoa, trả về danh sách lớp thuộc khoa này kèm số lượng sinh viên của mỗi lớp
Bài tập Trigger1. Viết trigger cho bảng Chuong_Trinh_Hoc tương ứng với hành động thêm/cập nhật dữ liệu để
kiểm tra ràng buộc Mã chương trình (Chuong_Trinh.Ma_CT) chỉ có thể bắt đầu là ‘CQ‘ hoặc ‘CD‘ hoặc ‘TC’
2. Viết trigger cho bảng Giang_Khoa tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tracác ràng buộc sau:
• Chỉ có 2 học kỳ là ‘HK1‘ và ‘HK2‘
• Số tiết lý thuyết tối đa là 120
• Số tiết thực hành tối đa là 60
• Số tiết lý thuyết không nhỏ hơn số tiết thực hành
• Số tín chỉ của một môn học tối đa là 6
3. Viết trigger cho bảng Ket_Qua tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tra ràngbuộc: Kiểm tra và báo lỗi nếu điểm <0 hoặc >10, và tự động làm tròn với độ chính xác đến 0.5.
4. Viết trigger cho bảng Khoa_hoc tương ứng với hành động thêm/cập nhật dữ liệu để kiểm tra ràngbuộc: Năm kết thúc khóa học phải lớn hơn hoặc bằng năm bắt đầu, và mã khóa học phải bắt đầubằng ‘K’
5. Viết trigger cho bảng Sinh_Vien tương ứng với hành động cập nhật dữ liệu để kiểm tra ràng buộc, nếu sửa năm sinh thì năm sinh mới phải khác năm sinh cũ và năm sinh phải từ 1980 đến 2002.
6. Viết trigger cho bảng Ket_Qua tương ứng với hành động xóa dữ liệu: không cho phép xóa kết quảcủa lần thi đầu tiên (lần 1).
Bài tập Trigger
7. Viết trigger cho bảng Mon_hoc tương ứng với hành động thêm/cập nhật dữ liệu để kiểmtra ràng buộc: Tên môn học phải duy nhất.8. Viết trigger cho bảng Lop tương ứng với hành động thêm/cập nhật dữ liệu để kiểm traràng buộc: Năm bắt đầu khóa học của một lớp không thể nhỏ hơn năm thành lập của khoa quản lý lớp đó.9. Viết trigger cho bảng Ket_qua tương ứng với hành động thêm/cập nhật dữ liệu để kiểmtra ràng buộc: Sinh viên chỉ có thể dự thi các môn học thuộc về khoa mà sinh viên đó đang theo học.10. Hãy bổ sung vào quan hệ Lop thuộc tính Siso. Viết trigger cho bảng Lop tương ứngvới hành động thêm/cập nhật dữ liệu để kiểm tra sĩ số của một lớp phải bằng số lượng sinh viên đang theo học lớp đó