hình tổ chức quản lý sinh viên theo khoa, theo lớp quản lý, theo lớp môn học;Quản lý các môn học của các lớp theo học kỳ và kết quả học tập của sinh viên đốivới các môn học đó.. Hệ thống
Trang 1TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
o0o—
BÁO CÁO ĐỒ ÁN MÔN HỌC: CƠ SỞ DỮ LIỆU
ĐỀ TÀI: QUẢN LÝ ĐIỂM SINH VIÊN
Nhóm thực hiện: Nhóm 5 Lớp 63IT3
1 Giới thiệu đề tài
Quản lý điểm sinh viên dành cho nhà trường Đóng vai trò quan trọng đốivới hoạt động của trường đại học Đòi hỏi phải quản lí số lượng lớn, tính toánnhiều số liệu, kết xuất nhiều thông tin mà nếu làm thủ công thì rất tốn công sức vàkhó đảm bảo các yêu cầu thực tế Việc ứng dụng công nghệ thông tin vào trong hệthống quản lý điểm sinh viên là thay thế những công việc lưu trữ, tính toán, thống
kê vốn làm thủ công bởi những thao tác thực hiện trên máy tính Với những ứngdụng như vậy sẽ làm giảm đáng kể lượng công sức, giấy tờ, sổ sách lưu trữ vàtránh được sai sót
Bài toán quản lý điểm đặt ra các vấn đề cơ bản như sau: Thể hiện được mô
Trang 2hình tổ chức quản lý sinh viên theo khoa, theo lớp quản lý, theo lớp môn học;Quản lý các môn học của các lớp theo học kỳ và kết quả học tập của sinh viên đốivới các môn học đó Hệ thống còn phải cho phép tạo ra các báo cáo từ kết quảhọc tập của sinh viên nhằm phục vụ công tác điều hành huấn luyện như: Tổng kếtkết quả học tập theo kỳ, theo năm, theo khóa; In Danh sách thi lại; In Bảng điểmhọc kỳ; In Bảng điểm cá nhân…
Ngoài các chức năng chính như trên, hệ thống này còn cần thêm một sốchức năng khác như: cập nhật các loại danh mục dữ liệu (danh mục lớp, danh mụckhoa, danh mục môn học …); các chức năng sao lưu và phục hồi dữ liệu; các chứcnăng trợ giúp…
Những công việc chính đối với 1 khóa học trong hệ thống quản lý điểm:
- Với mỗi lớp môn học có danh sách sinh viên đăng kí môn học đó
- Với mỗi học kỳ cần cập nhật danh sách môn học , danh sách lớp họcphần sẽ mở trong kỳ
- Cập nhật điểm khi kết thúc môn học
- Tổng kết kết quả học tập theo kỳ, theo năm, theo khóa học
- Thống kê điểm theo lớp
1.1 Cơ cấu tổ chức
Một trường đại học mỗi năm tiếp nhận nhiều sinh viên đến trường nhậphọc và trong quá trình học tập nhà trường sẽ quản lý các kết quả học tập của từngsinh viên Trong trường có nhiều khoa ngành khác nhau, mỗi khoa có một phònggiáo vụ là nơi cập nhật thông tin của sinh viên, lớp, môn học…
Mỗi khoa có một hay nhiều lớp học, thông tin lớp học gồm tên lớp, khóahọc, năm bắt đầu, năm kết thúc và có duy nhất một mã lớp Mỗi lớp có một haynhiều sinh viên, mỗi sinh viên khi nhập học sẽ cung cấp thông tin về họ tên, ngàysinh, nơi sinh, phái, địa chỉ và được cấp cho một mã sinh viên
Trong quá trình được đào tạo tại trường, sinh viên phải học các môn học
mà khoa phân cho lớp, thông tin về môn học gồm mã môn học, tên môn học, sốtín chỉ, giáo viên phụ trách môn học đó
Sau khi hoàn thành các môn học được giao, sinh viên sẽ thi các môn thi tốtnghiệp
1.2 Yêu cầu hệ thống
1.2.1 Yêu cầu chức năng
Xây dựng hệ thống Quản lý điểm phục vụ công tác quản lý điểm cho nhàtrường
Người quản trị (phòng đào tạo) có quyền:
- Quyền tạo, thay đổi, xóa thông tin các khóa học
- Quyền tạo, thay đổi, xóa thông tin người dùng
- Quyền tạo, thay đổi, xóa thông tin các lớp học
- Quyền sao lưu phục hồi cơ sở dữ liệu
- Quyền tạo, thay đổi, xóa thông tin các sinh viên
- Quyền tạo, thay đổi, xóa điểm của các điểm
- Quyền tạo, thay đổi, xóa môn học
- Quyền báo cáo, thống kê
1.2.2 Yêu cầu phi chức năng:
Trang 3- Giao diện trực quan, tiện dụng
- Có thể sử dụng 24/24
- Đảm bảo an toàn và bảo mật dữ liệu
- Việc tính toán điểm phải chính xác, đáng tin cậy
2 Phân tích thiết kế hệ thống
Dựa vào những thông tin trên tiến hành phân tích yêu cầu nghiệp vụ và hệ thống
2.1 Các chức năng chính
❖ Quản lý sinh viên:
▪ Danh sách sinh viên
▪ Thêm mới, sửa, xóa thông tin của sinh viên
❖ Quản lý người dùng:
▪ Danh sách người dùng
▪ Thêm mới, sửa, xóa tài khoản người dùng
❖ Quản lý điểm:
▪ Danh sách điểm theo môn học
▪ Nhập, sửa, xóa điểm của sinh viên
❖ Quản lý môn học:
▪ Danh sách môn học
▪ Thêm, sửa, xóa thông tin môn học
❖ Tự động xử lý điểm
❖ Cung cấp, tra cứu điểm, tìm kiếm thông tin
2.2 Phân tích yêu cầu nghiệp vụ
- Quản trị viên (phòng đào tạo): Là người có toàn quyền truy cập dữ liệu
hệ thống, có nhiệm vụ cập nhật những thay đổi của hệ thống, tiếnhành sao lưu dữ liệu theo định kỳ đảm bảo an toàn dữ liệu khi có sự cốxảy ra
- Quản lý người dùng: Mỗi người dùng sẽ được cấp một tài khoản đăngnhập với thông tin: tên đăng nhập, mật khẩu đăng nhập, họ tên, chức
vụ Với mỗi tài khoản đăng nhập ta có thể xem được lịch sử tác độngcủa mỗi tài khoản đối với hệ thống nhằm đảm bảo tính minh bạch và sẽ
xử phạt người dùng nếu làm sai lệch thông tin, ảnh hưởng đến hệthống
- Quản lý thông tin sinh viên: Khi có sinh viên nhập học hồ sơ của sinhviên sẽ được gửi đến phòng đào tạo và được nhập dữ liệu lên hệthống Những thông tin quan trọng nhất của sinh viên bao gồm: Họtên, mã số sinh viên, ngày sinh, giới tính, quê quán, lớp quản lý, khoa.Trường hợp khi có sinh viên bị buộc thôi học hoặc chuyển trường thì sẽthông báo cho phòng đào tạo để xóa hồ sơ của sinh viên
- Quản lý thông tin khoa: bao gồm mã khoa, tên khoa Khi nhập học sinhviên sẽ được chuyển vào khoa theo ngành đăng kí học tại trường VD:Sinh viên ngành công nghệ thông tin, tin học xây dựng sẽ thuộc khoacông nghệ thông tin
- Quản lý thông tin lớp quản lý: Sau khi có thông tin nhập học của cácsinh viên, phòng đào tạo sẽ tiến hành phân chia lớp cho sinh viên theochỉ tiêu yêu cầu đào tạo của mỗi ngành trong trường Phòng đào tạo sẽ
Trang 4dựa vào số lượng sinh viên đăng ký học và chia lớp với số lượng phùhợp đảm bảo chất lượng giảng dạy và quản lý Thông tin của lớp quản
lý bao gồm: Tên lớp quản lý, khoa quản lý và danh sách sinh viên, khóahọc
- Quản lý môn học: Hiện nay các trường đại học đều đào tạo theo hệthống tín chỉ nên sinh viên hoàn toàn có thể tự đăng ký môn học miễnsao đảm bảo yêu cầu của nhà trường Thông tin lớp môn học bao gồm:
mã môn học, tên môn học, số tín chỉ, tính chất môn học (môn học bắtbuộc hay tự chọn)
- Quản lý lớp môn học: Sinh viên sẽ đăng kí môn học theo lớp môn học.Mỗi môn học có một hoặc nhiều lớp môn học Sinh viên có thể đăng kívào lớp môn học phù hợp Lớp môn học gồm: Mã lớp môn học, giảngviên, ngày thi, học kì
- Trước khi bước vào học kỳ mới, phòng đào tạo tiến hành xếp lịch họccho các lớp theo các chuyên ngành đào tạo Để xếp lịch học cho các lớphọc, bộ phận xếp thời khóa biểu phải căn cứ vào ngành đào tạo, lớpquản lý, khóa học do trường cung cấp Trong thời khóa biểu của mỗilớp phải có thời gian, lớp học Ở những năm đầu có các môn học đạicương mà có thể giảng dạy cho nhiều lớp, vì vậy có thể ghép nhiều lớpcùng học một môn do một giáo viên đảm nhiệm Nhưng đối với cácmôn học chuyên ngành thì phải tách lớp theo các chuyên ngành cụ thể
để giảng dạy Sau đó chuyển lịch học xuống cho bộ phận quản trị hệthống cập nhật kế hoạch giảng dạy các môn học cho các lớp trong học
kỳ đó và bảng phân công giảng dạy cho các giáo viên
- Quản lý điểm: Khi có bảng điểm do giảng viên gửi xuống, phòng đàotạo tiến hành cập nhật điểm môn học cho sinh viên và thông báo điểmcho sinh viên Nếu có thay đổi sẽ tiến hành sửa điểm cho sinh viên.Trong mỗi học kỳ sau khi đã có toàn bộ điểm của sinh viên trong kỳ đó,
hệ thống tiến hành tính toán điểm môn học, điểm trung bình học kỳ vàđiểm tích lũy của sinh viên
❖ Cách tính điểm:
▪ Điểm môn học = Điểm Quá Trình * Tỷ lệ điểm quá trình + Điểm Thi * (100% - Tỷ lệ điểm quá trình)
▪ Điểm trung bình học kỳ= ∑ Điểm Trung Bình * Số Tín / ∑ tín
▪ Điểm Tích Lũy = ∑ Điểm Trung Bình * Số Tín(qua) / ∑ tín (qua)
3 Thiết kế cơ sở dữ liệu
3.1 Xây dựng mô hình thực thể liên kết
Các thực thể và thuộc tính ban đầu
-KHOA(MAKHOA, TENKHOA)
Trang 5-LOPQL(TENLOPQL, SISO)
-SINHVIEN( MSSV, HOTEN, GIOITINH, KHOAHOC, NGAYSINH, QUEQUAN)
-LOPMH(MALOPMH, GIANGVIEN, NGAYTHI, HOCKI)
-MONHOC(MAMH, TENMH, SOTINCHI, TINHCHATMH)
Trang 63.1.1 Xác định các quan hệ trong CSDL quản lý điểm sinh viên
- Mối quan hệ giữa thực thể KHOA và thực thể LỚP QL là quan hệ 1-n: Một khoa có thể có một hoặc nhiều lớp quản lý, mỗi lớp quản lý chỉ thuộc một khoa nhất định
- Mối quan hệ giữa thực thể LOPQL và thực thể SINHVIEN là quan hệ 1-n: Một lớp quản lý có thể có một hoặc nhiều sinh viên, mỗi sinh viên chỉ thuộc một lớp quản lý nhất định
- Mối quan hệ giữa thực thể SINHVIEN và thực thể LOPMH là quan hệ n-n: Mộtsinh viên học thể học ở nhiều lớp môn học, một lớp môn học có thể có nhiều sinh viên học
Trang 7- Mối quan hệ giữa thực thể MONHOC và thực thể LOPMH là quan hệ 1-n: Mộtmôn học có thể có một hoặc nhiều lớp môn học, mỗi lớp môn học chỉ thuộc một môn học nhất định.
b) Do bảng LOPQL và bảng SINHVIEN là liên kết 1-n nên TENLOPQL là khóa ngoại
Trang 8e) Bảng MONHOC(MAMH, TENMH, SOTINCHI, TINHCHATMH)
f) Do bảng SINHVIEN và bảng LOPMH là liên kết n-n nên ta có thêm bảng mới: DIEM, các khóa MSSV, MALOPMH (khóa chính của bảng sinh viên, lớp môn học) là khóa ngoại của bảng DIEM, ta thêm các thuộc tính cho bảng DIEM: HOTEN, DQT, DKT, TYLEDQT, DTB
Bảng DIEM(MSSV, MALOPMH, HOTEN, DQT, DKT, TYLEDQT, DTB)
Trang 93.2.2 Mô hình dữ liệu liên kết
*Chuẩn hóa mô hình quan hệ:
-KHOA(MAKHOA, TENKHOA)
-LOPQL(TENLOPQL, SISO, MAKHOA)
-SINHVIEN( MSSV, HOTEN, GIOITINH, KHOAHOC, NGAYSINH, QUEQUAN,
TENLOPQL)-DIEM(MSSV, MALOPMH, HOTEN, DQT, DKT, TYLEDQT, DTB)
-LOPMH(MALOPMH, GIANGVIEN, NGAYTHI, HOCKI, MAMH)
-MONHOC(MAMH, TENMH, SOTINCHI, TINHCHATMH)
Trang 104 Mô tả chi tiết các ràng buộc thực tế
1 USERNAME nvarchar -Khóa
chính-Not null
-Là tên để người dùngtruy cập hệ thống, mỗingười dùng có một tênđăng nhập riêng
Tên đăngnhập
2 PASSWORD nvarchar Not null -Là mật khẩu đăng
4 CHUCVU nchar Null -Chức vụ của người
dùng, có thể là cán bộphòng đào tạo hoặcsinh viên (trong đồ ánnày chỉ xét đến đốitượng người dùng làcán bộ phòng đào tạo)
Chức vụngườidùng
4.2 Bảng KHOA
Là bảng lưu thông tin các khoa
STT Tên trường Kiểu dữ
liệu
Ràngbuộc
chính-Not null
- Thể hiện các mã khoatrong trường, mỗikhoa có một mã duynhất
Trang 11STT Tên trường Kiểu dữ
Tên lớpquản lý
2 MAKHOA nchar -Khóa ngoại (tham
KHOA(MAKHOA))-Not null
Thể hiện các mãkhoa trongtrường, mỗikhoa có một mãduy nhất, mỗikhoa gồm mộthoặc nhiều lớpquản lý
Mãkhoa
mỗi lớp quản lý
Sĩ số
4.4 Bảng SINHVIEN
Là bảng lưu các thông tin cơ bản của sinh viên
STT Tên trường Kiểu dữ
gán một mãriêng
Mã sốsinhviên
sinh viên
Họ tên
3 GIOITINH nchar Null Thể hiện giới
tính của sinhviên là Nam
Giớitính
Trang 12hay Nữ
4 TENLOPQL nvarchar -Khóa ngoại (tham
LOPQL(TENLOPQL))-Not null
Tên lớp quản
lý của sinhviên, cho biếtsinh viênthuộc lớp nào
Tên lớpquản lý
viên học khóabao nhiêu
Khóahọc
6 NGAYSINH nchar Null Cho biết ngày
tháng nămsinh của sinhviên
Ngàysinh
quán của sinhviên
Quêquán
4.5 Bảng MONHOC
Là bảng thông tin về các môn học
STT Tên trường Kiểu dữ
liệu
Ràngbuộc
chính-Not null
Dùng để chỉ mã cácmôn học, mỗi mônhọc có một mã riêng
Mã mônhọc
2 TENMH nchar Null Chỉ tên môn học, nếu
môn học có cùng tênnhưng khác mã mônhọc thì tức là 2 mônhọc khác nhau
Tên mônhọc
T SOTINCHI int Null Thể hiện số tín chỉ Số tín chỉ
Trang 13của môn học
3 TINHCHATMH nchar Null Thể hiện tính chất
môn học, có thể làmôn học bắt buộchay tự chọn
Tính chấtmôn học
4.6 Bảng LOPMH
Là bảng lưu thông tin các lớp môn học
STT Tên trường Kiểu dữ
Mã lớpmôn học
2 MAMH nchar -Khóa ngoại (tham
MONHOC(MAMH))-Not null
Chỉ mã mônhọc của lớpmôn học
Mã mônhọc
3 GIANGVIEN nchar Null Giảng viên phụ
trách lớp mônhọc đó
Giảngviên
Trang 144 NGAYTHI nchar Null Ngày thi của
môn học thuộclớp môn học đó
Ngày thi
học đó đượcmở
thích
chính-Notnull
Dùng để phân biệt các sinh viêntrong trường, mỗi sinh viên được gán một mã riêng
Mã sốsinhviên
2 MALOPMH nchar -Khóa
chính-Notnull
Dùng để phân biệt các lớp mônhọc, mỗi lớp môn học có một mãriêng
Mã lớpmônhọc
4 DQT float Null Điểm quá trình của môn học Điểm
quátrình
5 DKT float Null Điểm kiểm tra của môn học Điểm
Trang 15điểmquátrình
7 DTB Null Điểm trung bình môn học Được
tính theo công thức:
[TYLEDQT]))/100
([DQT]*[TYLEDQT])/100+([DKT]*(100-Điểmtrungbình
Trang 165.5 Bảng MONHOC
5.6 Bảng LOPMH
5.7 Bảng DIEM
*Relationship
Trang 18Nội dung dữ liệu của các bảng:Bảng DANGNHAP
Bảng DIEM
Trang 19Bảng KHOA
Bảng LOPMH
Bảng LOPQL
Trang 20Bảng MONHOC
Trang 21create procedure sp_themsinhvien @MSSV nvarchar ( 50 ),
TENLOPQL , KHOAHOC , NGAYSINH , QUEQUAN )
values ( @MSSV , @HOTEN , @GIOITINH , @TENLOPQL ,
@KHOAHOC , @NGAYSINH , @QUEQUAN )
begin DECLARE @MSSV nvarchar ( 50 ),
Trang 22sinh viên From SINHVIEN
end else begin print 'ban da them du lieu thanh cong' end
create procedure sp_suasinhvien
Xóa thông
tin sinh
viên
STOREDPROCEDURE
create procedure sp_xoasinhvien @MSSV nvarchar ( 50 )
as delete from SINHVIEN where MSSV = @MSSV
Tìm kiếm
thông tin
sinh viên
STOREDPROCEDURE
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
CREATE PROC [dbo] [TIMKIEM] @ID INT AS
BEGIN SELECT FROM SINHVIEN WHERE MSSV = @id
create proc sp_hienthisinhvien as
select from SINHVIEN
Coppy STORED SETGO ANSI_NULLS ON
Trang 23bảng sinh
viên
PROCEDURE
SET QUOTED_IDENTIFIER ON GO
CREATE PROC [dbo] [SPCOPYSINHVIEN]
AS
if OBJECT_ID 'SINHVIENCOPY' ) IS NOT NULL
DROP TABLE SINHVIENCOPY SELECT INTO SINHVIENCOPY FROM SINHVIEN
values ( @MAKHOA , @TENKHOA )
begin DECLARE @MAKHOA NCHAR ( 10 ),
@TENKHOA NCHAR ( 100 )
select
@MAKHOA = MAKHOA ,
@TENKHOA = TENKHOA From KHOA
if (( @MAKHOA is null)
or @TENKHOA is null))
begin print 'Ban phai day du cac thong tin' rollback tran
end else begin print 'ban da them du lieu thanh cong' end
create procedure sp_suakhoa
( @MAKHOA NCHAR ( 10 ),
@TENKHOA NCHAR ( 100 ))
as
update KHOA set
MAKHOA = @MAKHOA ,
TENKHOA = @TENKHOA where MAKHOA = @MAKHOA
Xóa thông
tin khoa
STOREDPROCEDURE
create procedure sp_xoakhoa
@MAKHOA NCHAR ( 10 )
as delete from SINHVIEN where @MAKHOA = @MAKHOA
Hiển thị STORED
PROCEDURE
create proc sp_hienthikhoa as
select from KHOA
Trang 24Tìm kiếm STORED
PROCEDURE
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
create PROC [dbo] [sp_timkiemkhoa]
( @makhoa INT AS
BEGIN SELECT FROM KHOA WHERE MAKHOA = @makhoa END
coppy STORED
PROCEDURE
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
create PROC [dbo] [sp_copykhoa]
AS
if OBJECT_ID 'KHOACOPY' ) IS NOT NULL
DROP TABLE khoaCOPY SELECT INTO khoacopy FROM KHOA
DECLARE @MSSV nchar ( 50 )
DECLARE @MALOPMH nchar ( 10 )
DECLARE @HOTEN nchar ( 50 )
DECLARE @DQT float DECLARE @DKT float DECLARE @TYLEDQT int SELECT
IF ( @DQT < 0 ) or ( @DQT > 10 ) or ( @DKT < ) or ( @DKT > 10 ) or @TYLEDQT < ) or @TYLEDQT > 100 )
begin print 'Sai gia tri diem' Rollback transaction end
else begin Print 'qua trinh chen dl thanh cong' end
Trang 25as begin DECLARE @MSSV nchar ( 50 )
DECLARE @MALOPMH nchar ( 10 )
DECLARE @HOTEN nchar ( 50 )
DECLARE @DQT float DECLARE @DKT float DECLARE @TYLEDQT int SELECT
update DIEM set
Xóa thông
tin điểm
TRIGGER usego doanCSDL
create trigger strg_xoadiem
on Diem INSTEAD OF DELETE as
DECLARE @mssv varchar