HỌC VIỆN KỸ THUẬT QUÂN SỰ BỘ MÔN CÁC HỆ THÔNG THÔNG TIN – KHOA CNTT BÁO CÁO BÀI TẬP LỚN Đềtài: Quản lý sinh viên của trường đại học GIÁO VIÊN HƯỚNG DẪN: NGUYỄN MẠNH HÙNGHỌC VIÊN THỰC HIỆ
Trang 1HỌC VIỆN KỸ THUẬT QUÂN SỰ
BỘ MÔN CÁC HỆ THÔNG THÔNG TIN – KHOA CNTT
BÁO CÁO BÀI TẬP LỚN
Đềtài:
Quản lý sinh viên của trường đại học
GIÁO VIÊN HƯỚNG DẪN: NGUYỄN MẠNH HÙNGHỌC VIÊN THỰC HIỆN:
VŨ SỸ ĐẠTNGUYỄN VIẾT HỌC Lớp: Tin học k44
Trang 2Mục lục
I Các chức năng của hệ thống 3
II Thiết kế cơ sở dữ liệu 4
1 Các bảng 4
2 Sơ đồ quan hệ giữa các bảng 9
III Mô tả các thủ tục, hàm, trigger 9
1 Mô tả các thủ tục 9
2 Mô tả các hàm 10
3 Mô tả các trigger 11
IV Mô tả các view 11
1 View danh sách sinh viên có cùng địa chỉ 11
V Quản trị cơ sở dữ liệu 12
1 Tạo các login 12
2 Tạo các role 12
3 Tạo các user 13
4 Cấp phát quyền cho role và user sử dụng giao diện MS SQL Management Studio 14
5 Cấp phát quyền cho role và user sử dụng các câu lệnh T-SQL 18
VI Mã nguồn một số thủ tục, hàm, trigger 20
1 Mã nguồn một số thủ tục 20
2 Mã nguồn một số hàm 21
3 Mã nguồn một số trigger 23
VII Kết luận 24
Trang 3I Cỏc chức năng của hệ thống.
Lu trữ và khai thác đợc hồ sơ sinh viên trong quá trình học tập và sau khi tốt
nghiệp
Quản lý chơng trình đào tạo của các chuyên ngành theo từng khoa (gồm
danh sách các môn học và tiến trình đào tạo)
In danh sách sinh viên đợc nhận học bổng trên cơ sở kết quả điểm thi trong
mỗi học kỳ
Trợ giúp cho việc ra quyết định cấp bằng tốt nghiệp
In bảng điểm kèm theo Bằng tốt nghiệp của sinh viên
Tra cứu các thông tin về số lợng, danh sách sinh viên theo ngành, địa
ph-ơng
II Thiết kế cơ sở dữ liệu
1 Cỏc bảng
HoSo.SinhVien
Column Name Description Datatype Length Allow Null
TenSV Tờn sinh viờn varchar 30
Trang 4hi
Trang 5Column Name Description Datatype Length Allow Null
5
Trang 6Column Name Description Datatype Length Allow Null
Trang 7Column Name Description Datatype Length Allow Null
TenGV Tên giáo viên varchar 20
Column Name Description Datatype Length Allow Null
MaCN Mã chuyên ngành Varchar 10
MaKho
a
7
Trang 82 Sơ đồ quan hệ giữa các bảng
III Mô tả các thủ tục, hàm, trigger.
Trang 10b Thủ tục đưa ra danh sách sinh viên trong một chuyên nghành
- Tên: DanhSachSinhVienTrongChuyenNghanh
- Kết quả: Đưa ra danh sách sinh viên trong chuyên nghành
- Các bước thực hiện:
+ Nhập vào Mã chuyên nghành+ Đưa ra danh sách sinh viên có trường chuyên nghànhtrùng với tham số mã chuyên nghành truyển vào
c Thủ tục đưa ra danh sách sinh viên còn nợ môn trong khóa
- Tên: SinhVienNoMonTrongKhoa
- Kết quả: Danh sách các sinh viên còn nợ môn trong khóa
- Các bước thực hiện:
+ Nhập vào khóa học cần kiểm tra
+ Lấy danh sách sinh viên trong khóa+ Kiểm tra các môn học với lần thi lại cao nhất mà số điểm
o Tìm kiếm sinh viên có điểm tổng kết >=8
o Select trên bảng tạm để đưa ra danh sách các sinh viên được
nhận học bổng
Trang 11b Hàm tìm kiếm trên dữ liệu đa cấp.
- Tên : TimCapDuoi
- Kết quả thực hiện : Tìm kiếm tất cả giáo viên cấp dưới của một giáo
viên nào đó
- Các bước thực hiện :
o Nhập mã giáo viên cần tìm kiếm
o Tạo một bảng tạm có cấu trúc giống với bảng gốc [HoSo].[GiaoVien]
o Chèn thông tin các giáo viên có cấp trên là mã giáo viên nhập vào
- Kết quả: Ngăn chặn việc cố gắng tạo login
- Các bước thực hiện: khi có đối tượng định tạo login trigger lập tức được gọi, hủy hành động này
b Trigger kiểm tra dữ liệu nhập bảng BangDiem
- Tên: tg_RangBuocLanThi
- Kết quả: chỉ cho phép nhập thêm dữ liệu lần thi tiếp theo của sinh viên
- Các bước thực hiện:
+ Thêm dữ liệu vào bảng
+ kiểm tra xem lần thi trước đó có liền kề không
+ Nếu liền kề thì cho phép nhập
+ Nếu không liền kề thì hủy hành động
IV Mô tả các view
1 View danh sách sinh viên có cùng địa chỉ.
- Tên view: DanhSachQue
- Kết quả thực hiện: Hiển thị danh sách các sinh viên có cùng quê
Trang 12go select * from QuanLy DanhSachQue
V Quản trị cơ sở dữ liệu
1 Tạo các login
2 Tạo các role
1 nhomquanly Có mọi quyền trong các bảng thuộc schema
DaoTao, Khoa, QuanLy
2 nhomsudung Có quyền select đến các bảng thuộc schema
HoSo, Khoa, QuanLy
Trang 144 Cấp phát quyền cho role và user sử dụng giao diện MS SQL Management Studio
a Quyền cho role
Role nhomquanly
Role nhomsudung
Trang 15b Quyền cho user
User admin
User khoa
15
Trang 16 User daotao
User giaovien
Trang 17 User sinhvien
User hoso
17
Trang 18 User quanly
5 Cấp phát quyền cho role và user sử dụng các câu lệnh T-SQL
a Quyền cho role.
Role nhomquanly
GRANT CONTROL ON [DaoTao] [CTCT] TO [nhomquanly]
GRANT CONTROL ON [DaoTao] [ChiTietMon] TO [nhomquanly]
GRANT CONTROL ON [DaoTao] [CT] TO [nhomquanly]
GRANT CONTROL ON [DaoTao] [HocKy] TO [nhomquanly]
GRANT CONTROL ON [DaoTao] [Mon] TO [nhomquanly]
Role nhomsudung
GO
use [QuanLyHoSoSinhVien]
GRANTSELECTONSCHEMA :: [HoSo] TO [nhomsudung]
GRANTSELECTONSCHEMA :: [Khoa] TO [nhomsudung]
GRANTSELECTONSCHEMA :: [QuanLy] TO [nhomsudung]
Trang 19b Quyền cho user
GRANTSELECTON [DaoTao] [Mon] TO [khoa]
GRANTSELECTON [DaoTao] [HocKy] TO [khoa]
GRANTSELECTON [DaoTao] [CT] TO [khoa]
Trang 20VI Mã nguồn một số thủ tục, hàm, trigger.
1 Mã nguồn một số thủ tục.
a Thủ tục xem danh sách sinh viên trong chuyên nghành
ALTERproc [dbo] [DanhSachSinhVienTrongChuyenNghanh]
@MaNghanh varchar ( 10 )
as
select * from HoSo SinhVien where MaCN = @MaNghanh
b Thủ tục xem danh sách sinh viên trong khóa học
ALTERproc [dbo] [DanhSachSinhVienTrongKhoa]
@Khoa DateTime
as
select * from HoSo SinhVien
where year ( NgayNhapHoc )= year ( @Khoa )
c Thủ tục xem sinh viên nợ môn:
ALTERproc [dbo] [SinhVienNoMonTrongKhoa]
@KhoaHoc DateTime
as
select t1 MaSV , t1 MaMon , t1 LanThi , t1 Diem from
QuanLy BangDiem t1 innerjoin
( select MaSV , MaMon , max ( LanThi ) LanThi from
QuanLy BangDiem where MaSV in
( select MaSV from HoSo SinhVien
where year ( NgayNhapHoc )= year ( @KhoaHoc ))
groupby MaSV , MaMon ) as t2
on t1 MaSV = t2 MaSV and t1 MaMon = t2 MaMon and
t1 LanThi = t2 LanThi
where Diem < 5
Trang 212 Mã nguồn một số hàm.
a Hàm thống kê các sinh viên được học bổng sau mỗi một kỳ học
alterfunction hocbong ( @MaHk varchar ( 10 ))
returns @DS table ( MaSV varchar ( 10 ), DTB float )
[Diem] [float] NULL,
[NgayThi] [datetime] NULL,
[LanThi] [int] NULL);
with MaMH ( Mam ) as
(
select MaMon from DaoTao CTCT where MaHK = @MaHk
)
insert @BD1 select MaMon , MaSV , Diem , NgayThi , LanThi from
QuanLy BangDiem , MaMH where MaMon = MaMH Mam
declare @DS1 table ( MaSV varchar ( 10 ), DTB float )
insert @DS1 select MaSV , sum ( Diem )/ count ( Diem ) from @BD1
where Diem isnotnull
Trang 22b Hàm tìm kiếm trên dữ liệu đa cấp.
CREATE FUNCTION TimCapDuoi ( @MaGV varchar ( 10 ))
RETURNS
@Temple TABLE (
[MaGV] [varchar] ( 10 ) PRIMARYKEY ,
[TenGV] [varchar] ( 20 )NOTNULL,
[MaKhoa] [varchar] ( 10 )NOTNULL,
[MaChucVu] [varchar] ( 10 )NULL,
[CapTren] [varchar] ( 10 )NULL)
AS
BEGIN
DECLARE @RowsAdded int
DECLARE @reports TABLE (
[MaGV] [varchar] ( 10 ) PRIMARYKEY ,
[TenGV] [varchar] ( 20 )NOTNULL,
[MaKhoa] [varchar] ( 10 )NOTNULL,
[MaChucVu] [varchar] ( 10 )NULL,
[CapTren] [varchar] ( 10 )NULL,
processed tinyintdefault 0 )
INSERT @reports SELECT
MaGV , TenGV , MaKhoa , MaChucVu , CapTren , 0
FROM HoSo GiaoVien WHERE MaGV = @MaGV
SET @RowsAdded = @@rowcount
WHILE @RowsAdded > 0
BEGIN
UPDATE @reports SET processed = 1 WHERE processed
= 0
INSERT @reports SELECT
GV MaGV , GV TenGV , GV MaKhoa , GV MaChucVu , GV CapTren , 0
FROM HoSo GiaoVien GV , @reports r
WHERE GV CapTren = r MaGV and r processed = 1
UPDATE @reports SET processed = 2
Trang 233 Mã nguồn một số trigger.
a Trigger kiểm tra dữ liệu nhập bảng điểm
Create trigger tg_RangBuocLanThi
on QuanLy BangDiem
for Insert , update
as
create table #tb1 ( LanThi int , RN intidentity ( 1 , 1 ));
insert into #tb1 selecttop 2 t1 LanThi from
QuanLy BangDiem t1 , inserted where
t1 MaSV = inserted MaSV and t1 MaMon = inserted MaMon
order by t1 LanThi desc ;
declare @diff int ;
select @diff =( select LanThi from #tb1 where RN = 1 ( select LanThi from #tb1 where RN = 2 )
)-print @diff
if @diff <> 1
begin
rollback tran raiserror ( 'Nhap lai lan thi' , 16 , 1 )
end else
print 'Nhap thanh cong' insert into QuanLy BangDiem ( MaSV , MaMon , Diem , LanThi )
values ( 'SV2' , 'M2' , 6 , 4 )
b Trigger cấm thêm login vào server
Create trigger tg_CamThemLogin
Trang 24VII Kết luận
Mặc dù đã có những cố gắng, cùng với sự hướng dẫn tận tình của thầyNguyễn Mạnh Hùng, song vì thời gian còn hạn chế, bước đầu chúng em đượclàm quen với bài toán quản lý mà kinh nghiệm còn chưa nhiều nên chương trìnhcủa chúng em không tránh khỏi những thiếu sót Chúng em rất mong nhậnđược sự chỉ dẫn của thầy cô giáo cùng với sự góp ý của các bạn để chương trìnhcủa chúng em hoàn thiện hơn