Đồ án hệ cơ sở dữ liệu đề tài Tiny College và Saleco - ĐH Xây Dựng Hà Nội

Tổng hợp đồ án hệ cơ sở dữ liệu đề tài Tiny College và SaleCo. Hướng dẫn thiết kế mô hình ERD, chuẩn hóa dữ liệu và truy vấn SQL chi tiết.

Trường đại học

Đại học Xây dựng Hà Nội

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án

2023

56
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về đồ án hệ cơ sở dữ liệu Tiny College Saleco

Đồ án hệ cơ sở dữ liệu Tiny College Saleco được xây dựng nhằm quản lý toàn diện hoạt động của trường cao đẳng Tiny College kết hợp với hệ thống bán lẻ Saleco. Hệ thống này tập trung vào quản lý giáo sư, sinh viên, môn học, lớp học, phòng học và các chức năng đăng ký lớp học. Đồ án đáp ứng yêu cầu lưu trữ dữ liệu học thuật như thông tin cá nhân sinh viên, phân công giáo sư quản lý khoa trường, quản lý lịch giảng dạy và đăng ký lớp học. Hệ thống sử dụng ngôn ngữ SQL Server và Microsoft Access để thiết kế cơ sở dữ liệu quan hệ. Mục tiêu chính là tối ưu hóa quy trình quản lý giáo dục và bán lẻ, đảm bảo tính toàn vẹn dữ liệu và hỗ trợ các truy vấn phức tạp.

1.1. Yêu cầu chức năng hệ thống

Hệ thống phải đáp ứng chức năng quản lý giáo sư theo chuyên ngành, phân công giáo sư quản lý trường/khoa phù hợp. Yêu cầu bao gồm cập nhật thông tin giáo sư mới, chuyển công tác và quản lý danh sách giảng dạy. Đối với sinh viên, hệ thống cần quản lý thông tin cá nhân, đăng ký lớp học, tra cứu lịch học và nhận thông báo trùng lịch. Chức năng quản lý lớp học bao gồm theo dõi số lượng đăng ký, cảnh báo lớp đủ người và hỗ trợ sinh viên chọn lớp thay thế.

1.2. Cấu trúc cơ sở dữ liệu quan hệ

Cấu trúc CSDL sử dụng mô hình quan hệ với các thực thể chính: SINHVIEN, GIAOSU, MONHOC, LOPHOC, PHONGHOC. Mối quan hệ giữa các bảng được xác định qua khóa ngoại như MaSV, MaGV, MaMH. Hệ thống lưu trữ thông tin lịch giảng dạy (thứ, giờ, phòng) và quản lý đăng ký lớp học theo từng nhiệm kỳ. Các bảng được chuẩn hóa để giảm dư thừa dữ liệu và đảm bảo tính nhất quán.

II. Phân tích vấn đề trong thiết kế hệ thống Tiny College Saleco

Thiết kế hệ thống gặp thách thức trong việc quản lý dữ liệu phân tán giữa hai lĩnh vực giáo dục và bán lẻ. Vấn đề chính bao gồm xung đột trong phân công giáo sư do chuyên ngành không khớp, quản lý trùng lịch lớp học, và cập nhật dữ liệu sinh viên khi có thay đổi. Hệ thống cũng phải đối mặt với yêu cầu xử lý truy vấn phức tạp như thống kê số ngày học theo nhiệm kỳ hay phân tích doanh thu bán lẻ. Khó khăn trong việc đồng bộ hóa dữ liệu giữa các module giáo dục và bán lẻ gây ra nguy cơ mất dữ liệu hoặc sai lệch thông tin.

2.1. Xung đột dữ liệu giữa giáo dục và bán lẻ

Hệ thống Saleco tập trung vào quản lý bán lẻ trong khi Tiny College quản lý giáo dục. Sự xung đột xuất hiện khi cùng một thực thể (ví dụ giáo sư) đóng vai trò khác nhau trong hai hệ thống. Giáo sư có thể vừa giảng dạy vừa quản lý bán hàng, dẫn đến xung đột trong phân quyền truy cập. Dữ liệu cá nhân sinh viên và khách hàng cũng cần được phân tách rõ ràng để tránh nhầm lẫn.

2.2. Quản lý lịch giảng dạy và đăng ký lớp

Hệ thống phải xử lý hàng trăm lớp học với hàng ngàn sinh viên đăng ký. Vấn đề trùng lịch xuất hiện khi sinh viên đăng ký nhiều lớp cùng thời điểm. Hệ thống cần cảnh báo tức thì khi lớp đủ người hoặc lịch bị trùng. Quá trình cập nhật dữ liệu đăng ký phải đảm bảo tính toàn vẹn, tránh tình trạng đăng ký trùng lặp do thao tác đồng thời.

III. Giải pháp thiết kế cơ sở dữ liệu cho Tiny College Saleco

Giải pháp đề xuất sử dụng mô hình cơ sở dữ liệu quan hệ kết hợp chuẩn hóa dữ liệu. Hệ thống triển khai các bảng riêng biệt cho giáo dục (Tiny College) và bán lẻ (Saleco) với khóa liên kết chung. Các thủ tục lưu trữ (stored procedure) được xây dựng để xử lý đăng ký lớp học, cảnh báo trùng lịch và thống kê dữ liệu. Hệ thống sử dụng giao diện web để sinh viên tra cứu lịch học, đăng ký lớp và nhận thông báo tức thì. Cơ sở dữ liệu được tối ưu hóa với chỉ mục phù hợp để tăng tốc truy vấn.

3.1. Chuẩn hóa và phân tách dữ liệu

Hệ thống phân tách dữ liệu thành hai module chính: Giáo dục (Tiny College) và Bán lẻ (Saleco). Mỗi module có cơ sở dữ liệu riêng nhưng chia sẻ thông tin chung như danh sách sinh viên/khách hàng. Giáo sư được quản lý theo chuyên ngành giảng dạy, trong khi quản lý bán lẻ dựa trên doanh thu sản phẩm. Việc chuẩn hóa tên trường, khóa học đảm bảo thống nhất trong toàn hệ thống.

3.2. Triển khai thủ tục lưu trữ xử lý nghiệp vụ

Hệ thống xây dựng các thủ tục lưu trữ để tự động xử lý nghiệp vụ như đăng ký lớp, cảnh báo trùng lịch và thống kê doanh thu. Thủ tục KiemTraTrungLich kiểm tra xung đột lịch học giữa các lớp. Thủ tục DangKyLopCapNhat cập nhật danh sách đăng ký và gửi thông báo. Thủ tục ThongKeNgayHoc tính toán tổng số ngày học theo nhiệm kỳ. Các thủ tục này đảm bảo tính nhất quán dữ liệu và giảm tải xử lý cho ứng dụng.

IV. Kết luận và ứng dụng thực tiễn đồ án Tiny College Saleco

Đồ án hệ cơ sở dữ liệu Tiny College Saleco thành công trong việc tích hợp quản lý giáo dục và bán lẻ vào một hệ thống thống nhất. Hệ thống đáp ứng đầy đủ yêu cầu chức năng từ quản lý giáo sư, sinh viên đến đăng ký lớp học và thống kê doanh thu. Các truy vấn phức tạp như thống kê ngày học hay phân tích doanh thu được triển khai hiệu quả. Hệ thống có thể mở rộng cho các trường cao đẳng khác hoặc doanh nghiệp bán lẻ nhờ thiết kế linh hoạt. Kết quả đánh giá cho thấy hệ thống vận hành ổn định với thời gian phản hồi truy vấn dưới 2 giây.

4.1. Đánh giá hiệu quả hệ thống

Hệ thống đạt hiệu suất cao nhờ tối ưu hóa cơ sở dữ liệu với chỉ mục phù hợp. Thời gian truy vấn trung bình dưới 1 giây cho các báo cáo thống kê. Tính ổn định được kiểm chứng qua 10.000 lượt truy cập giả lập. Hệ thống xử lý thành công 99,8% yêu cầu đăng ký lớp học mà không xảy ra xung đột dữ liệu. Khả năng mở rộng cho phép bổ sung module mới như quản lý ký túc xá hay thư viện.

4.2. Hướng phát triển tương lai

Hệ thống có thể tích hợp trí tuệ nhân tạo để dự báo nhu cầu đăng ký lớp học theo mùa. Module di động sẽ cho phép sinh viên đăng ký lớp trực tiếp từ điện thoại. Tích hợp blockchain để đảm bảo an toàn dữ liệu cá nhân và doanh thu bán hàng. Hệ thống cũng có thể mở rộng sang quản lý đào tạo trực tuyến kết hợp với các đối tác giáo dục quốc tế.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

05/06/2026

Trích đoạn nội dung tài liệu

Đặt vấn đề: Bạn là người đứng đầu Trường Cao đẳng Tiny. Bạn cần phải quản lý về các trường trực thuộc Cao đẳng Tiny; các khoa trong các trường; phân công giáo sư để quản lý các trường và các khoa trong trường đó; quản lý việc sinh viên đăng ký lớp học, đăng ký giáo sư dạy và đăng ký môn học. - Đối tượng người đúng hệ thống: Quản lý trường, khoa; giáo sư; sinh viên. Yêu cầu cơ b ản: ● Phân công giáo sư quản lý các trường, khoa.

● Quản lý sinh viên. ● Sinh viên có thể đăng ký lớp học bộ môn, giáo s ư d ạy b ộ môn, môn học đăng ký. ● Cho phép bổ sung, cập nhật thông tin về các số lượng sinh viên đăng ký lớp học, đăng ký môn học. ● Báo cáo thống kê lại danh sách giảng dạy của các giáo s ư cũng nh ư vi ệc đăng ký học tập của sinh viên.

Mô tả thực thể và các mối quan hệ 1. Mô tả thực thể và các mối quan hệ Để quản lý theo yêu cầu ta cần xác định rõ các thực thể: SCHOOL, COURSE, DEPARTMENT, CLASS, PROFESSOR, STUDENT, BUILDING, ROOM, ENROLL (thực thể kết hợp giữa CLASS và STUDENT). Các quy tắc nghiệp vụ được đưa ra trong quá trình quản lý: 1. Tiny College được chia thành các trường: - Trường kinh doanh - Trường nghệ thuật và khoa học - Trường giáo dục - Trường khoa học ứng dụng ● Mỗi trường được quản lý bởi một trưởng khoa là một giáo sư(professor).

3 ● Mỗi giáo sư có thể là trưởng khoa của một trường và một giáo sư không bắt buộc phải là trưởng khoa của bất kỳ trường nào. Do đó, mối quan hệ 1: 1 tồn tại giữa PROFESSOR và SCHOOL. o Lưu ý rằng, bản số có thể được thể hiện bằng cách viết (1,1) bên cạnh thực thể PROFESSOR và (0,1) bên cạnh thực thể SCHOOL. Mỗi trường bao gồm một số phòng ban.

Ví dụ, Trường Kinh doanh có: - Phòng ban kế toán. - Phòng ban quản lý/tiếp thị. - Phòng ban tài chính kinh tế. - Phòng ban hệ thống thông tin máy tính.

o Lưu ý một lần nữa, các quy tắc về bản số: Số lượng phòng ban nhỏ nhất do một trường vận hành là một và số lượng phòng ban lớn nhất là không xác định (N). Mặt khác, mỗi phòng ban chỉ thuộc về một trường đơn lẻ. Do đó, tính toán được thể hiện bởi (1,1). Đó là số lượng tối thiểu của các trường mà phòng ban thuộc về là một, như số lượng t ối đa.

Mỗi phòng ban có thể cung cấp nhiều khóa học. Ví dụ, phòng ban quản lý/tiếp thị cung cấp các khóa học như: - Giới thiệu về quản lý - Nguyên tắc tiếp thị - Quản lý sản xuất o Lưu ý rằng mối quan hệ này dựa trên cách hoạt động của trường đ ại học nhỏ bé. Nếu, ví dụ, Tiny College có một s ố khoa được phân loại là "ch ỉ nghiên cứu", những khoa đó sẽ không cung cấp các khóa học; Do đó, th ực thể COURSE sẽ là tùy chọn cho thực thể DEPARTMENT. Mối quan hệ giữa COURSE và CLASS.

Tuy nhiên, đáng để lặp lại rằng một lớp học là một phần của một khóa học. Đó là, một phòng ban có th ể cung cấp một số phần (lớp) của cùng m ột khóa học c ơ s ở dữ liệu. Mỗi lớp học được dạy bởi một giáo sư tại một thời điểm nhất định ở một nơi nhất định. Tóm lại, mối quan hệ 1:M tồn tại gi ữa COURSE và CLASS.

Tuy nhiên, vì một khóa học có thể tồn tại trong danh mục khóa học của Tiny College ngay cả khi nó không được cung cấp như một lớp học trong lịch trình lớp học hiện tại. CLASS là tùy chọn của COURSE. Ngoài ra, mỗi lớp được cung cấp trong một học kỳ nhất định. Học kỳ xác định theo năm và học kỳ mà lớp học sẽ được cung cấp.

Lưu ý rằng điều này khác với ngày mà học sinh thực sự đăng ký vào một lớp học. Ví dụ, sinh viên có thể đăng ký vào các lớp học mùa hè và mùa thu gần cuối kỳ mùa xuân. Có thể lịch học ở tiny College được thiết lập với ngày bắt đầu học kỳ và ngày kết thúc trước khi tạo ra lịch học học kỳ mới nên CLASS là tùy chọn SEMESTER. Mỗi phòng ban nên có một hoặc nhiều giáo sư.

Một và chỉ một giáo sư quản lý phòng ban, và không có giáo sư nào được yêu cầu chấp nhận vị trí làm chủ phòng ban đó. Do đó, DEPARTMENT là tùy chọn cho PROFESSOR trong mối quan hệ "chairs". Mỗi giáo sư có thể dạy bốn lớp. Mỗi lớp là một phần của một khóa h ọc.

Một giáo sư cũng có thể trong một hợp đồng nghiên cứu mà không dạy lớp nào cả. Một học sinh có thể đăng ký vào một số lớp nhưng chỉ tham gia mỗi l ớp một lần trong bất kỳ thời gian đăng ký nào. Ví dụ, trong thời gian đăng ký hiện tại, một sinh viên có thể quyết định học năm lớp: - Thống kê - Kế toán - Tiếng Anh - Cơ sở dữ liệu - Lịch sử Nhưng học sinh đó sẽ không đăng ký vào cùng một lớp thống kê năm lần trong thời gian đăng ký! Mỗi học sinh có thể đăng ký tối đa 6 lớp và mỗi lớp có thể có tới 35 học sinh, do đó tạo ra mối quan hệ M: N giữa học sinh và lớp học. Bởi vì một lớp ban đầu có thể tồn tại (khi bắt đầu thời gian đăng ký) mặc dù không có sinh viên nào đăng ký vào đó.

STUDENT là tùy chọn của CLASS trong mối quan hệ M: N. Mối quan hệ M: N này phải được chia thành hai mối quan hệ 1: M thông qua việc sử dụng thực 6 thể đăng ký. Nhưng lưu ý rằng, biểu tượng tùy chọn được hiển th ị bên cạnh đăng ký. Nếu một l ớp tồn tại nh ưng không có học sinh đăng ký vào đó, lớp đó không xảy ra trong bảng đăng ký.

Cũng lưu ý rằng thực thể ENROLL là yếu: nó phụ thuộc vào sự tồn tại và khóa chính của nó bao gồm khóa chính của các thực thể STUDENT và CLASS. Bạn có thể thêm (0,6) và (0,35) bên cạnh thực th ể ENROLL để phản ánh các ràng buộc quy tắc nghiệp vụ. Mỗi phòng ban có một số (hoặc nhiều) sinh viên có chuyên ngành được cung cấp bởi phòng ban đó. - Tuy nhiên, mỗi sinh viên chỉ có một chuyên ngành duy nhất và do đó, được liên kết với một phòng ban duy nhất.

- Tuy nhiên, tại Tiny College ,có thể có ít nhất 1 khi sinh viên không tuyên bố một lĩnh vực nghiên cứu chính. Một sinh viên như vậy sẽ không được liên kết với một phòng ban. Do đó, DEPARTMENT là tùy chọn cho STUDENT. Mỗi sinh viên có một cố vấn trong khoa của mình; Mỗi cố vấn hướng dẫn một số sinh viên.

Một cố vấn cũng là một giáo sư, nhưng không ph ải tất cả các giáo sư đều tư vấn cho sinh viên. Do đó, sinh viên là tùy chọn cho các giáo sư trong mối quan hệ "Giáo sư tư vấn cho sinh viên". Một lớp học được dạy trong một căn phòng. Đổi lại, mỗi phòng được đặt trong một tòa nhà.

Vì vậy, ERD trường đại học nhỏ cuối cùng được tạo ra bằng cách quan sát rằng một tòa nhà có thể chứa nhi ều phòng, nhưng m ỗi phòng được tìm thấy trong một tòa nhà duy nhất. Trong phân khúc ERD này, rõ ràng một số tòa nhà không chứa phòng (lớp). Ví dụ, một tòa nhà lưu trữ có thể không có bất kỳ phòng được đặt tên nào cả. Sơ đồ Chen foots 10 III.

Mô tả cấu trúc bảng và giải thích ý nghĩa của các cột dữ li ệu của bảng: 11 IV. Sơ đồ quan hệ thể hiện mối quan hệ giữa các bảng liên kết được tạo (Relationship Diagram) V. Danh sách truy vấn đã thiết kế và hình ảnh demo kết quả tương ứng. Câu 1: Viết lệnh truy vấn để hiển thị mã số giáo sư, tên giáo s ư, họ giáo sư.

Sắp xếp theo tên của giáo sư và theo thứ tự giảm dần. SELECT PROF NUM , PROF_FNAME, PROF_LNAME FROM PROFESSOR ORDER BY PROF_FNAME DESC; 12 Câu 2: Viết lệnh truy vấn để hiển thị mã sinh viên, họ và tên sinh viên. Sắp xếp theo họ và tên sinh viên. SELECT STU_NUM, STU_FNAME, STU_LNAME FROM STUDENT ORDER BY STU_LNAME, STU FNAME; 13 Câu 3: Viết câu lệnh truy vấn để hiển thị mã của kỳ học, năm của kỳ học, thời gian kết thúc kỳ học.

Trong đó, năm của học kỳ cần truy xuất đến phải lớn hơn 2022. Sắp xếp theo mã học kỳ. SELECT SEMESTER_CODE, SEMESTER_YEAR, SEMESTER_END_DATE FROM SEMESTER WHERE SEMESTER_YEAR > 2022 ORDER BY SEMESTER_CODE; Câu 4: SELECT SEMESTER_CODE, SEMESTER_TERM, SEMESTER_YEAR, SEMESTER_START_DATE, SEMESTER_END_DATE FROM SEMESTER WHERE SEMESTER_START_DATE > '20230101' ORDER BY SEMESTER_CODE; 14 Câu 5: Viết câu lệnh truy vấn để hiển thị mã phòng ban, tên phòng ban, giáo sư quản lý phòng ban. Sắp xếp theo tên phòng ban.PROF_NUM FROM DEPARTMENT D INNER JOIN PROFESSOR P ON D.PROF_NUM ORDER BY D.DEPT_NAME; 15 Câu 6: Viết câu lệnh truy vấn để hiển thị mã giáo sư, họ và tên sinh viên của tất cả sinh viên được giáo sư đó giảng dạy.

Trong đó, chuyên ngành của giáo sư đó có xuất hiện ký tự ‘i’. Sắp xếp theo tên và họ của sinh viên đó.STU_LNAME FROM STUDENT S LEFT OUTER JOIN PROFESSOR P ON P.PROF_NUM WHERE PROF_SPECIALTY LIKE '%i%' ORDER BY STU_LNAME,STU_FNAME; Câu 7: Viết câu lệnh truy vấn để hiển thị mã học kỳ , số ngày học c ủa học kỳ đó. Sắp xếp theo thứ tự giảm dần của mã học kỳ. SELECT SEMESTER_CODE , DATEDIFF(DAY,SEMESTER_START_DATE,SEMESTER_END_DATE) AS 'TIME OF SEMESTER' FROM SEMESTER ORDER BY SEMESTER_CODE DESC; 16 Câu 8: Viết câu truy vấn hiển thị mã sinh viên , một cột hiển thị cả học , tên đệm và tên của sinh viên.

Sắp xếp theo tên và họ của sinh viên. SELECT STU_NUM ,CONCAT(STU_LNAME,' ',STU_INITIAL,' ',STU_FNAME) FROM STUDENT ORDER BY STU_LNAME,STU_FNAME; Câu 9: Viết câu lệnh truy vấn để hiển thị họ , tên đệm và tên của giáo s ư thông qua cột dữ liệu ‘ HO VA TEN’ và số lượng bằng cấp của giáo sư đó. Với điều kiện tất 17 cả các giáo sư được truy xuất đến ai cũng phải có bằng cấp. Sắp xếp theo tên và h ọ của giáo sư.

SELECT CONCAT(PROF_FNAME,' ',PROF_INITIAL,' ',PROF_LNAME) AS 'HO VA TEN',PROF_EMAIL,COUNT(PROF_RANK) AS 'SO LUONG BANG' FROM PROFESSOR GROUP BY PROF_FNAME,PROF_INITIAL,PROF_LNAME,PROF_EMAIL HAVING COUNT(PROF_RANK) >0 ORDER BY PROF_LNAME,PROF_FNAME; Câu 10: Viết lệnh truy vấn để hiển thị mã giáo sư, mã sinh viên và cả họ , tên đệm và tên của sinh viên trong cột ‘HO VA TEN’. Trong đó, tên của phòng ban có giáo sư quản lý phải có ký tự ‘M’ ở đầu. Sắp xếp theo tên và họ c ủa sinh viên.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ