Chương trình quản lý điểm sinh viên là một chương trình được xây dựng nhằm đáp ứng những đòi hỏi đặt ra của quá trình quản lý như nhập thong tin sinh viên, tìm kiếm, thống kê, in báo cáo
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: CƠ SỞ DỮ LIỆU TÊN BÀI TẬP LỚN: QUẢN LÝ ĐIỂM SINH VIÊN
Sinh viên thực hiện Khóa Lớp Mã sinh viên Nguyễn Thị Thanh Huyền 11 DCCNTT11.10.6 20201753 Nguyễn Trọng Việt Hoàng 11 DCCNTT11.10.6 20201656 Nguyễn Gia Kiên 11 DCCNTT11.10.6 20201617 Phan Đàm Cao Khánh 11 DCCNTT11.10.6 20201723
Lê Vũ Tuấn Kiệt 11 DCCNTT11.10.6 20201476 Nguyễn Trọng Linh 11 DCCNTT11.10.6 20201625 Nguyễn Tuấn Tùng 11 DCCNTT11.10.6 20201782
Hà Nội, tháng 7 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: CƠ SỞ DỮ LIỆU
Nhóm: 6 TÊN BÀI TẬP LỚN: QUẢN LÝ ĐIỂM SINH VIÊN
số chữ
1 Nguyễn Thị 11 DCCNTT 20201753
Thanh Huyền 11.10.6
2 Nguyễn Trọng 11 DCCNTT 20201656
Việt Hoàng 11.10.6
3 Nguyễn Gia 11 DCCNTT 20201617
4 Phan Đàm Cao 11 DCCNTT 20201723
5 Lê Vũ Tuấn 11 DCCNTT 20201476
6 Nguyễn Trọng 11 DCCNTT 20201625
7 Nguyễn Tuấn 11 DCCNTT 20201782
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
Hà Nội, tháng 7 Năm 2021
Trang 3MỤC LỤC
Trang
LỜI NÓI ĐẦU 2
I PHÂN TÍCH HỆ THỐNG QUẢN LÝ ĐIỂM SINH VIÊN 4
1 Thực trạng quản lý điểm 4
2 Cơ sở dữ liệu của hệ thống 4
3 Yêu cầu của hệ thống 7
II THIẾT KẾ HỆ THỐNG QUẢN LÝ ĐIỂM SINH VIÊN 7
1 Biểu đồ phân cấp chức năng 7
2 Phân loại các thuộc tính vào một tập thực thể 8
I Bảng danh sách dữ liệu 9
II Mô hình cơ sở dữ liệu 10
III Cơ sở dữ liệu quản lý điểm sinh viên 10
Trang 4LỜI NÓI ĐẦU
Ngày nay, tin học đã có những bước tiến nhanh chóng về ứng dụng của nó trong mọi lĩnh vực của cuộc sống trên phạm vi toàn thế giới nói chung và Việt Nam nói riêng Tin học được người ta quan tâm
và nhắc đến nhiều hơn bao giờ hết vì nó là một phần không thể thiếu trong cuộc sống văn minh, góp phần đẩy mạnh công cuộc công nghiệp hoá hiện đại hoá đất nước, tiến đến nền kinh tế tri thức Máy vi tính cùng với những phần mềm là công cụ đắc lực giúp ta quản lý, tổ chức, sắp xếp và xử lý công việc một cách nhanh chóng
và chính xác Ở Việt Nam hiện nay, máy tính điện tử đặc biệt là máy vi tính trong nhiều năm qua đã được sử dụng rất rộng rãi Sự phát triển của tin học, các công nghệ phần mềm, phần cứng, các tài liệu tham khảo đã đưa chúng ta từng bước tiếp cận với công nghệ thông tin trong mọi lĩnh vực nhằm đáp ứng nhu cầu của con người Quản lý sinh viên là một đề tài không còn mới mẻ với các bài toán quản lý Việc đưa tin học vào ứng dụng để quản lý là rất hữu ích, vì chúng ta phải bỏ ra rất ít thời gian mà lại thu được hiệu quả cao, rất chính xác và tiện lợi nhanh chóng Access hay SQL sever là những phần mềm được ứng dụng rộng rãi trong công tác quản lí, không những thế nó còn là một ngôn ngữ khá mạnh để giúp cán bộ quản lí
có thể viết những chương trình để sử dụng cơ sở dữ liệu hay giải quyết một yêu cầu nào đó, những phần mềm này đã phần nào trợ giúp các nhà quản lí trở nên nhanh chóng, thuận lợi chính xác và kịp thời với những tính năng có sẵn sát với thực tế quản lí
Chương trình quản lý điểm sinh viên là một chương trình được xây dựng nhằm đáp ứng những đòi hỏi đặt ra của quá trình quản lý như nhập thong tin sinh viên, tìm kiếm, thống kê, in báo cáo và rất nhiều công việc khác một cách nhanh chóng và thuận tiện, chính xác một cách hệ thống Trong chương trình phần mền ứng dụng này thì chương trình nghiên cứu phân tích thiết kế hệ thống đóng
Trang 5vai trò rất quan trọng trong việc thiết kế chương trình phần mềm, nhìn vào bản phân tích ta có thể hiểu được người lập trình muốn làm gì, hiểu được sự hoạt động của hệ thống
Trang 6PHẦN 1: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN
LÝ ĐIỂM SINH VIÊN
I PHÂN TÍCH HỆ THỐNG QUẢN LÝ ĐIỂM SINH
VIÊN 1 Thực trạng quản lý điểm
Hiện nay, quản lý điểm sinh viên là một công việc hết sức quan trọng đối với các trường học Công việc đó hiện còn đang làm rất thủ công (ghi chép và lưu trữ bằng sổ sách) tại một số trường và mang lại hiệu quả không cao, đôi khi gây ra nhầm lẫn và việc sửa/xem xét lại cũng mất rất nhiều thời gian Công việc hàng ngày bao gồm:
- Nhập điểm cho sinh viên, sửa chữa thông tin về điểm
- In bảng điểm, in danh sách sinh viên đỗ, trượt, đạt học bổng…
- Lưu trữ thông tin về bảng diểm của sinh viên…
Công việc quản lý còn hết sức vất vả và đòi hỏi nhiều kỹ năng kiểm soát sổ sách, kê khai danh mục lưu trữ… Đôi khi gặp phải những sự cố làm mất hết dữ liệu thì không thể lấy lại hay khôi phục lại được
Do đó, cần phải xây dựng chương trình/hệ thống để dùng quản lý điểm sinh viên nhằm tổ chức lại cơ cấu quản lý, thay thế phương pháp thủ công để đem lại hiệu quả cao trong việc lưu trữ, trích xuất
dữ liệu Chính vì việc nhập điểm, tìm kiếm, sửa chữa, báo cáo, thống kê cần được xử lý nhờ máy tính đã giúp giảm thiểu các sự cố làm mất dữ liệu, dữ liệu được lưu trữ an toàn
2 Cơ sở dữ liệu của hệ thống
Để có thể nắm vững hệ thống quản lý điểm sinh viên, ta cần hiểu rõ những thông tin về cơ sở dữ liệu của việc quản lý điểm:
a> Dữ liệu đầu vào
Trang 7Dữ liệu đầu vào là nguồn thông tin được đưa vào máy tính để xử lý, bao gồm các thông tin sau đây:
- Thông tin về sinh viên ( Mã sinh viên, Họ tên, Quê quán, Số điện thoại…)
- Thông tin về điểm ( Điểm chuyên cần, Điểm thi…)
- Và các thông tin khác như: Khoa, Học phần…
b> Dữ liệu đầu ra
Dữ liệu đầu ra là các thông tin sau khi xử lý bao gồm các thông tin sau:
- Bảng danh sách điểm ( Danh sách điểm môn A/B )
- Bảng thống kê, báo cáo ( Thống kê số học sinh đạt học bổng…)
Sơ đồ luân chuyển thông tin của hệ thống quản lý điểm sinh viên:
Hồ sơ Sinh viên
Điểm thi
Hệ thống quản lý sinh viên
Báo cáo/Thống kê
Điểm Bảng điểm
Sau khi lưu hồ sơ sinh viên với các môn học và có điểm các môn thi, phòng giáo vụ tiến hành vào điểm của từng môn học Sinh viên
sẽ bị điểm không với mỗi môn thi nếu:
- Không dự thi, xin hoãn thi
- Không có bài kiểm tra giữa kì
Trang 8- Nghỉ học một số mộn mà nghỉ quá 30% số tiết theo quy định Điểm chuyên cần, điểm giữa kì, điểm thi sẽ tính theo thang điểm
10 Điểm tổng kết học phần sẽ được tính theo công thức:
Điểm chuyên cần*10% + Điểm giữa kì*20% + Điểm thi*70% Sinh viên có thể dự thi các học phần để có điểm cao hơn vào những
kì thi chính thức tiếp theo Sau khi học lại hay thi lại hoặc thi nâng điểm, điểm tổng kết học phần mới sẽ được tính theo điểm cao nhất của từng môn
Sinh viên phải thi lại ( đối với những môn thi lần đầu ) những môn
có điểm thi < 3, nếu sau khi thi lại vẫn không đạt điều kiện sẽ phải học lại Sinh viên phải học lại những môn có điểm chuyên cần không đạt, những môn có điểm giữa kì < 3, hoặc điểm tổng kết học phần < 4
Sau mỗi học kì các khoa sẽ tiến hành xét khen thưởng/kỉ luật, xếp loại cho sinh viên:
- Xếp loại học tập:
9.00 -> 10 xếp loại Xuất sắc
8.00 -> 8.99 xếp loại Giỏi
7.00 -> 7.99 xếp loại Khá
6.00 -> 6.99 xếp loại Trung bình-Khá
5.00 -> 5.99 xếp loại Trung bình
< 5 xếp loại Yếu
- Xét loại Học bổng:
Loại 1: Đạt điểm trung bình từ 8.00 trở lên và không có môn nào điểm dưới 7
Trang 9Loại 2: Đạt điểm trung bình từ 7.00 -> 7.99 và không có môn nào có điểm dưới 6
3 Yêu cầu của hệ thống
- Việc nhập thông tin phải hết sức đơn giản và nhanh chóng
- Đưa ra những danh sách, bảng điểm một cách chính xác và đầy đủ
- Các thông tin lưu trữ, trích xuất ra phải dễ hiểu và thuận tiện cho việc theo dõi, quản lý cho người quản lý sử dụng máy tính được thuận lợi và an toàn
- Quản lý điểm sinh viên bao hồm các thông tin quản lý có cấu trúc, được liên kết với nhau
II THIẾT KẾ HỆ THỐNG QUẢN LÝ ĐIỂM SINH VIÊN
1 Biểu đồ phân cấp chức năng
Quản lý điểm sinh viên
điểm
học phần
Nhập viên thi sinh viên
Sửa
học phần thông tin Sửa điểm viên học
Tính
điểm Xóa học Xóa sinh
viên nhận học bổng
Trang 10Ý nghĩa của từng chức năng trong hệ thống:
- Quản lý học phần:
+ Có các chức năng thêm, sửa, xóa các học phần theo yêu cầu của nhà trường
+ Cung cấp thông tin về các học phần trong mỗi kì học cho các sinh viên, giáo viên khi có yêu cầu
- Quản lý sinh viên:
+ Có các chức năng thêm, sửa, xóa thông tin sinh viên theo yêu cầu của nhà trường
+ Cung cấp thông tin về tình trạng sinh viên cho sinh viên, giáo viên khi có yêu cầu
- Quản lý điểm:
+ Có chức năng cập nhật điểm cho sinh viên sau mỗi kì học
+ Thực hiện tính toán, đưa ra kết quả học tập cho sinh viên
+ Báo cáo, thống kê điểm của sinh viên cho sinh, giáo viên khi có yêu cầu
- Báo cáo/thống kê:
+ Đưa ra danh sách sinh viên không đủ điều kiện thi, phải học lại + Đưa ra danh sách sinh viên phải thi lại
+ Thống kê danh sách sinh viên đạt học bổng, tỷ lệ sinh viên đạt học bổng sau mỗi kì học
+ Trong quá trình thống kê sẽ sử dụng chức năng tính điểm của quản lý điểm
Trang 11Kiểu thực thể liên kết là nguồn thông tin cần thiết cho hệ thống, các kiểu thực thể có thể xuất hiện ở các tác nhân ngoài, các luồng thông tin nội bộ hoặc các kho dữ liệu
Kiểu thực thể Học phần gồm MaHP, TenHP, TongSoTiet, SoTinChi
Kiểu thực thể Sinh viên gồm MaSV, TenSV, GioiTinh, NgaySinh, MaLop, QueQuan, SoDienThoai, Email, MaKhoa
Kiểu thực thể Lớp gồm MaLop, TenLop, MaKhoa, Khoa
Kiểu thực thể Khoa gồm MaKhoa, TenKhoa
Kiểu thực thể Điểm gồm MaHP, MaSV, DiemChuyenCan, DiemGiuaKi, DiemThi
PHẦN 2: THIẾT KẾ CƠ SỞ DỮ LIỆU
I Bảng danh sách dữ liệu
Tên bảng Tên cột Kiểu dữ liệu Độ rộng Miêu tả
HOCPHAN TenHP nvarchar 30 Tên học phần
MaSV varchar 6 Mã sinh viên TenSV nvarchar 30 Tên sinh viên
(Sinh viên) QueQuan nvarchar 20 Quê quán
SoDienThoai varchar 20 Số điện thoại
(Khoa) TenKhoa nvarchar 30 Tên khoa
Trang 12MaSV varchar 6 Mã sinh viên
DiemChuyenCan float Điểm chuyên cần (Điểm) DiemGiuaKi float Điểm giữa kì
II Mô hình cơ sở dữ liệu
III Cơ sở dữ liệu quản lý điểm sinh viên
create database QuanlydiemSV ;
go
use QuanlydiemSV ;
Tạo bảng:
create table HOCPHAN (
MaHP varchar ( 6 ) not null,
TenHP nvarchar ( 30 ),
SoTinChi int ,
TongSoTiet int
);
go
create table SINHVIEN (
MaSV varchar ( 6 ) not null,
MaLop varchar ( 6 ) not null,
MaKhoa varchar ( 6 ) not null,
Trang 13GioiTinh bit ,
NgaySinh date ,
Quequan nvarchar ( 20 ),
SoDienThoai varchar ( 20 ),
Email varchar ( 30 )
);
go
create table LOP (
MaLop varchar ( 6 ) not null,
MaKhoa varchar ( 6 ) not null,
TenLop nvarchar ( 30 ),
Khoa varchar ( 6 )
)
create table KHOA (
MaKhoa varchar ( 6 ) not null,
TenKhoa nvarchar ( 30 )
);
go
create table DIEM (
MaSV varchar ( 6 ) not null,
MaHP varchar ( 6 ) not null,
DiemChuyenCan float ,
DiemGiuaKi float ,
DiemThi float
);
Tạo các khóa:
alter table HOCPHAN add constraint pk_MaHP primary key ( MaHP );
alter table KHOA add constraint pk_Makhoa
primary key ( MaKhoa );
alter table LOP add constraint pk_Malop
primary key ( MaLop ),
constraint fk_Makhoa foreign key ( MaKhoa )
references KHOA ( MaKhoa );
alter table SINHVIEN add constraint pk_MaSV
primary key ( MaSV ),
constraint fk_Malop foreign key ( MaLop )
references LOP ( MaLop ),
constraint fk_Makhoa1 foreign key ( MaKhoa )
references Khoa ( MaKhoa );
alter table DIEM add constraint fk_MaSV foreign key ( MaSV ) references SINHVIEN ( MaSV ),
constraint fk_MaHP foreign key ( MaHP )
references HOCPHAN ( MaHP );
Trang 14Tạo các rằng buộc:
alter table DIEM add constraint df_diemchuyencan
default ( 0 ) for DiemChuyenCan ,
constraint df_diemgiuaki default( ) for DiemGiuaKi ,
constraint df_diemthi default( 0 for DiemThi ;
alter table DIEM add constraint ck_diemchuyencan
check ( DiemChuyenCan between 0 and 10 ),
constraint ck_diemgiuaki check ( DiemGiuaKi between 0 and
10 ),
constraint ck_diemthi check ( DiemThi between 0 and 10 );
NHập dữ liệu cho các bảng:
insert HOCPHAN values
( 'IT1234' , N'Cơ sở dữ liệu' , 2 , 30 ),
( 'FL2344' , N'Tiếng Anh' , 3 , 45 ),
( 'MI3212' , N'Toán rời rạc' , 3 , 45 ),
( 'MI6253' , N'Đại số' , 3 , 45 ),
( 'SS2635' , N'Triết học Mác-Leenin' , 3 , 45 ),
( 'SS6352' , N'Pháp luật đại cương' , 2 , 30 );
insert KHOA values
( 'CNTT' , N'Công nghệ thông tin' ),
( 'KT' , N'Kế toán' ),
( 'QTKD' , N'Quản trị kinh doanh' );
insert LOP values
( 'K1MT1' , 'CNTT' , N'Công nghệ thông tin 1' , 'K1' ), ( 'K1QT2' , 'QTKD' , N'Quản trị kinh doanh 2' , 'K1' ), ( 'K2MT1' , 'CNTT' , N'Công nghệ thông tin 1' , 'K2' ), ( 'K2KT1' , 'KT' , N'Kế toán 1' , 'K2' ),
( 'K3MT1' , 'CNTT' , N'Công nghệ thông tin 1' , 'K3' ), ( 'K3MT2' , 'CNTT' , N'Công nghệ thông tin 2' , 'K3' );
insert SINHVIEN values
( '123456' , 'K1MT1' , 'CNTT' , N'Nguyễn Văn Tài' ,
1 , '6/23/2000' , N'Hà Nội' , '012345678' ,
'nguyenvantai1@gmail.com' ),
( '234567' , 'K1MT1' , 'CNTT' , N'Nguyễn Thị Tuyết' ,
0 , '7/12/2000' , N'Quảng Nam' , '023456789' ,
'nguyenthituyet1@gmail.com' ),
( '324567' , 'K1QT2' , 'QTKD' , N'Trần Quang Hiếu' , 1 ,
'12/3/2000' , N'Hà Nội' , '123456789' ,
'quanghieu23@gmail.com' ),
( '231654' , 'K1MT1' , 'CNTT' , N'Nguyễn Gia Bảo' ,
1 , '2/15/2000' , N'Hải Phòng' , '123456221' ,
'giabao2123@gmail.com' ),
( '433211' , 'K2MT1' , 'CNTT' , N'Trần Trung Nghĩa' ,
1 , '3/12/2001' , N'Hải Phòng' , '32145675' ,
'nghiatrung2@gmail.com' ),
Trang 15( '433221' , 'K2MT1' , 'CNTT' , N'Lê Hải Châu' ,
0 , '5/16/2001' , N'Bắc Ninh' , '27564354' ,
'chaulee00@gmail.com' ),
( '928362' , 'K2KT1' , 'KT' , N'Lê Trung' , 1 , '2/12/2001' ,
N'Bắc Ninh' , '38465242' , 'trungmm@gmail.com' ),
( '234321' , 'K3MT1' , 'CNTT' , N'Nguyễn Minh Khải' , 1 ,
'4/21/2002' , N'Hà Nội' , '36485973' ,
'khaiminhnguyen@gmail.com' ),
( '211232' , 'K3MT1' , 'CNTT' , N'Nguyễn Hoa Quỳnh' ,
0 , '7/19/2002' , N'Quảng Trị' , '475987094' ,
'hoaquynh1@gmail.com' ),
( '211221' , 'K3MT2' , 'CNTT' , N'Nguyễn Ngọc Quỳnh' , 0 ,
'9/1/2002' , N'Hà Nam' , '58649642' , 'quynhngoc@gmail.com' );
insert DIEM values
( '123456' , 'FL2344' , 6.7 , 3 , 8 ),
( '123456' , 'SS2635' , 7 , 8.6 , 7 ),
( '234567' , 'FL2344' , 10 , 8 , 8 ),
( '928362' , 'FL2344' , 6 , 7.4 , 4 ),
( '234321' , 'IT1234' , 10 , 8 , 7.6 ),
( '234321' , 'MI6253' , 9 , 4.6 , 7 ),
( '211232' , 'IT1234' , 8 , 7 , 7.5 ),
( '211221' , 'IT1234' , 10 , 9 , 8 );
Hiển thị dữ liệu của các bảng:
select * from HOCPHAN ;
select * from LOP ;
select * from SINHVIEN ;
select * from KHOA ;
select * from DIEM ;
Cập nhật dữ liệu cho bảng:
update DIEM set DiemThi = 5 where MaSV = '211232'
and MaHP = 'IT1234' ;
select * from DIEM ;
Xóa dữ liệu của bảng:
delete from DIEM where MaSV = '123456' and MaHP = 'SS2635' ;
select * from DIEM ;
-Một số câu lệnh truy vấn:
1 Hiển thị tất cả các sinh viên của khóa 3:
select TenSV[Sinh viên] from SINHVIEN a join LOP b on
a MaLop = b MaLop where Khoa = 'K3' ;
2.Hiển thị tất cả các sinh viên có điểm thi môn tiếng anh > 5:
Trang 16select TenSV[Sinh viên] from SINHVIEN a join DIEM b
on a MaSV = b MaSV join HOCPHAN c on b MaHP = c MaHP
where TenHP = N'Tiếng Anh' and DiemThi > ;
3.Hiển thị tất cả các sinh viên khoa công nghệ
thông tin:
select TenSV[Sinh viên] from SINHVIEN a join LOP b on
a MaLop = b MaLop join KHOA c on b MaKhoa = c MaKhoa
where TenKhoa = N'Công nghệ thông tin' ;
4.Hiển thị thông tin của tất cả các sinh viên quê ở
Hà Nội và Bắc Ninh:
select * from SINHVIEN where Quequan in( N'Bắc Ninh' , N'Hà Nội' );
5.Hiển thị thông tin của tất cả các sinh viên có họ Nguyễn và tên có 3 kí tự:
select * from SINHVIEN where TenSV like N'% _' and
TenSV like N'Nguyễn %' ;
6.Hiển thị top 3 điểm thi cao nhất môn cơ sở dữ liệu: select top ( 3 ) TenSV[Sinh viên] , DiemThi[Điểm thi] from
SINHVIEN a join DIEM b on a MaSV = b MaSV join HOCPHAN c
on b MaHP = c MaHP
where TenHP = N'Cơ sở dữ liệu'
order by DiemThi desc ;
7.Đếm số lượng sinh viên của từng khoa:
select TenKhoa[Khoa] , count ( b MaKhoa ) [Số lượng]
from SINHVIEN a join KHOA b on b MaKhoa = a MaKhoa
group by TenKhoa , b MaKhoa ;
8.Hiển thị tất cả điểm của sinh viên:
select TenSV , DiemChuyenCan , DiemGiuaKi , DiemThi from
SINHVIEN a left join DIEM b on a MaSV = b MaSV ;
select TenSV , DiemChuyenCan , DiemGiuaKi , DiemThi from
DIEM a right join SINHVIEN b on a MaSV = b MaSV ;
9.Hiển thị xem những môn nào có điểm:
select distinct b MaHP , TenHP from DIEM a join HOCPHAN b
on a MaHP = b MaHP ;