Xác định các thực thể, mối quan hệ giữa các thực thể

Một phần của tài liệu Thiết kế, xây dựng mạng xã hội học tập rimtalk learn (Trang 38 - 44)

Thực thể (tiếng Anh: entity) là một cái gì đó tồn tại như tự chính nó, như một chủ thể hoặc như một khách thể, một cách thực sự hay một cách tiềm năng, một cách cụ thể hay một cách trừu tượng, một cách vật lý hoặc không. Nó không cần là sự tồn tại vật chất. Nói riêng, vật trừu tượng và trừu tượng pháp lý được coi như là các thực thể. Nói chung không có giả định rằng một thực thể là sống động (animate), hoặc là ở hiện tại. Mỗi thực thể có một hoặc nhiều đặc điểm; các đặc điểm này gọi là các thuộc tính (attribute). Những thuộc tính xác định một cách duy nhất các thực thể gọi là thuộc tính khóa.

Sự thể hiện của lược đồ ở một thời điểm nào đó được gọi là quan hệ.

Trên một lược đồ quan hệ có thể xác định nhiều quan hệ. Mỗi bộ (tuple) là những thông tin về một đối tượng thuộc một quan hệ.

NGƯỜI DÙNG TOPIC HỎI ĐÁP PHÒNG HỌC BÌNH LUẬN TOPIC MÃ NGƯỜI DÙNG LỚP HỌC TÀI LIỆU THƯ VIỆN THÔNG TIN NGƯỜI DÙNG Hình 2.9: Mô hình thực thể kết hợp

33

Mô hình thực thể kết hợp trên có thể được diễn giải đầy đủ như sau:

Một phòng học có nhiều người dùng tại một thời điểm, một người dùng chỉ thuộc một phòng học tại một thời điểm.

Một lớp học có thể có nhiều người dùng, một người dùng có thể tham gia nhiều lớp học.

Một người dùng có thể tải lên nhiều tài liệu, nhưng một tài liệu thì chỉ có thể tải lên bởi một người dùng nhất định.

Một người dùng có nhiều thông tin, một tập thông thông tin chỉ đúng với một người dùng nhất định.

Một người dùng có một mã người dùng, một mã người dùng chỉ xác định cho một người dùng.

Một người dùng có thể tạo nhiều topic, một topic được tạo bởi một người Người dùng

Phòng học

Người dùng Lớp học

Người dùng Thông tin người dùng

Người dùng Topic hỏi đáp

Người dùng Mã người dùng

Người dùng Tài liệu thư viện

34 dùng.

Một người dùng có thể bình luận nhiều topic, nhiều topic bình luận bởi một người dùng.

Qua việc khảo sát, phân tích và xây dựng các biểu đồ cần thiết cho bài toán mạng xã hội học tập, có được các thực thể như sau:

Thực thể 1: Thông tin tài khoản người dùng

Thông tin tài khoản người dùng trong nền tảng được tạo và cung cấp bởi API xác thực người dùng của Rimtalk. Xác định các thuộc tính cho thực thể người dùng khi dữ liệu từ API trả về:

- ID tài khoản (id_taikhoan): Đây là thuộc tính khoá, nhờ nó mà ta phân biệt được người dùng này với người dùng khác.

- Họ tên người dùng (hoten): Mô tả họ tên người dùng tương ứng với ID tài khoản tương ứng.

- Ngày sinh (ngaysinh): Cho biết ngày sinh của người dùng. - Giới tính (gioitinh): Cho biết giới tính người dùng.

- Tên tài khoản (tentaikhoan): Cho biết tên tài khoản của người dùng. - Email (email): Cho biết địa chỉ email người dùng.

- Trạng thái (trangthai): Cho trạng thái hiện tại đang online hay offline của người dùng.

- Ảnh đại diện (avatar): Cho biết hình đại diện của người dùng.

Thực thể 2: Lớp học

Thực thể này mô tả thông tin về các lớp học được tạo bởi người dùng hoặc người dùng tham gia:

- ID lớp học (id): Đây là thuộc tính khóa, phân biệt các lớp học với nhau. - Mã lớp học (malop): Phân biệt các lớp học với nhau.

- Tên lớp học (tenlop): Tên của lớp học để người dùng nhận biết. Người dùng Bình luận topic hỏi đáp

35

- ID tài khoản (id_taikhoan): ID tài khoản tạo lớp học này (chủ lớp). - Số học viên (sohocvien): Số lượng tối đa người dùng có thể đăng ký tham gia trong lớp học.

- Tình trạng (tinhtrang): Tình trạng của lớp mở hoặc tạm đóng.

Thực thể 3: Phòng học

Thực thể này mô tả thông tin về các phòng học được tạo bởi người dùng hoặc người dùng tham gia trong một lớp học:

- ID phòng học (id): Đây là thuộc tính khóa, phân biệt các phòng học với nhau.

- Mã phòng học (maphong): Phân biệt các phòng học với nhau.

- Tên phòng học (tenphong): Tên của phòng học để người dùng nhận biết.

- ID tài khoản (id_taikhoan): ID tài khoản tạo phòng học này (chủ phòng).

- ID lớp học (id_lophoc): Xác định phòng học này ở trong lớp học nào qua ID của lớp học.

- Số học viên (sohocvien): Số lượng tối đa người dùng có thể đăng ký tham gia trong phòng học.

- Tình trạng (tinhtrang): Tình trạng của phòng mở hoặc tạm đóng.

Thực thể 4: Topic

- ID topic (id): Đây là thuộc tính khoá nhờ thuộc tính này ta phân biệt được topic này với topic khác.

- ID thể loại (id_theloai): Xác định topic này thuộc thể loại nào.

- ID tài khoản (id_taikhoan): Xác định tài khoản nào lập topic này (chủ topic). - Tiêu đề (tieude): Tiều đề của topic.

- Nội dung (noidung): Nội dung topic.

Thực thể 5: Bình luận topic

36 biệt được bình luận này với bình luận khác.

- ID topic (id_topic): Xác định bình luận này nằm trong topic nào. - ID tài khoản (id_taikhoan): Xác định tài khoản nào tạo bình luận này (chủ bình luận).

- Nội dung bình luận (noidung): Nội dung của bình luận.

Thực thể 6: Thư viện

- ID tài liệu (id): Đây là thuộc tính khoá nhờ thuộc tính này ta phân biệt được tài liệu này với tài liệu khác.

- ID thể loại (id_theloai): Xác định tài liệu này thuộc thể loại nào.

- ID tài khoản (id_taikhoan): Xác định tài khoản nào tải tài liệu này lên (chủ tài liệu).

- Tên tài liệu (tentailieu): Tên của tài liệu. - Mô tả tài liệu (mota): Mô tả về tài liệu.

- Đường dẫn lưu trữ tài liệu (url_tailieu): Đường dẫn lưu trữ của tài liệu. - Thời gian tài liệu được tải lên (thoigian): Thời gian ngày giờ tài liệu được tải lên.

- Số lượt tải tài liệu (soluottai): Số lượt tải xuống của tài liệu.

Thực thể 7: Thể loại

- ID thể loại (id): Khóa chính thể loại. - Tên thể loại (tentheloai): Tên thể loại.

Chuẩn CSDL quan hệ của bài toán mạng xã hội học tập

Chuẩn hoá là quá trình tách bảng (phân rã) thành các bảng nhỏ hơn dựa vào các phụ thuộc hàm. Các dạng chuẩn là các chỉ dẫn để thiết kế các bảng trong CSDL. Mục đích của chuẩn hoá là loại bỏ các dư thừa dữ liệu và các lỗi khi thao tác dư thừa và các lỗi khi thao tác dữ liệu (Insert, Delete, Update). Nhưng chuẩn hoá làm tăng thời gian truy vấn.

Mục tiêu của chuẩn hóa cơ sở dữ liệu:

37

- Loại bỏ cập nhật dữ liệu bất bình thường.

- Loại bỏ chèn dữ liệu bất bình thường.

- Loại bỏ xóa dữ liệu bất bình thường.

Lưu ý: Chỉ chuẩn hóa các bảng dữ liệu có trong cơ sở dữ liệu của nền tảng

Rimtalk Learn, không chuẩn hóa dữ liệu từ Rimtalk Auth API.

** Chuẩn 1NF - Loại bỏ nhóm lặp và loại bỏ các thuộc tính tính toán.

Lớp học (ID lớp học, Mã lớp học, Tên lớp học)

Phòng học – lớp học (ID phòng học, Mã phòng học, Tên phòng học, ID lớp học)

Thể loại (ID thể loại, Tên thể loại)

Topic – thể loại (ID topic, ID thể loại, Tiêu đề, Nội dung)

Bình luận topic – topic (ID bình luận, ID topic, Nội dung bình luận)

Thư viện – thể loại (ID tài liệu, ID thể loại, Tên tài liệu, Đường dẫn lưu trữ tài liệu, Số lượt tải tài liệu)

** Chuẩn 2NF - Loại bỏ các phụ thuộc hàm không hoàn toàn vào khóa

chính.

Lớp học (ID lớp học, Mã lớp học, Tên lớp học, ID tài khoản)

Phòng học – lớp học (ID phòng học, Mã phòng học, Tên phòng học, ID lớp học)

Thể loại (ID thể loại, Tên thể loại)

Topic – thể loại (ID topic, ID thể loại, Tiêu đề, Nội dung) Bình luận topic – topic (ID bình luận, ID topic)

Thư viện – thể loại (ID tài liệu, ID thể loại, Tên tài liệu)

** Chuẩn 3NF - Loại bỏ các phụ thuộc hàm bắc cầu vào khóa chính.

Lớp học (ID lớp học, Mã lớp học, Tên lớp học, Số học viên, Tình trạng) Phòng học (ID phòng học, Mã phòng học, Tên phòng học, Số học viên, Tình trạng)

38 Topic (ID topic, Tiêu đề, Nội dung)

Bình luận topic (ID bình luận, Nội dung bình luận)

Thư viện (ID tài liệu, Tên tài liệu, Đường dẫn lưu trữ tài liệu, Số lượt tải tài liệu)

Một phần của tài liệu Thiết kế, xây dựng mạng xã hội học tập rimtalk learn (Trang 38 - 44)