Nội dung thi cuối kỳ Môn: Mô hình hóa dữ liệu NoSQL MongoDB | Công nghệ phần mềm | Trường Đại học Công nghiệp TP.HCM

Nội dung thi cuối kỳ Môn: Mô hình hóa dữ liệu NoSQL MongoDB - Công nghệ phần mềm của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

Thông tin:
28 trang 1 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Nội dung thi cuối kỳ Môn: Mô hình hóa dữ liệu NoSQL MongoDB | Công nghệ phần mềm | Trường Đại học Công nghiệp TP.HCM

Nội dung thi cuối kỳ Môn: Mô hình hóa dữ liệu NoSQL MongoDB - Công nghệ phần mềm của Trường Đại học Công nghiệp Thành phố Hồ Chí Minh. Hi vọng tài liệu này sẽ giúp các bạn học tốt, ôn tập hiệu quả, đạt kết quả cao trong các bài thi, bài kiểm tra sắp tới. Mời các bạn cùng tham khảo chi tiết bài viết dưới đây nhé.

27 14 lượt tải Tải xuống
lOMoARcPSD|40651217
OMoARcPSD|40651217
Nội dung thi cuối kỳ
Môn: Mô hình hóa dữ liệu NoSQL MongoDB (2101720)
Thời gian: 60 phút
Tài liệu tham khảo: tham khảo tài liệu của chính mình
Nội dung và cấu trúc đề thi:
Câu 1: (CLO3) Dựa đặc tả và yêu cầu đưa ra mô hình lưu trữ dữ liệu cơ bản
Gợi ý: Đưa ra các collection ứng với các trường lưu trữ dữ liệu; đưa ra mối quan hệ giữa các
collection (vẽ mối quan hệ và trường tham chiếu)
Lý thuyết:
I. Relationship Types and Cardinality
- One-to-one, one-to-many, many-to-many là những tính chất thông thường.
˗ One-to-zillions rất hữu ích trong Thế giới dữ liệu lớn – dữ liệu lớn.
˗ Tốt hơn nữa, hãy sử dụng các giá trị “maximum” “most likely” bằng cách sử dụng
một bộ dữ liệu có dạng: [min, like, max]. II. One to one
Embedded documents (Tài liệu nhúng)documents có lược đồ riêng là 1 phần của
documents khác. Hiểu đơn giản thì embedded documents 1 field nằm trong 1
collection thay lưu dữ liệu kiểu References ta phải thiết kế 2 collection để thể hiện
mối quan hệ One-to Many.
Ưu điểm:
- Truy xuất tất cả thông tin liên quan trong truy vấn
lOMoARcPSD|40651217
- Đạt hiệu suất cao trong việc đọc dữ liệu Nhược điểm:
- Kích thước document lớn ảnh hưởng đến việc ghi dữ liệu mỗi document không
thể vượt quá 16MB
Reference
Ưu điểm:
- Có thể cung cấp linh hoạt hơn với truy vấn. - Đạt hiệu suất cao trong việc ghi dữ
liệu.
- thể cải thiện hiệu suất: Giảm số lần truy cập đĩa, Tiết kiệm bộ nhớ RAM.
Nhược điểm:
- Khi truy vấn phải làm nhiều thao tác trên nhiều collection hơn.
III. One to many
thuyết 1.
Embedded:
1.1 Oneside: đơn giản, giảm số lượng document
lOMoARcPSD|40651217
1.2 Manyside: trùng lặp nhiều chỗ
2.
Reference 2.1
Oneside
lOMoARcPSD|40651217
2.2 Manyside
2.3 Recap: rất nhiều sự lựa chọn: nhúng hoặc tham chiếu chọn bên giữa "một"
"nhiều".
Sự trùng lặp thể xảy ra khi nhúng phía “nhiều”. Tuy nhiên, điều đó thể ổn hoặc
thậmchí thích hợp hơn
Thích nhúng hơn tham chiếu đơn giản hoặc khi một số lượng nhỏ tài liệu được
thamchiếu tất cả các thông tin liên quan được lưu giữ cùng nhau Nhúng vào bên cạnh bộ
sưu tập được truy vấn nhiều nhất
Ưu tiên tham khảo khi không phải lúc nào cũng cần đến các tài liệu liên quan với các tài
liệuđược truy vấn thường xuyên nhất
IV. Many to many
lOMoARcPSD|40651217
1. Embeded in main side
2. Reference in main side
3. Recap:
- MANY TO MANY relationship không đơn giản, thể bị thay thế bởi 2 cái One
to One relationships
- Ưu tiên Embedding phía được truy vấn nhiều, khi thông tin không cần realtime
và được phép trùng lắp dữ liệu
- Ưu tiên Reference khi để tránh trùng lắp dữ liệu, tối ưu hóa
V. One to zillione
lOMoARcPSD|40651217
Thực hành
Câu 2: (CLO4) Dựa vào yêu cầu tối ưu, áp dụng các pattern thích hợp để đáp ứng các yêu cầu
trong đề bài để tối ưu hóa mô hình dữ liệu
Gợi ý: đưa ra cấu trúc các collection sau khi áp dụng pattern (vẽ mô hình mối quan hệ, trường
tham chiếu); Nêu tên pattern, áp dụng ở đâu, nêu lý do và lợi ích khi áp dụng pattern đã chọn
I. Attribute Pattern
lOMoARcPSD|40651217
a
lOMoARcPSD|40651217
II. Extended Reference Pattern
lOMoARcPSD|40651217
III. Subset Pattern
lOMoARcPSD|40651217
IV. Computed Pattern
lOMoARcPSD|40651217
V. Bucket Pattern
lOMoARcPSD|40651217
VI. Schema version pattern
lOMoARcPSD|40651217
VII. Tree Pattern
lOMoARcPSD|40651217
lOMoARcPSD|40651217
lOMoARcPSD|40651217
lOMoARcPSD|40651217
Câu 3: (CLO5) Trả lời một vài câu hỏi lý thuyết liên quan đến việc áp dụng các kỹ thuật cơ bản
để tăng hiệu suất của hệ thống.
ND1: Để tăng hiệu năng cho hệ thống, hãy optimize từng câu truy vấn sau và đề xuất câu tạo chỉ
mục tương ứng
ND2:
Giả sử hệ thống được cài đặt gồm 4 Shard, dùng để lưu trữ thông tin của các người dùng
(users). Hệ thống thường xuyên thực hiện truy vấn thốnggom nhóm theo thành phố (city)
tính tổng, lớn nhất, nhỏ nhất, dựa trên các trường liên quan. Đây minh họa của 1 câu truy
vấn.
Db.users.aggeragate( [{ $group: { _id: ‘$address.provine’, avgStars: {$avg:
‘$stars’}}}).sort(avgStars=-1)
Bạn hãy đưa ra giải pháp để nâng cao hiệu quả truy vấn dữ liệu
Sh là shard
lOMoARcPSD|40651217
Sh.shardCollections(‘dtb.users,{‘address.city’:1})
ND3: Câu hỏi lý thuyết
Câu 1 :Những yếu tố nào ảnh hưởng đến hiệu năng của hệ thống, cho ví dụ và giải thích lý do tại
sao
1. Tài Nguyên Hệ Thống:
Ví Dụ: Sự sẵn có của CPU, bộ nhớ RAM, dung lượng đĩa và băng thông mạng.
Giải Thích: Nếu hệ thống không đủ tài nguyên, thể gặp khó khăn trong
việc xử lý nhiều yêu cầu cùng một lúc, dẫn đến giảm hiệu suất.
2. Optimization và Indexing:
Ví Dụ: Thiếu chỉ mục (index) trên các trường quan trọng trong cơ sở dữ liệu.
Giải Thích: Khi không chỉ mục, truy vấn sẽ phải quét toàn bộ dữ liệu, làm
giảm hiệu suất.
3. Cấu Trúc Dữ Liệu và Quan Hệ:
Ví Dụ: Sự thiếu hụt hoặc sự tồn tại của quan hệ không hiệu quả.
Giải Thích: Thiết kế dữ liệu không tối ưu có thể dẫn đến các truy vấn phức tạp và
chậm chạp.
4. Mạng và Latency:
Ví Dụ: Độ trễ kết nối mạng, độ trễ giữa các thành phần hệ thống.
Giải Thích: Mạng chậm thể làm tăng thời gian phản hồi giảm hiệu suất
chung.
5. Khối Lượng Dữ Liệu:
Ví Dụ: Sự gia tăng nhanh chóng của dữ liệu lưu trữ.
Giải Thích: Khi khối lượng dữ liệu tăng, việc quản lý và truy xuất dữ liệu trở nên
phức tạp và yêu cầu tài nguyên nhiều hơn.
6. Lập Lịch Xử Lý Công Việc:
Ví Dụ: Sự đồng thời của nhiều công việc cùng một lúc.
Giải Thích: Quản đồng thời lập lịch công việc quan trọng để tránh xung
đột và giữ cho hệ thống hoạt động mượt mà.
7. Quản Lý Phiên Bản và Cập Nhật:
Ví Dụ: Sử dụng phiên bản phần mềm lỗi hoặc không tối ưu.
lOMoARcPSD|40651217
Giải Thích: Cập nhật không được thực hiện thể làm giảm hiệu suất gây ra
lỗi bảo mật.
8. Bảo Mật và Giả Mạo:
Ví Dụ: Các tấn công mạng và thiếu bảo mật.
Giải Thích: Các tấn công việc không đảm bảo an toàn thể làm giảm hiệu
suất và gây rủi ro cho hệ thống.
9. Tối Ưu Hóa Câu Lệnh SQL:
Ví Dụ: Sử dụng các câu lệnh SQL phức tạp.
Giải Thích: Câu lệnh không tối ưu thể yêu cầu nhiều tài nguyên thời gian
xử lý.
10. Quy Trình Tối Ưu Hóa và Monitoring:
Ví Dụ: Thiếu quy trình theo dõi và tối ưu hóa định kỳ.
Giải Thích: Không quy trình tối ưu hóa định kỳ thể dẫn đến việc không
phát hiện ra vấn đề hiệu suất kịp thời.
Câu2: Để sử dụng RAM hiệu quả, bạn đề xuất các giải pháp có thể có và nêu lý do
1. Optimize Cấu Trúc Dữ Liệu:
Do: Sắp xếp cấu trúc dữ liệu để tận dụng đặc tính bộ nhớ cache. Sử dụng các
cấu trúc dữ liệu như mảng liên kết hoặc danh sách liên kết thể giảm độ trễ khi
truy cập dữ liệu.
2. Chỉ Đọc Dữ Liệu Cần Thiết:
Do: Nếu bạn chỉ cần đọc một phần của dữ liệu, chỉ tải các phần đó vào RAM
thay vì tải toàn bộ dữ liệu. Điều này giúp giảm lượng bộ nhớ được sử dụng.
3. Sử Dụng Chính Xác Các Loại Dữ Liệu:
Do: Sử dụng kiểu dữ liệu phù hợp với mức độ chính xác cần thiết. Sử dụng
kiểu dữ liệu nhỏ hơn nếu có thể giảm lượng bộ nhớ được sử dụng.
4. Tối Ưu Hóa Thuật Toán:
Do: Một số thuật toán hiệu quả hơn về mặt bộ nhớ thể được triển khai để
giảm lượng bộ nhớ được sử dụng trong quá trình thực thi.
5. Sử Dụng Compression (Nén):
Lý Do: Nếu dữ liệu có thể được nén mà không ảnh hưởng đến hiệu suất truy xuất,
việc này có thể giảm lượng bộ nhớ cần thiết để lưu trữ dữ liệu.
lOMoARcPSD|40651217
6. Memory-Mapped Files:
Do: Sử dụng memory-mapped files để ánh xạ phần của file vào bộ nhớ. Điều
này giúp tận dụng cơ chế ảnh xạ và tránh việc tải toàn bộ file vào bộ nhớ.
7. Thực Hiện Garbage Collection Định Kỳ:
Do: Đảm bảo garbage collection (GC) được thực hiện định kỳ để giải phóng
bộ nhớ không sử dụng và ngăn chặn sự tồn tại của bộ nhớ rác.
8. Sử Dụng Caching Công Cụ:
Do: Sử dụng các công cụ caching để lưu trữ dữ liệu thường xuyên được sử
dụng trong bộ nhớ. Điều này giúp giảm thời gian truy cập và tăng hiệu suất.
9. Thực Hiện Phân Trang (Paging):
Lý Do: Khi làm việc với lượng dữ liệu lớn, thực hiện phân trang để chỉ tải vào bộ
nhớ một lượng dữ liệu nhỏ tại một thời điểm.
10. Monitor và Điều Chỉnh:
Do: Sử dụng các công cụ giám sát để theo dõi việc sử dụng bộ nhớ điều
chỉnh cấu hình hệ thống dựa trên dữ liệu giám sát.
Câu 3: Hãy cho ví dụ 1 trường hợp là chúng ta nên đọc (Read) dữ liệu từ secondary tốt hơn là từ
Primary, giải thích lý do
Ví dụ: Hệ Thống Đọc Nhiều Hơn Ghi
Giả sử bạn một ứng dụng web với một lượng lớn người dùng đọc dữ liệu một số ít người
dùng thực hiện các thao tác ghi dữ liệu. Trong trường hợp này, đa số yêu cầu đến hệ thống là đọc
(READ), chẳng hạn như hiển thị thông tin sản phẩm, bài viết, hoặc thông tin người dùng.
Trong một cụm sở dữ liệu MongoDB sharded, thể các secondary nodes đặt gần người
dùng để giảm độ trễ và tăng tốc độ đọc dữ liệu. Mặc dù secondary không phải lúc nào đều có dữ
liệu mới nhất (do quá trình sao chép từ primary), nhưng trong nhiều trường hợp, việc đọc từ
secondary không cần phải luôn luôn nhất quán với dữ liệu mới nhất từ primary.
Lý Do:
1. Giảm Tải Cho Primary:
Khi bạn đọc từ secondary, các truy vấn đọc này không ảnh hưởng đến tải của
primary. Primary thể tập trung chủ yếu vào việc xử các thao tác ghi duy
trì tính nhất quán.
2. Tăng Hiệu Suất:
| 1/28