• Quan hệ lớp thực tập
Sơ đồ 2: Quan hệ lớp thực tập
Sơ đồ trên mô tả quan hệ giữa thực thể lớp thực tập và các thực thể khác bao gồm môn học tương ứng (Subject), các sinh viên của lớp thực tập đấy (PracticeClassStudents), và các giảng viên tham gia giảng dạy (LecturerPracticeClass), Quan hệ giữa các thực thể này trong đặc tả cơ sở dữ liệu như sau:
PracticeClassStudents: 1- nhiều.
Subject: 1-1
LecturerPracticeClass: 1- nhiều.
File PracticeClass.xml
Để ánh xạ quan hệ giữa các lớp này, nhóm tác giả sử dụng loại quan hệ nhiều 1 một chiều trong Hibernate. Cụ thể, lớp PracticeClass sẽ giữ một tập các tham chiếu đến các lớp LecturerPracticeClass và các lớp PracticeClassStudents, nhưng các lớp này sẽ không giữ tham chiếu đến lớp PracticeClass. Quan hệ này được khai báo trong file đặc tả của lớp PracticeClass.xml như trên. File này, ngoài các thành phần đặc tả các thuộc tính, khóa chính của lớp PracticeCLass.xml, còn chứa 3 thành quan trọng:
<Many –to-one>: thể hiện quan hệ 1-1 với môn học của lớp thực tập đấy. Thuộc tính name=”subject” của quan hệ này chính là tham chiếu đến lớp Subject. Thuộc tính columl=”SUBJECTID” chính là khóa ngoài dùng để tham chiếu đến lớp Subject. Thuộc tính cascade=”All” nghĩa là các tất cả các thao tác thêm, sửa, xóa được thực hiện trên lớp PracticeClass sẽ được lan truyền sang lớp Subject.
<Set name = “LecturerPracticeClasses”>: Thể hiện quan hệ 1- nhiều 1 chiều tới lớp LecturerPracticeClasses. Thuộc tinh name mô tả một tập các tham chiếu đến các đối tượng của lớp LecturerPracticeClass. Thuộc tính Key mô tả khóa ngoài được sử dụng để tham chiếu đến các lớp này. Thuộc tính one-to-many dùng để mô tả đây là quan hệ 1-nhiều.
<Set name=practiceClassStudents>: Quan hệ này được mô tả tương tự như trên.
Sơ đồ 3: quan hệ giảng viên lớp thực tập.
Mô tả cụ thể về quan hệ giữa giảng viên của lớp thực tập với các thành phần khác được trình bày chi tiết trong phần đặc tả cơ sở dữ liệu. Ở đây, chúng tôi chỉ xin nếu một số nét chính về các quan hệ này, để từ đó, người đọc có thể hiểu được việc ánh xạ chúng sang quan hệ lớp. Cụ thể, mỗi giang viên (LecturerPracticeClass) sẽ quản lý nhiều sinh viên trong lớp thực tập (StudentLecturer). Giảng viên đó sẽ đặt ra một loạt các loại báo cáo mà sinh viên cần nộp trong đợt thực đấy (PracticeReportRule). Mỗi giảng viên cũng sẽ quản lý nhiều dự án (PracticeProjec) và mỗi dự án này sẽ được đăng kí bởi một sinh viên. Tương tác giữa các giảng viên và nhóm sinh viên mà giảng viên quản lý thông qua các comment được post lên tương, vậy nên mỗi thực giảng viên sẽ sở hữu nhiều comment (PracticeGroupComment). Cuối cùng, mỗi giảng viên trong lớp thực tập cũng chính là một giảng viên trong toàn bộ bộ môn (Lecturer). Mô tả cụ thể của các quan hệ trên như sau:
LecturerPracticeClass – PracticeProject: 1- nhiều.
LecturerPracticeClass – StudentLecturer: 1- nhiều.
LecturerPracticeClass – PracticeGroupComment: 1-nhiều.
LecturerPracticeClass – Lecturer: 1-1
PracticeProject – StudentLecturer: 1-1
Dựa trên nhưng quan hệ này, nhóm tác giả đã xây dựng các file đặc tả để ánh xạ chúng sang sơ đồ lớp như sau:
File đặc tả: LecturerPracticeClass.xml
• Quan hệ sinh viên và báo cáo
Sơ đồ 5: quan hệ sinh viên và báo cáo.
Mỗi sinh viên sẽ sở hữu nhiều báo cáo và mỗi báo cáo sẽ thuộc về một loại báo cáo nhất định. Đồng thời, mối sinh viên cũng sẽ tham gia vào một dự án nào đấy Quan hệ cụ thể như sau:
StudentLecturer- PracticeReport: 1-nhiều.
PracticeReport – PracticeReport: nhiều – 1.
StudentLecturer – PracticeProject: 1-1 Các file đặc tả để ánh xạ các quan hệ này như sau:
File đặc tả: StudentLecturer.xml.
• Quan hệ báo cáo
Sơ đồ 6: quan hệ giữa báo cáo và các bảng liên quan
Mỗi báo cáo sẽ có nhiều comment từ giảng viên hay sinh viên, đồng thời thuộc về mọt loại báo cáo nhất định. Mỗi Comment có thể gồm 1 hoặc nhiều trả lời. Các quan hệ cụ thể:
PracticeReport - PracticeReportComment: 1-nhiều.
PracitceReport - PracticeReportRule: nhiều – 1
PracticeReportComment – PracticeReportCommentReplay: 1-nhiều. Các quan hệ này được đặc tả như sau:
File đặc tả: PracticeReport.xml
File đặc tả: PracticeReportComment.xml.