Hệ thống quản lý điểm sinh viên là một trong những hệ thống mà trường học nào cũng cần phải có để quản lí việc học tập của sinh viên.. Vì vậy nhóm chúng em đã chọn đề tài “Nghiên cứu, xâ
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP
KHOA CÔNG NGHỆ THÔNG TIN
❊❊❊❊❊❊❊❊❊❊
MÔN HỌC: CƠ SỞ DỮ LIỆU CHỦ ĐỀ 6: NGHIÊN CỨU, XÂY DỰNG CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÍ
ĐIỂM SINH VIÊN
Giáo viên hướng dẫn: Trần Bích Thảo
Nhóm 6:
- Lê Anh Tú
- Hồ Sỹ Quý
- Phạm Thị Hà Anh
- Thái Thị Quỳnh Ngân
Lớp: DHTI15A8HN
Trang 2LỜI NÓI ĐẦU
Trong những năm gần đây, việc phát triển Công nghệ thông tin (CNTT) và việc áp dụng CNTT vào đời sống đã có những bước chuyển biến đáng kể Tin học đã và đang thấm nhập vào hầu hết các lĩnh vực trong xã hội Các bài toán quản lý lâu nay vẫn được làm một cách thủ công, thì nay đã được tin học hóa làm cho việc quản lý trở nên dễ dàng và chính xác hơn
Trong công cuộc đổi mới cùng với các lĩnh vực khác, ngành Giáo dục và Đào tạo cũng đã và đang được tin học hóa Các phần mềm quản lý, phần mềm hỗ trợ giảng dạy với sự trợ giúp của máy tính đã và đang phát huy tác dụng góp phần không nhỏ vào sự phát triển của nền Giáo dục
Hệ thống quản lý điểm sinh viên là một trong những hệ thống mà trường học nào cũng cần phải có để quản lí việc học tập của sinh viên Vì vậy nhóm chúng em đã chọn đề tài “Nghiên cứu, xây dựng cơ sở dữ liệu cho hệ thống quản lý điểm của sinh viên” trong dự án bài tập lớn lần này
Trang 3CHƯƠNG I: CƠ SỞ LÝ THUYẾT
1.1 THIẾT KẾ CSDL QUAN HỆ:
Mô hình Database Diagram
a Định nghĩa:
Mô hình Database Diagram là một biểu đồ hoặc sơ đồ minh họa cho phép mô tả cấu trúc của cơ sở dữ liệu (database) bao gồm các bảng, mối quan hệ giữa các bảng, các trường dữ liệu, khóa chính (primary key), khóa ngoại (foreign key) và các ràng buộc khác
Biểu đồ cơ sở dữ liệu cho phép người thiết kế và các thành viên trong đội ngũ phát triển cùng hiểu và phát triển cơ sở dữ liệu một cách hợp lý và hiệu quả Một mô hình Database Diagram có thể được tạo ra bằng nhiều công cụ khác nhau, chẳng hạn như SQL Sever, Microsoft Visio, MySQL Workbench, hay các công cụ thiết kế
cơ sở dữ liệu khác
b Các thành phần cơ bản của mô hình Database Diagram
Các thành phần cơ bản của mô hình Database Diagram bao gồm:
1 Bảng (Table): đại diện cho một tập hợp các dữ liệu có cùng đặc tính, thông thường được biểu diễn bằng một hình chữ nhật và có tên gọi tương ứng với tên bảng trong cơ sở dữ liệu
2 Trường (Field): đại diện cho một thông tin cụ thể trong bảng, thông thường được biểu diễn bằng một tên gọi tương ứng với tên trường trong bảng
3 Khóa chính (Primary Key): là một hoặc nhiều trường trong bảng định danh duy nhất cho mỗi bản ghi, thường được biểu diễn bằng một khung vuông quanh các trường đó
4 Khóa ngoại (Foreign Key): là một trường trong bảng tham chiếu đến khóa chính của một bảng khác, được biểu diễn bằng một mũi tên từ bảng tham chiếu đến bảng được tham chiếu
5 Mối quan hệ (Relationship): mô tả mối liên hệ giữa hai bảng, thường được biểu diễn bằng một đường nối giữa hai bảng và có thể được gắn nhãn với kiểu mối quan hệ như "one-to-one", "one-to-many", "many-to-many" để mô
tả quan hệ giữa các bảng
6 Ràng buộc (Constraint): là các quy tắc để giới hạn giá trị được lưu trữ trong bảng, thường được biểu diễn bằng các biểu tượng khác nhau, chẳng hạn như hình vuông hoặc hình tam giác Ràng buộc có thể được áp dụng cho trường hoặc cho toàn bộ bảng
Trang 41.2 CÀI ĐẶT CHƯƠNG TRÌNH
Hệ quản trị CSDL SQL Server 2019
a) Chức năng của hệ quản trị CSDL (DBMS):
- Lưu trữ các định nghĩa, các mối quan hệ liên kết dữ liệu vào trong một từ điển dữ liệu Từ đó các chương trình truy cập đến CSDL làm việc đều phải thông qua DBMS
- Tạo ra các cấu trúc phức tạp theo yêu cầu để lưu trữ dữ liệu
- Biến đổi các dữ liệu được nhập vào để phù hợp với các cấu trúc dữ liệu
- Tạo ra một hệ thống bảo mật và áp dụng tính bảo mật chung và riêng trong CSDL
- Tạo ra các cấu trúc phức tạp cho phép nhiều người sử dụng truy cập đến dữ liệu
- Cung cấp thủ tục sao lưu và phục hồi dữ liệu để đảm bảo an toàn và sự toàn vẹn
dữ liệu
- Cung cấp việc truy cập dữ liệu thông qua ngôn ngữ truy vấn
b) Hệ quản trị CSDL SQL Server 2019
Các thành phần của SQL Server 2019
Database: cơ sở dữ liệu của SQL Server
Tệp tin log: tệp tin lưu trữ nhật ký các hoạt động của SQL Server
Table: các bảng dữ liệu
Filegroups: nhóm tệp tin
Diagrams: sơ đồ quan hệ
Views: khung nhìn (bảng ảo) số liệu được truy xuất từ bảng
Stored Procedure: thủ tục và hàm nội
User defined Function: hàm do người dùng định nghĩa
Users: người sử dụng CSDL
Role: các quy định và chức năng trong hệ thống SQL Server
Rules: những quy tắc
Defaults: các giá trị mặc định
User-defined data types: kiểu dữ liệu do người dùng định nghĩa
Full-text catalogs: tập tin phân loại dữ liệu
Trang 5CHƯƠNG 2: MÔ TẢI BÀI TOÁN VÀ GIẢI PHÁP
2.1 CHỨC NĂNG HỆ THỐNG CỦA CHƯƠNG TRÌNH
2.1.1 Báo cáo
- Thông tin sinh viên
- Bảng điểm của từng môn học
- Khen thưởng (các sinh viên được học bổng)
- Điểm thi học kỳ
2.1.2 Cập nhập
- Cập nhập danh sách lớp
- Cập nhập danh sách khoa
- Cập nhập danh sách môn học
- Cập nhập thông tin sinh viên
- Cập nhập thông tin giáo viên
2.1.3 Tìm kiếm
- Tìm kiếm thông tin sinh viên theo tên, lớp, khoa
- Tìm kiếm thông tin lớp học
- Tìm kiếm thông tin sinh viên được khen thưởng
- Tìm kiếm thông tin giảng viên
CHƯƠNG 3: CHỨC NĂNG NGHIỆP VỤ CỦA CHƯƠNG TRÌNH QUẢN LÝ
ĐIỂM SINH VIÊN
3 CHỨC NĂNG CỦA CHƯƠNG TRÌNH
Trang 6Hệ thống quản lí chia làm 2 chức năng:
- Chức năng quản lý thông tin chung
- Chức năng quản lý kết quả học tập
3.1 Sơ đồ phân cấp chức năng hệ thống quản lý điểm sinh viên
3.2 Mô hình các bảng
Hệ thống quản lí điểm sinh viên 1.0 Nhập dữ
liệu
1.1 Thêm
mới
1.2 Cập
nhập
1.3 Xóa
2.0 Báo cáo
2.1 Danh sách sinh viên
2.2 Danh sách giảng viên
2.3 Danh sách điểm trung bình
2.4 Danh sách học bổng
3.0 Tìm kiếm
3.1 Tìm kiếm theo tên
3.2 Tìm kiếm theo điểm
Trang 7Hình 3.1: Bảng Sinh viên
Hình 3.2: Bảng Ngành đào tạo
Hình 3.3: Bảng Lớp học
Trang 8Hình 3.4: Bảng Lớp danh nghĩa
Hình 3.5: Bảng Khoa
Hình 3.6: Bảng Học bổng
Hình 3.7: Bảng Giáo viên
Trang 9Hình 3.8: Bảng Điểm
3.3 Mô hình Database Diagram
CHƯƠNG 4: GIAO DIỆN VÀ KẾT QUẢ CHƯƠNG TRÌNH
Trang 104.1 Tạo Database QL_DIEMSV CREATE DATABASE QL_DIEMSV 4.1 Tạo bảng
*Tạo bảng Sinh viên
CREATE TABLE SINHVIEN
(
MaSV CHAR(15) NOT NULL, MaLop CHAR(15) NOT NULL, MaKhoa CHAR(15) NOT NULL, Hoten NVARCHAR(30), GioiTinh NVARCHAR( ),4 NgaySinh DATE,
QueQuan NVARCHAR(30), SDT NUMERIC,
PRIMARY KEY (MaSV) )
*Tạo bảng Học bổng
CREATE TABLE HOCBONG
(
MaHB CHAR(15) NOT NULL, MaSV CHAR(15) NOT NULL, DiemTB FLOAT,
HocKy INTEGER,
GiaTri FLOAT,
PRIMARY KEY(MaHB)
)
*Tạo bảng điểm
CREATE TABLE BANGDIEM
(
MaSV CHAR(15) NOT NULL, MaMon CHAR(15) NOT NULL, DiemCC FLOAT,
DiemLT FLOAT,
DiemTH FLOAT,
Trang 11DiemThi FLOAT,
DiemTB FLOAT,
DiemChu CHAR( ),5
XepLoai NVARCHAR(15) )
*T o b ng l p danh nghĩaạ ả ớ CREATE TABLE LOP_DANH_NGHIA (
MaLop CHAR(15) NOT NULL, TenLop NVARCHAR(50), MaKhoa CHAR(15),
PRIMARY KEY(MaLop)
)
*Tạo bảng khoa
CREATE TABLE KHOA
(
MaKhoa CHAR(15) NOT NULL, TenKhoa NVARCHAR(50), SoNamHoc FLOAT
PRIMARY KEY(MaKhoa) )
*Tạo bảng ngành đào tạo
CREATE TABLE NGANH_DAO_TAO (
MaNganh CHAR(15) NOT NULL, TenNganh NVARCHAR(50), MaKhoa CHAR(15),
PRIMARY KEY(MaNganh) )
*Tạo bảng lớp học
CREATE TABLE LOPHOC
(
MaLop CHAR(15) NOT NULL, MaGV CHAR(15) NOT NULL, TenLop NVARCHAR(50), MaNganh CHAR(15) NOT NULL, SoLuongSV INTEGER,
Trang 12TimeHoc DATE,
TimeKT DATE,
PRIMARY KEY(MaLop)
)
*Tạo bảng giáo viên
CREATE TABLE GIAOVIEN
(
MaGV CHAR(15) NOT NULL,
TenGV NVARCHAR(30),
GioiTinh NVARCHAR( ),4
Email VARCHAR(30),
SDT NUMERIC,
PRIMARY KEY(MaGV)
)
4.2 Thêm dữ liệu cho bảng
*Thêm dữ liệu cho bảng sinh viên
INSERT INTO SINHVIEN
VALUES
('MSV001', 'DHTI15A8HN', 'CNTT1', N'Lê Anh Tú', N'Nam',
'20030110', N'S n La'ơ , '0367567442'),
('MSV002', 'DHMT13A8HN', 'KHMT1', N'H S Quý'ồ ỹ , N'Nam',
'20030701', N'Hà Tĩnh', '0367566442'),
('MSV003', 'DHMT15A10HN', 'KHMT2', N'Thái Th Quỳnh ị Ngân', N'N 'ữ , '20030921', N'Ngh An'ệ , '0367234720'),
('MSV004', 'DHTI15A9HN', 'CNTT2', N'Ph m Th Hà Anh'ạ ị ,
N'N 'ữ , '20010808', N'H i Dả ương', '0367234553'),
('MSV005', 'DHQT14A2HN', 'QTKD', N'Vũ Văn Trường',
N'Nam', '20001230', N'S n La'ơ , '0367234789');
*Thêm dữ liệu cho bảng điểm
Trang 13INSERT INTO BANGDIEM
VALUES
('MSV001', 'ANH406', 8.2 8.6 8.9 10 , , , , NULL, NULL, NULL),
('MSV002', 'ANH402', 7.8 8.8 8.1 9.5 , , , , NULL, NULL, NULL),
('MSV003', 'ANH406', 9.1 8.3 8.2 8.7 , , , , NULL, NULL, NULL),
('MSV004', 'CSDL502', 7.5 8.3 8.3 7.8 , , , , NULL, NULL, NULL),
('MSV005', 'KTCT', 7.5 7.2 8.5 7.2 , , , , NULL, NULL, NULL);
*Thêm dữ liệu cho bảng học bổng
INSERT INTO HOCBONG
VALUES
('HB001', 'MSV001', 8.5 1 , , NULL),
('HB002', 'MSV002', 7.9 2 , , NULL),
('HB003', 'MSV003', 8.0 5 , , NULL),
('HB004', 'MSV004', 8.7 1 , , NULL),
('HB005', 'MSV005', 7.2 1 , , NULL);
*Thêm dữ liệu cho bảng lớp danh nghĩa
INSERT INTO LOP_DANH_NGHIA
VALUES
('DHTI15A8HN', 'TIN HOC', 'CNTT1'),
Trang 14('DHMT13A8HN', 'MAY TINH', 'KHMT1'),
('DHMT15A10HN', 'MAY TINH', 'KHMT2'),
('DHTI15A9HN', 'TIN HOC', 'CNTT2'),
('DHQT14A2HN', 'QUAN TRI', 'QTKD');
*Thêm dữ liệu cho bảng khoa
INSERT INTO KHOA
VALUES
('CNTT1', 'Công Ngh Thông Tin'ệ , 4),
('KHMT1', 'Khoa H c Máy Tính'ọ , 3.5),
('KHMT2', 'Khoa H c Máy Tính'ọ , 3.5),
('CNTT2', 'Công Nghê Thông Tin', 4),
('QTKD', 'Qu n Tr Kinh Doanh'ả ị , 2.5);
*Thêm dữ liệu cho bảng ngành đào tạo
INSERT INTO NGANH_DAO_TAO
VALUES
('WEB1', 'Front End Web', 'CNTT1'),
('MT1', 'Data Scientist', 'KHMT1'),
('MT2', 'Data Analyst', 'KHMT2'),
('WEB2', 'Back End Web', 'CNTT2'),
('MKT3', 'Lead Marketing', 'QTKD');
*Thêm dữ liệu cho bảng lớp học
INSERT INTO LOPHOC
VALUES
('DHTI15A8HN', 'GV001', 'TIN HOC', 'WEB1', 60 ,
'20230201', '20230601'),
('DHMT13A8HN', 'GV002', 'MAY TINH', 'MT1', 54 ,
'20230201', '20230601'),
Trang 15('DHMT15A10HN', 'GV003', 'MAY TINH', 'MT2', 55 ,
'20230201', '20230601'),
('DHTI15A9HN', 'GV004', 'TIN HOC', 'WEB2', 65 ,
'20230201', '20230601'),
('DHTI14A2HN', 'GV005', 'QUAN TRI', 'MKT3', 44 ,
'20230201', '20230601');
*Thêm dữ liệu cho bảng giáo viên
INSERT INTO GIAOVIEN
VALUES
('GV001', N'Tr n Th Hầ ị ương', N'N 'ữ ,
'thhuong123@gmail.com', 0334445556),
('GV002', N'Ph m Th Thuỳ'ạ ị , N'N 'ữ , 'ptthuy123@gmail.com', 0334455667),
('GV003', N'Đ Văn D 'ỗ ư , N'Nam', 'dvdu@gmail.com',
0334447754),
('GV004', N'Vũ Bình Minh', N'Nam', 'vbminh123@gmail.com', 0357747890),
('GV005', N'Tr n Bích Th o'ầ ả , N'N 'ữ ,
'tbthao123@gmail.com', 0987654321);
4.3 Tìm kiếm
TIM KIEM THONG TIN KHOA CUA SINH VIEN THEO TEN BAT DAU BANG
KI TU
SELECT FROM dbo.SINHVIEN WHERE MaKhoa LIKE 'CN%'
TIM KIEM THONG TIN SINH VIEN BANG SO DIEN THOAI
SELECT FROM dbo.SINHVIEN WHERE SDT = '0367234720'
DEM SO LUONG SINH VIEN CNTT
SELECT COUNT(MaSV) AS count_KHOA FROM SINHVIEN WHERE MaKhoa
LIKE 'CNTT%'
Trang 16DANH SACH SINH VIEN DAT HOC BONG
SELECT SINHVIEN.MaSV, SINHVIEN.Hoten, BANGDIEM.DiemTB, HOCBONG.GiaTri
from dbo.BANGDIEM join dbo.HOCBONG on BANGDIEM.MaSV =
HOCBONG.MaSV JOIN dbo.SINHVIEN on HOCBONG.MaSV=SINHVIEN.MaSV
4.4 Cập nhật
CAP NHAT THONG TIN SINH VIEN
UPDATE dbo.SINHVIEN SET MASV = 'MSV003', MaLop =
'DHMT15A10HN', MaKhoa = 'khmt2', Hoten = N'Thái Th Quỳnh ị Ngân', GioiTinh = N'N 'ữ , NgaySinh = '20030921', QueQuan =
N'Ngh An'ệ , SDT = '0367234720' WHERE SDT = '0367234720'
UPDATE dbo.HOCBONG SET MaHB = 'HB003', MASV = 'MSV003', DiemTB , HocKy , GiaTri = 9 = 4 = 9000000 WHERE MaHB = 'HB003'
CAP NHAT DIEM TB
UPDATE BANGDIEM SET DiemTB = DiemCC * 0 1 (DiemLT DiemTH)+ + / * 0 3 DiemThi + * 0 6
CAP NHAT DIEM CHU
UPDATE BANGDIEM SET DiemChu = 'A' WHERE DiemTB > 8 5
UPDATE BANGDIEM SET DiemChu = 'B' WHERE DiemTB > 7 0 AND
DiemTB < 8 4
UPDATE BANGDIEM SET DiemChu = 'C' WHERE DiemTB > 5 5 AND
DiemTB < 6 9
UPDATE BANGDIEM SET DiemChu = 'D' WHERE DiemTB > 4 0 AND
DiemTB < 5 4
Trang 17UPDATE BANGDIEM SET DiemChu = 'F' WHERE DiemTB < 4 0
CAP NHAT XEP LOAI
UPDATE BANGDIEM SET XepLoai = 'XUAT SAC' WHERE DiemTB > 9 0
UPDATE BANGDIEM SET XepLoai = 'GIOI' WHERE DiemTB > 8 0 AND
DiemTB <= 9 0
UPDATE BANGDIEM SET XepLoai = 'KHA' WHERE DiemTB > 6 5 AND
DiemTB <= 8 0
UPDATE BANGDIEM SET XepLoai = 'TRUNG BINH' WHERE DiemTB > 5 0
AND DiemTB <= 6 4
UPDATE BANGDIEM SET XepLoai = 'YEU' WHERE DiemTB < 4 9
CAP NHAT HOC BONG
UPDATE HOCBONG SET GiaTri = '7000000' WHERE DiemTB > 7 0 AND
DiemTB <= 8 0
UPDATE HOCBONG SET GiaTri = '9000000' WHERE DiemTB > 8 0 AND
DiemTB <= 9 0
UPDATE HOCBONG SET GiaTri = '11000000' WHERE DiemTB > 9 0