Tải bản đầy đủ (.docx) (24 trang)

Quản lý hồ sơ sinh viên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (558.86 KB, 24 trang )

1
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ÙNG
HỌC VIÊN THỰC HIỆN:
VŨ SỸ ĐẠT
NGUYỄN VIẾT HỌC
Lớp: Tin học k44
HÀ NỘI -03/2012
Mc lc
I. Cỏc chc nng ca h thng.
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. Thit k c s d liu
1. Cỏc bng
HoSo.SinhVien
Column Name Description Datatype Length Allow Null
MaSV Mó sinh viờn varchar 10
TenSV Tờn sinh viờn varchar 30
DiaChi a ch varchar 30
GioiTin


h
Gii tớnh varchar 10
2
NamTo
tNghiep
Năm tốt nghiệp Datetime 
NgayN
hapHoc
Ngày nhập học datetime Datetime
MaLop Mã lớp varchar 10
MaCN Mã chuyên nghành varchar
Khoa.Lop
Column Name Description Datatype Length Allow Null
MaLop Mã lớp varchar 10
TenLop Tên lớp varchar 20 
Khoa.Khoa
Column Name Description Datatype Length Allow Null
MaKho
a
Mã khoa varchar 10
TenKh
oa
Tên khoa varchar 20 
QuanLy.BangDiem
Column Name Description Datatype Length Allow Null
MaMo Mã môn varchar 10
3
n
MaSV Mã sinh viên varchar 10
Diem Điểm Int 

NgayT
hi
Ngày thi Datetime 
LanThi Lần thi Int
4
QuanLy.ChucVu
Column Name Description Datatype Length Allow Null
MaChu
cVu
Mã chức vụ varchar 10
TenCh
ucVu
Tên chức vụ varchar 30
QuanLy.DeTai
Column Name Description Datatype Length Allow Null
MaDT Mã đề tài varchar 10
MaSV Mã sinh viên varchar 10
TenDT Tên đề tài varchar 20
DiemD
T
Điểm đề tài Float 
NgayB
V
Ngày bảo vệ Datetime 
MaGV Mã giáo viên varchar 10
5
DaoTao.ChiTietMon
Column Name Description Datatype Length Allow Null
MaChi
Tiet

Mã chi tiết varchar 10
TenMo
n
Tên môn varchar 20
MaGV Mã giáo viên varchar 10 
DaoTao.CT
Column Name Description Datatype Length Allow Null
MaCT Mã chi tiết varchar 10
TenCT Tên chi tiết varchar 10 
DaoTao.CTCT
Column Name Description Datatype Length Allow Null
MaMo
n
Mã môn varchar 10
MaCT Mã chi tiết varchar 10
MaHK Mã học kỳ varchar 10
TT Thứ tự Int 
6
DaoTao.HocKy
Column Name Description Datatype Length Allow Null
MaHK Mã học kỳ varchar 10
TenHK Tên học kỳ varchar 10 
HoSo.GiaoVien
Column Name Description Datatype Length Allow Null
MaGV Mã giáo viên varchar 10
TenGV Tên giáo viên varchar 20
MaChu
cVu
Mã chức vụ varchar 10 
MaKho

a
Mã khoa varchar 10
CapTre
n
Cấp trên varchar 10 
Khoa.ChuyenNganh
Column Name Description Datatype Length Allow Null
MaCN Mã chuyên ngành Varchar 10
TenCN Tên chuyên ngành Varchar 20 
MaKho
a
Mã khoa Varchar 10
7
8
DaoTao.Mon
Column Name Description Datatype Length Allow Null
MaMo
n
Mã môn Varchar 10
MaChi
Tiet
Mã chi tiết Varchar 10
2. Sơ đồ quan hệ giữa các bảng
III. Mô tả các thủ tục, hàm, trigger.
1. Mô tả các thủ tục.
a. Thủ tục đưa ra danh sách sinh viên trong một khóa học
- Tên: DanhSachSinhVienTrongKhoaHoc
- Kết quả: Đưa ra danh sách sinh viên trong khóa học
- Các bước thực hiện:
+ Nhập vào khóa học là năm bắt đầu khóa

+ Đưa ra danh sách sinh viên có năm nhập học trùng với
tham số khóa học
9
10
b. 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ành
trù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
<5
2. Mô tả các 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
- Tên: HocBong
- Kết quả thực hiên: Đưa ra tất danh sách các sinh viên được nhận học
bổng sau mỗi kỳ học.
- Các bước thực hiện:
o Nhập vào mã kỳ học
o Tạo ra một bảng tạm có cấu trúc giống với bảng gốc [QuanLy].
[BangDiem]
o Chèn thông tin các sinh viên có học ở trong học kỳ đó vào bảng
tạm

o Tạo ra một bảng tạm có cấu trúc @BD1( MaSV varchar(10),
DTB float)
o Chèn danh sách các sinh viên và điểm trung bình sau mỗi kỳ
học
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.
b. Hàm tìm kiếm trên dữ liệu đa cấp.
11
- 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 bảng tạm.
o Tìm kiếm các giáo viên có cấp trên là mã giáo viên vừa chèn vào
o SELECT bảng tạm
3. Mô tả các trigger.
a. Trigger cấm tạo login
- Tên: tg_CamThemLogin
- 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ê.
- Mã nguồn:
createview QuanLy.DanhSachQue
as
select MaSV,TenSV,MaLop,MaCN from [HoSo].[SinhVien]
where DiaChi='DC1'
go select*from QuanLy.DanhSachQue
V. Quản trị cơ sở dữ liệu
1. Tạo các login
STT Tên Login Quyền
1 admin ANY PERMISSION
12
2 daotao CONNECT SQL, VIEW ANY DATABASE
3 khoa CONNECT SQL, VIEW ANY DATABASE
4 giaovien CONNECT SQL, VIEW ANY DATABASE
5 sinhvien CONNECT SQL, VIEW ANY DATABASE
6 quanly CONNECT SQL, VIEW ANY DATABASE
7 hoso CONNECT SQL, VIEW ANY DATABASE
2. Tạo các role
STT Tên role Quyền
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.

13
3. Tạo các user
STT Tên user Quyền
1
admin - Có mọi quyền trên các bảng thuộc cơ sở dữ
liệu
- Cấp quyền cho người sử dụng
2
Daotao
- Có mọi quyền trong các bảng thuộc schema
DaoTao
- Có quyền select đến tất cả các bảng thuộc
schema Khoa
3
Khoa
- Có mọi quyền trong các bảng thuộc schema
Khoa
- Có quyền select đến tất cả các bảng thuộc
schema DaoTao
4
giaovien
- Có mọi quyền trong các bảng thuộc schema
Khoa
- Có quyền select đến tất cả các bảng thuộc
schema DaoTao
5
sinhvien - Có quyền select đến các tất cả các bảng thuộc
schema Khoa và bảng QuanLy.BangDiem
6
quanly

- Có mọi quyền trong các bảng thuộc schema
QuanLy
- Có quyền select đến tất cả các bảng thuộc
schema DaoTao
7
hoso
- Có mọi quyền trong các bảng thuộc schema
HoSo
- Có quyền select đến tất cả các bảng thuộc
schema DaoTao
14
4. 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.
15
b. Quyền cho user
 User admin
 User khoa
16
 User daotao
 User giaovien
17
 User sinhvien
18
 User hoso
19
 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]
20
b. Quyền cho user
 User admin
use [QuanLyHoSoSinhVien]
GO
GRANT CONTROL ONSCHEMA::[DaoTao] TO [admin]
GRANT CONTROL ONSCHEMA::[Khoa] TO [admin]
GRANT CONTROL ONSCHEMA::[HoSo] TO [admin]
GRANT CONTROL ONSCHEMA::[QuanLy] TO [admin]
 User khoa
use [QuanLyHoSoSinhVien]
GO
GRANT CONTROL ONSCHEMA::[Khoa] TO [khoa]
GRANTSELECTON [DaoTao].[CTCT] TO [khoa]
GRANTSELECTON [DaoTao].[Mon] TO [khoa]
GRANTSELECTON [DaoTao].[HocKy] TO [khoa]
GRANTSELECTON [DaoTao].[CT] TO [khoa]

 User daotao
use [QuanLyHoSoSinhVien]
GO
GRANT CONTROL ONSCHEMA::[DaoTao] TO [daotao]
GRANTSELECTON [Khoa].[Khoa] TO [daotao]
GRANTSELECTON [Khoa].[ChuyenNganh] TO [daotao]
GRANTSELECTON [Khoa].[Lop] TO [daotao]
 User giaovien
use [QuanLyHoSoSinhVien]
GO
GRANT CONTROL ONSCHEMA::[Khoa] TO [giaovien]
GRANTSELECTON [DaoTao].[CT] TO [giaovien]
GRANTSELECTON [DaoTao].[Mon] TO [giaovien]
GRANTSELECTON [DaoTao].[ChiTietMon] TO [giaovien]
GRANTSELECTON [DaoTao].[CTCT] TO [giaovien]
GRANTSELECTON [DaoTao].[HocKy] TO [giaovien]
 User sinhvien
use [QuanLyHoSoSinhVien]
GO
GRANTSELECTON [QuanLy].[BangDiem] TO [sinhvien]
GRANTSELECTONSCHEMA::[Khoa] TO [sinhvien]
 User hoso
use [QuanLyHoSoSinhVien]
GO
GRANTSELECTONSCHEMA::[DaoTao] TO [hoso]
GRANT CONTROL ONSCHEMA::[HoSo] TO [hoso]
 User quanly
use [QuanLyHoSoSinhVien]
GO
GRANTSELECTONSCHEMA::[DaoTao] TO [quanly]

GRANT CONTROL ONSCHEMA::[QuanLy] TO [quanly]
21
VI. 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
whereyear(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
whereyear(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
22

2. 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)
as
begin
declare @BD1 table(
[MaMon] [varchar](10)COLLATE
SQL_Latin1_General_CP1_CI_AS NOTNULL,
[MaSV] [varchar](10)COLLATE
SQL_Latin1_General_CP1_CI_AS NOTNULL,
[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
groupby MaSV
insertinto @DS select*from @DS1 where DTB >=8
RETURN
END
23
b. 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

WHERE processed = 1
SET @RowsAdded =@@rowcount
END
INSERT @Temple
SELECT MaGV,TenGV,MaKhoa,MaChucVu,CapTren
FROM @reports
RETURN
END
select*from TimCapDuoi('GV4')
24
3. 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
onALLSERVER
for create_login,drop_login,alter_login
as
raiserror('Khong the them sua xoa doi tuong
login',16,1);
rollback tran
25

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×