1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo môn cơ sở dữ liệu tên đề tài quản lý thời khoá biểu sinh viên

12 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản lý thời khoá biểu sinh viên
Tác giả Nguyễn Đức A., Lê Công B., Trần Minh S.
Trường học Trường Đại Học Điện Lực
Chuyên ngành Cơ Sở Dữ Liệu
Thể loại Báo cáo môn học
Thành phố Hà Nội
Định dạng
Số trang 12
Dung lượng 99,87 KB

Nội dung

Yêu cầu về CSDL:Yêu cầu 1: Cho phép lưu thông tin về cá nhân của từng sinh viên học trong trường, bao gồm mã sinh viên, tên, ngày sinh, địa chỉ, khoa, và lớp.Yêu cầu 2: Cho phép lưu thôn

Trang 1

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN CƠ SỞ DỮ LIỆU

TÊN ĐỀ TÀI

“Quản lý thời khoá biểu sinh viên’’

Thành viên nhóm

1 Nguyễn Đức A MSSV

2 Lê Công B MSSV

3 Trần Minh S MSSV

Hà Nội, tháng năm

Trang 2

STT Họ và Tên Nhiệm vụ Ký tên

1 Nguyễn Đức A

MSSV:

2 Lê Công B.

MSSV:

3 Trần Minh S.

MSSV:

STT Họ và Tên giảng viên Điểm số Ký tên

1

2

Trang 3

I Mô tả bài toán

1.Sự cần thiết của bài toán:

a Sự cần thiết của bài toán:

Bài toán quản lý thời khóa biểu sinh viên là một vấn đề thiết yếu và cấp bách trong các trường học, đặc biệt là ở cấp đại học và cao đẳng Việc phát triển một chương trình cơ sở dữ liệu để quản lý thời khóa biểu sinh viên mang lại nhiều lợi ích quan trọng Trước hết, nó giúp tối ưu hóa quản lý thời gian và tài nguyên, cho phép nhà trường sắp xếp và phân bổ hợp lý các lớp học, phòng học, và giảng viên Điều này giúp tránh được

sự trùng lặp trong lịch học và đảm bảo các phòng học được sử dụng hiệu quả Ngoài ra, việc quản lý thời khóa biểu bằng cơ sở dữ liệu còn nâng cao trải nghiệm học tập của sinh viên, giúp họ dễ dàng tra cứu và theo dõi lịch học của mình, từ đó có kế hoạch học tập và làm việc hiệu quả hơn Điều này cũng giúp giảm bớt áp lực cho bộ phận quản lý giáo vụ, cho phép họ tập trung vào các công việc khác quan trọng hơn

b Yêu cầu về CSDL:

Yêu cầu 1: Cho phép lưu thông tin về cá nhân của từng sinh viên

học trong trường, bao gồm mã sinh viên, tên, ngày sinh, địa chỉ, khoa, và lớp

Yêu cầu 2: Cho phép lưu thông tin về giảng viên, bao gồm mã

giảng viên, tên, chuyên ngành, và các lớp mà giảng viên dạy

Yêu cầu 3: Cho phép lưu thông tin về từng môn học, bao gồm mã

môn học, tên môn học, số tín chỉ, và các điều kiện tiên quyết

Yêu cầu 4: Cho phép lưu thông tin về lớp học, bao gồm mã lớp,

môn học, giảng viên, thời gian, và địa điểm học

Yêu cầu 5: Cho phép lưu thông tin về phòng học, bao gồm mã

phòng, vị trí, sức chứa, và các trang thiết bị đi kèm

Yêu cầu 6: Cho phép xếp thời khóa biểu tự động hoặc bán tự động,

đảm bảo không có sự trùng lặp và tối ưu hóa việc sử dụng phòng học và giảng viên

Yêu cầu 7: Cho phép tra cứu thời khóa biểu của sinh viên và giảng

viên, và tạo các báo cáo chi tiết về thời khóa biểu, lịch sử học tập,

và tình trạng sử dụng phòng học

Yêu cầu 8: Đảm bảo tính bảo mật và phân quyền truy cập, cho

phép phân quyền cho các nhóm người dùng khác nhau như quản trị

Trang 4

viên, giảng viên, và sinh viên, đảm bảo rằng chỉ những người có quyền mới có thể truy cập hoặc chỉnh sửa thông tin nhất định

II Xây dựng bài toán

1 Sơ đồ SQL

Tên CSDL: “Quản lý thời khoá biểu sinh viên”

 Bảng SinhVien (masinhvien, tensinhvien, ngaysinh, diachi, khoa, lop) là bảng lưu thông tin của sinh viên Khoá chính –

Primary Key là masinhvien.

Ứng với Yêu cầu 1.

 Bảng GiangVien (magiangvien, tengiangvien, chuyennganh) là bảng lưu thông tin của giảng viên Khoá chính – Primay Key là

magiangvien

Ứng với Yêu cầu 2.

 Bảng MonHoc (mamonhoc, tenmonhoc, sotinchi,

dieukientienquyet) là bảng lưu thông tin của môn học Khoá

chính – Primary Key là mamonhoc.

Ứng với Yêu cầu 3.

 Bảng LopHoc (malophoc, mamonhoc, magiangvien,

maphonghoc, thoigian, diadiem) là bảng lưu thông tin của lớp

học Khoá chính – Primary Key là malophoc, Khoá ngoại – Foreign Key là mamonhoc, magiangvien, maphonghoc

Ứng với Yêu cầu 4.

 Bảng PhongHoc (maphonghoc, vitri, succhua, trangthietbi) là bảng lưu thông tin của phòng học Khoá chính – Primary Key là

maphonghoc

Ứng với Yêu cầu 5

 Bảng ThoiKhoaBieu (matkb, masinhvien, malophoc) là bảng lưu thông tin của thời khoá biểu Khoá chính – Primary Key là

matkb, khoá ngoại – Foreign Key là masinhvien, malophoc

Ứng với Yêu cầu 6.

Trang 5

 Bảng DiemDanh (madiemdanh, masinhvien, mamonhoc, songaynghi) là bảng lưu thông tin điểm danh, số ngày nghỉ của sinh viên theo môn học tín chỉ Khoá chính – Primary Key là

madiemdanh, khoá ngoại – Foreign key là masinhvien,

mamonhoc.

Ứng với Yêu cầu 7.

 Bảng BaoCao (mabaocao, loaibaocao, noidungbaocao,

thoigiantao, magiangvien, masinhvien) là bảng tạo các báo cáo

về lịch sử học tập, tình trạng sử dụng phòng Khoá chính –

Primary Key là mabaocao Khoá ngoại – Foreign Key là

magiangvien, masinhvien.

Ứng với Yêu cầu 8.

Diagram:

Trang 6

2 Code T - SQL

- CREATE TABLE SinhVien (

masinhvien NVARCHAR(10) PRIMARY KEY,

tensinhvien NVARCHAR(50),

ngaysinh DATE,

diachi NVARCHAR(100),

khoa NVARCHAR(50),

lop NVARCHAR(10)

);

Chèn dữ liệu vào ba2ng SinhVien

INSERT INTO SinhVien VALUES

INSERT INTO SinhVien VALUES

Ba2ng GiangVien

CREATE TABLE GiangVien (

magiangvien NVARCHAR (10) PRIMARY KEY,

tengiangvien NVARCHAR (50),

chuyennganh NVARCHAR (50)

);

Chèn dữ liệu vào ba2ng GiangVien

INSERT INTO GiangVien VALUES ('GV001', 'Le Van

INSERT INTO GiangVien VALUES ('GV002', 'Nguyen

Ba2ng MonHoc

CREATE TABLE MonHoc (

mamonhoc NVARCHAR(10) PRIMARY KEY,

tenmonhoc NVARCHAR(50),

sotinchi INT,

dieukientienquyet NVARCHAR(50)

);

Chèn dữ liệu vào ba2ng MonHoc

INSERT INTO MonHoc VALUES('MH001', 'Lap trinh C',

3, NULL);

Trang 7

INSERT INTO MonHoc VALUES('MH002', 'Toan cao cap', 3, NULL);

Ba2ng LopHoc

CREATE TABLE LopHoc (

malophoc NVARCHAR(10) PRIMARY KEY,

mamonhoc NVARCHAR(10),

magiangvien NVARCHAR(10),

maphonghoc NVARCHAR(10),

thoigian NVARCHAR(50),

diadiem NVARCHAR(50),

FOREIGN KEY (mamonhoc) REFERENCES

MonHoc(mamonhoc),

FOREIGN KEY (magiangvien) REFERENCES

GiangVien(magiangvien)

FOREIGN KEY (maphonghoc) REFERENCES

PhongHoc(maphonghoc)

);

Chèn dữ liệu vào ba2ng LopHoc

INSERT INTO LopHoc VALUES

INSERT INTO LopHoc VALUES

Ba2ng PhongHoc

CREATE TABLE PhongHoc (

maphonghoc NVARCHAR(10) PRIMARY KEY,

vitri NVARCHAR(50),

succhua INT,

trangthietbi NVARCHAR(100)

);

Chèn dữ liệu vào ba2ng PhongHoc

INSERT INTO PhongHoc VALUES ('PH001', 'Tang 1',

INSERT INTO PhongHoc VALUES ('PH002', 'Tang 2',

Trang 8

Ba2ng ThoiKhoaBieu

CREATE TABLE ThoiKhoaBieu (

matkb NVARCHAR(10) PRIMARY KEY,

masinhvien NVARCHAR(10),

malophoc NVARCHAR(10),

FOREIGN KEY (masinhvien) REFERENCES

SinhVien(masinhvien),

FOREIGN KEY (malophoc) REFERENCES

LopHoc(malophoc)

);

Chèn dữ liệu vào ba2ng ThoiKhoaBieu

INSERT INTO ThoiKhoaBieu VALUES ('TKB001',

INSERT INTO ThoiKhoaBieu VALUES ('TKB002',

Ba2ng DiemDanh

CREATE TABLE DiemDanh (

madiemdanh NVARCHAR(10) PRIMARY KEY,

masinhvien NVARCHAR(10),

mamonhoc NVARCHAR(10),

songaynghi INT,

FOREIGN KEY (masinhvien) REFERENCES

SinhVien(masinhvien),

FOREIGN KEY (mamonhoc) REFERENCES

MonHoc(mamonhoc)

);

Chèn dữ liệu vào ba2ng DiemDanh

INSERT INTO DiemDanh VALUES('DD001', 'SV001',

INSERT INTO DiemDanh VALUES('DD002', 'SV002',

- Ba2ng BaoCao

CREATE TABLE BaoCao (

mabaocao NVARCHAR(10) PRIMARY KEY,

masinhvien NVARCHAR(10),

magiangvien NVARCHAR (10),

loaibaocao NVARCHAR(50),

Trang 9

noidungbaocao NVARCHAR(100),

thoigiantao DATE,

FOREIGN KEY (masinhvien) REFERENCES

SinhVien(masinhvien),

FOREIGN KEY (magiangvien) REFERENCES

GiangVien(magiangvien)

);

Chèn dữ liệu vào ba2ng BaoCao

INSERT INTO BaoCao VALUES

INSERT INTO BaoCao VALUES

Bài Tập Và Lời Giải Chi Tiết

1 Danh sách các sinh viên cùng học lớp với sinh viên "Nguyen Van A"

SELECT DISTINCT SV2.tensinhvien

FROM ThoiKhoaBieu TKB1

JOIN ThoiKhoaBieu TKB2 ON TKB1.malophoc =

TKB2.malophoc

JOIN SinhVien SV1 ON TKB1.masinhvien =

SV1.masinhvien

JOIN SinhVien SV2 ON TKB2.masinhvien =

SV2.masinhvien

WHERE SV1.tensinhvien = 'Nguyen Van A' AND

SV1.masinhvien != SV2.masinhvien;

2 Tổ2ng sổJ tín chỉ2 mà sinh viên "Nguyen Van A"

đã đăng ký học

SELECT SUM(MH.sotinchi) AS tong_tinchi

FROM ThoiKhoaBieu TKB

JOIN LopHoc LH ON TKB.malophoc = LH.malophoc

JOIN MonHoc MH ON LH.mamonhoc = MH.mamonhoc

WHERE TKB.masinhvien = (SELECT masinhvien FROM

SinhVien WHERE tensinhvien = 'Nguyen Van A');

3 Danh sách các lớp học được gia2ng dạy bở2i gia2ng viên có sổJ lượng sinh viên đăng ký lớn

nhấJt

Trang 10

SELECT LH.malophoc, COUNT(TKB.masinhvien) AS

so_luong_sv

FROM LopHoc LH

JOIN ThoiKhoaBieu TKB ON LH.malophoc =

TKB.malophoc

GROUP BY LH.malophoc

HAVING COUNT(TKB.masinhvien) = (

SELECT MAX(so_luong)

FROM (

SELECT COUNT(TKB.masinhvien) AS so_luong FROM LopHoc LH

JOIN ThoiKhoaBieu TKB ON LH.malophoc = TKB.malophoc

GROUP BY LH.malophoc

) AS temp

);

4 Tìm các gia2ng viên gia2ng dạy nhiê[u mổn học nhấJt và sổJ lượng mổn học họ gia2ng dạy

SELECT GV.tengiangvien, COUNT(DISTINCT

LH.mamonhoc) AS so_luong_monhoc

FROM GiangVien GV

JOIN LopHoc LH ON GV.magiangvien = LH.magiangvien

GROUP BY GV.tengiangvien

HAVING COUNT(DISTINCT LH.mamonhoc) = (

SELECT MAX(so_luong)

FROM (

SELECT COUNT(DISTINCT LH.mamonhoc) AS

so_luong

FROM LopHoc LH

GROUP BY LH.magiangvien

) AS temp

);

5 Danh sách các gia2ng viên cùng gia2ng dạy một mổn học cụ thê2 (mổn "Lap trinh C")

SELECT DISTINCT GV.tengiangvien

FROM LopHoc LH

JOIN GiangVien GV ON LH.magiangvien =

GV.magiangvien

WHERE LH.mamonhoc = (SELECT mamonhoc FROM MonHoc

WHERE tenmonhoc = 'Lap trinh C');

Trang 11

6 Danh sách các phòng học có thiêJt bị "May chieu" và sổJ lượng lớp học tổ2 chức trong các phòng đó

SELECT PH.maphonghoc, COUNT(LH.malophoc) AS

so_luong_lophoc

FROM PhongHoc PH

JOIN LopHoc LH ON PH.maphonghoc = LH.diadiem

WHERE PH.trangthietbi LIKE '%May chieu%'

GROUP BY PH.maphonghoc;

7 Danh sách báo cáo được tạo trong tháng 7 năm 2023

SELECT * FROM BaoCao

WHERE MONTH(thoigiantao) = 7 AND

YEAR(thoigiantao) = 2023;

8 Danh sách các mổn học mà khổng có sinh viên nào đăng ký

SELECT MH.tenmonhoc

FROM MonHoc MH

WHERE MH.mamonhoc NOT IN (

SELECT DISTINCT LH.mamonhoc

FROM LopHoc LH

JOIN ThoiKhoaBieu TKB ON LH.malophoc =

TKB.malophoc

);

9 Danh sách các báo cáo được tạo trong năm

2023, săJp xêJp theo thứ tự thời gian tạo báo cáo gia2m dấ[n

SELECT * FROM BaoCao

WHERE YEAR(thoigiantao) = 2023

ORDER BY thoigiantao DESC;

10 Tên các sinh viên có tổ2ng sổJ ngày nghỉ2

trong tấJt ca2 các mổn học nhiê[u nhấJt

SELECT SV.tensinhvien, SUM(DD.songaynghi) AS

tong_songaynghi

FROM DiemDanh DD

JOIN SinhVien SV ON DD.masinhvien = SV.masinhvien

GROUP BY SV.tensinhvien

HAVING SUM(DD.songaynghi) = (

SELECT MAX(tong_nghi)

FROM (

SELECT SUM(DD.songaynghi) AS tong_nghi

Trang 12

FROM DiemDanh DD

GROUP BY DD.masinhvien ) AS temp

);

Ngày đăng: 15/08/2024, 10:07

w