Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
8,31 MB
Nội dung
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC VÀ KỸ THUẬT THÔNG TIN - BÁO CÁO ĐỒ ÁN TÌM HIỂU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB Sinh viên thực hiện: Nguyễn Trí Vũ - 20521042 Nguyễn Thanh Tuấn - 20520031 Hồ Cảnh Công - 20520006 Giảng viên: ThS Lưu Thanh Sơn Thành phố Hồ Chí Minh, tháng 11 năm 2022 BÁO CÁO TĨM TẮT Tiêu đề báo cáo: TÌM HIỂU HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB Danh sách thành viên MSSV Họ tên 20521042 Nguyễn Trí Vũ 20520031 Nguyễn Thanh Tuấn 20520006 Hồ Cảnh Công Ghi Nội dung chi tiết Nội dung 1: Giới thiệu MongoDB + Đề mục 1: Giới thiệu sơ lược MongoDB + Đề mục 2: Một số khái niệm MongoDB Nội dung 2: Các tính + Đề mục 1: Các mơ hình liệu + Đề mục 2: Các phương thức CRUD MongoDB + Đề mục 3: Aggregation Operation Nội dung 3: Các tính nâng cao + Đề mục 1: Phân quyền, xác thực, bảo mật MongoDB + Đề mục 2: Index + Đề mục 3: Replica Set + Đề mục 4: Phân tán liệu + Đề mục 5: Sao lưu khôi phục + Đề mục 6: Nhập xuất liệu + Đề mục 7: Một số tính khác MongoDB Nội dung 4: Demo tính MongoDB + Đề mục 1: Kịch demo + Đề mục 2: Các chức demo + Đề mục 3: Kết demo Nội dung 5: Kết luận hướng phát triển Phân công công việc MSSV 20521042 Họ tên Nguyễn Trí Vũ Nội dung phân cơng Nội dung mục 1.2, Nội dung mục 3.1 đến 3.4, mục 3.7, Nội dung 4, Nội dung Tổng hợp nội dung quay video 20520031 Nguyễn Thanh Tuấn 20520006 Hồ Cảnh Công Nội dung (tất cả) , Nội dung Nội dung mục 1.1, Nội dung mục 3.5, 3.6, Nội dung MỤC LỤC CHƯƠNG 1: GIỚI THIỆU VỀ MONGODB 1.1 Giới thiệu sơ lược hệ quản trị CSDL 1.2 Một số khái niệm MongoDB CHƯƠNG 2: CÁC TÍNH NĂNG CƠ BẢN 2.1 Các mơ hình liệu 2.1.1 Giới thiệu mô hnh liệu 2.1.2 Tính mềm do 2.1.3 Các cấu trc ca mô hnh liệu 2.1.4 Xác thực mô hnh liệu 2.1.5 Các mu thiết kế ca mô hnh liệu 10 2.2 Các phương thức CRUD MongoDB 14 2.2.1 Thêm liệu 14 2.2.2 Truy vấn liệu 15 2.2.3 Cập nhật liệu 16 2.2.4 Xa liệu 17 2.3 Aggregation Operation 19 2.3.1 Aggregation Pipeline 19 2.3.2 Map-Reduce 20 CHƯƠNG 3: CÁC TÍNH NĂNG NÂNG CAO 21 3.1 Phân quyên, xác thực, bảo mật MongoDB 21 3.1.1 Xác thực kết nối ca người dùng (Authentication) 21 3.1.2 Phân quyền kiểm sốt người dùng truy cập thơng qua role 23 3.1.3 Mã hóa truyền liệu (TLS/SSL) 25 3.1.4 Mã hóa bảo vệ liệu 26 3.1.5 Kiểm tra (Auditing) 26 3.2 Index 26 3.2.1 Giới thiệu Index 26 3.2.2 Tạo index 27 3.2.3 Sử dụng Index để hỗ trợ truy vấn 27 3.3 Replica Set 27 3.3.1 Giới thiệu replica set 27 3.3.2 Cấu trúc ca replica set 27 3.3.3 Các bước thiết lập replica set 29 3.4 Phân tán liệu 29 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Giới thiệu Sharding 29 Một số định nghĩa 30 Phương pháp Sharding 31 Zone Sharded Cluster 32 Cách triển khai Sharded Cluster 32 3.5 Sao lưu khôi phục 34 3.5.1 Sao lưu sở liệu với mongdump 34 3.5.2 Khôi phục sở liệu với mongorestore 35 3.6 Nhập xuất liệu 36 3.6.1 Nhập liệu vào Collection 36 3.6.2 Xuất liệu từ Collection 38 3.7 Một số tính khác MongoDB 40 CHƯƠNG 4: DEMO TÍNH NĂNG TRÊN MONGODB 41 4.1 Kịch demo 41 4.2 Các chức demo 43 4.3 Kết demo 43 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53 5.1 Kết luận 53 5.1.1 Ưu điểm 53 5.1.2 Nhược điểm 53 5.2 Hướng phát triển 53 DANH MỤC BẢNG Bảng 4.1: Thiết lập sharded cluster MongoDB localhost 41 Bảng 4.2: Tạo người dùng phân quyền 41 Bảng 4.3: Các collection kèm thông tin database rangerShop 42 DANH MỤC HÌNH VẼ Hình 2.1: Ví dụ tham chiếu mơ hình liệu ca MongoDB Hình 2.2: Ví dụ thiết lập xác thực bng JSON schema 10 Hình 2.3: Ví dụ thiết lập xác thực bng tốn tử truy vấn 10 Hình 2.4: Ví dụ hệ thống danh mục sách mô tả theo cấu trc 13 Hnh 2.5: Dùng phương thức db.collection.insertOne() để thêm sinh viên vào collection students 14 Hnh 2.6: Dùng phương thức db.collection.insertMany() để thêm sinh viên vào collection students 14 Hnh 2.7: Dùng phương thức db.collection.find() để lấy tồn thơng tin collection students 15 Hnh 2.8: Dùng phương thức db.collection.find() để tìm sinh viên thỏa điều kiện cho trước 16 Hình 2.9: Dùng db.collection.updateMany()cập nhật thông tin sinh viên, sau đ kiểm tra kết 17 Hình 2.10: Dùng db.collection replaceOne() thay thông tin ca sinh viên c tên “uit_sv” 17 Hnh 2.11: Dùng phương thức db.collection.deleteMany() xa tất document Collection 18 Hnh 2.12: Dùng phương thức db.collection.deleteMany() xa document Collection theo điều kiện 18 Hình 2.13: Dùng phương thức db.collection.deleteOne() xa document Collection thỏa điều kiện 18 Hình 3.1: Bật chế độ kiểm sốt người truy cập ca Mongo bng cách sửa file mongod.conf 22 Hình 3.2: Sử dụng MongoDB Compass tiến hành đăng nhập 23 Hnh 3.3: Sơ đồ mối quan hệ thành phần Replica Set 28 Hình 3.4: Sơ đồ mối quan hệ thành phần Sharded Cluster 30 Hnh 3.5: Click “Add Data” chọn Import File 36 Hình 3.6: Chọn vị trí tệp loại tệp cho loại tệp JSON 37 Hình 3.7: Chọn trường muốn thêm chọn loại liệu cho trường cho loại tệp CSV 37 Hình 3.8: Chọn options nâng cao cho loại tệp CSV 38 Hình 3.9: Màn hình hiển thị liệu file JSON (bên trái), CSV (bên phải) nhập vào 38 Hình 3.10: Chọn Export Collection 39 Hình 3.11: Hộp thoại chọn lựa cách xuất liệu bng cách query filter hay xuất toàn 39 Hình 3.12: Chọn thêm trường để xuất hy bỏ trường không muốn xuất 39 Hình 3.13: Chọn Browse để chọn vị trí đích muốn xuất file ra, sau đ nhấn Export để tiến hành xuất 40 Hnh 4.1: Collection products sở liệu rangerShop 44 Hnh 4.2: Collection orders users sở liệu rangerShop 44 Hình 4.3: Sharded Cluster gồm shard replica set c tên định danh shard_repl shard2_repl 45 Hình 4.4: Sharded Cluster chứa collection phân tán theo index orders, products, users 45 Hnh 4.5: Quy định xác thực liệu collection sở liệu rangerShop 46 Hình 4.6: Kiểm tra thơng tin người dùng phân quyền mongos shard thành phần 47 Hình 4.7: Dùng mongoose.connect() kết nối backend với sở liệu rangerShop kèm thông tin xác thực 48 Hình 4.8: Thiết kế phương thức GET productRouter lấy tồn thơng tin sản phẩm sở liệu 48 Hình 4.9: Kết phản hồi ca backend yêu cầu đưa tất thông tin sản phẩm sở liệu, so sánh với kết truy vần dùng phương thức Mongosh 49 Hình 4.10: Hiển thị sản phẩm lên frontend 49 Hình 4.11: Thiết kế phương thức GET orderRouter lấy thông tin tổng quan liệu collection orders 50 Hình 4.12: Sử dụng phương thức db.collections.aggregate() để xuất thơng tin số lượng đơn hàng tổng giá trị tính collection orders 50 Hình 4.13: Hiển thị thơng số lên giao diện website ca admin 50 Hnh 4.14: Dùng mongodump lưu liệu ca sở liệu rangerShop 51 Hnh 4.15: Các file lưu sở liệu rangerShop tạo 51 Hình 4.16: Dùng mongorestore khơi phục lại sở liệu rangerShop từ lưu 51 Hình 4.17: Kết khôi phục lại sở liệu bng mongorestore 52 Hình 4.18: File JSON ca collection sở liệu rangerShop 52 CHƯƠNG 1: 1.1 GIỚI THIỆU VỀ MONGODB Giới thiệu sơ lược hệ quản trị CSDL MongoDB sở liệu NoSQL phổ biến nhất, sở liệu hướng tài liệu có mã nguồn mở Thuộc loại sở liệu không quan hệ (NoSQL), MongoDB không dựa cấu trc sở liệu quan hệ giống bảng mà lưu trữ truy xuất liệu dạng document Định dạng liệu mà MongoDB sử dụng BSON (khá gần giống với định dạng JSON) MongoDB phát hành vào năm 2009 viết bng ngôn ngữ C++, C++ ngôn ngữ gần với ngôn ngữ máy nên dễ dàng hiểu rng MongoDB tính tốn tốc độ cao hẳn hệ quản trị sở liệu khác Đ lý mà MongoDB nhà phát triển đánh giá cao MongoDB hỗ trợ đa tảng theo hướng đối tượng dùng lưu trữ liệu có cấu trúc phức tạp Không hệ quản trị sở liệu khác lưu trữ dạng bảng, MongoDB lưu liệu vào collection theo hướng tài liệu JSON Đây kiểu liệu dạng Key-Value truy xuất nhanh khả mở rộng không bị ràng buộc tạo khóa ngoại hay khóa 1.2 Một số khái niệm MongoDB Các thành phần cốt lõi tạo nên MongoDB gồm: - Mongod: tiến trình lõi ca MongoDB, nơi lưu trữ quản lý liệu - Mongos: controller query router, dùng cho trường hợp phân tán liệu (sharded cluster) - Mongosh: giao diện shell để người dùng tương tác thực lệnh với sở liệu Có thể dùng Mongosh để chạy kiểm tra lệnh truy vần thao tác tùy biến liệu lưu sở liệu Để khởi động MongoDB mặc định localhost, chạy lệnh mongosh command line Tiến trình mongod khởi động, mongosh kết nới với mongod chạy localhost:27017 Lệnh mongosh tương đương với câu lệnh mongosh "mongodb://localhost:27017" Document: Trong MongoDB, ghi gọi document Mỗi document chứa cặp giá trị gồm trường liệu giá trị tương ứng ca trường đ document Document hình thức tương tự liệu kiểu JSON Giá trị ca trường số, văn bản, mảng, document khác mảng document Collection: MongoDB lưu trữ document collection Collection MongoDB tương đương với bảng mơ hình quan hệ Để tạo collection sở liệu, sử dụng phương thức db.createCollection() BSON: định dạng liệu hóa dạng nhị phân sử dụng để lưu trữ document thực gọi th tục từ xa MongoDB Có nhiểu kiểu liệu BSON, sử dụng số chuỗi định danh để quy định kiểu liệu cho đối tượng Database (Cơ sở liệu): Một mongod chứa nhiều sở liệu Một sở liệu chứa nhiều collection Để chọn sở liệu tiến hành thao tác với liệu với sở liệu đ, mongosh dùng lệnh use Để tạo sở liệu mongod, trường hợp sở liệu không tồn tại, MongoDB tự động tạo sở liệu lưu trữ document lần cho sở liệu đ Do đ, c thể dùng lệnh use để chuyển sang sở liệu không tồn thực thao tác thêm document collection mongosh MongoDB tạo sở liệu kèm theo collection kèm document định Ví dụ: use myNewDB db.myNewCollection1.insertOne( { x: } ) MongoDB Compass: giao diện GUI cho phép người dùng tương tác với mongod cách trực quan thay dùng giao diện commandline MongoDB Compass hiển thị sở liệu, collection, document cách trực quan, hỗ trợ truy vấn, thực aggregating function phân tích liệu MongoDB MongoDB Database Tools: tập hợp tiện ích dạng command-line thiết lập sẵn, dùng để thực thao tác đặc biệt với MongoDB nhập xuất, lưu, khôi phục liệu (mongodump mongorestore),… CHƯƠNG 2: 2.1 CÁC TÍNH NĂNG CƠ BẢN Các mơ hình liệu 2.1.1 Giới thiệu mơ hnh liệu Thách thức mơ hình hóa liệu cân bng nhu cầu ca ứng dụng, đặc điểm hiệu suất ca hệ quản trị sở liệu mu truy xuất liệu Khi thiết kế mơ hình liệu, cần phải cân nhc việc sử dụng liệu ứng dụng (bao gồm truy vấn, cập nhật xử lý liệu) cấu trúc vốn có ca liệu đ 2.1.2 Tính mềm do Khác với sở liệu SQL, yêu cầu phải xác định khai báo lược đồ ca bảng trước thêm liệu, Collection ca MongoDB không yêu cầu document phải c mô hnh liệu: không thiết phải c nhm trường, kiểu liệu cho trường c thể khác document liệu Để thay đổi cấu trc ca document Collection, cần cập nhật document theo cấu trc liệu Tính linh hoạt tạo điều kiện thuận lợi cho việc ánh xạ document tới thực thể đối tượng Mỗi document khớp với trường liệu ca thực thể đại diện, ghi có thay đổi đáng kể so với document khác Collection Tuy nhiên thực tế, document Collection thường c cấu trc tương tự Đồng thời, người ta sử dụng quy tc xác thực mô hnh liệu trnh thêm sửa liệu 2.1.3 Các cấu trc ca mô hnh liệu Vấn đề quan trọng việc thiết kế mơ hình liệu cho ứng dụng sử dụng MongoDB xoay quanh cấu trúc ca Collection cách ứng dụng thể mối quan hệ liệu - Nhng liệu: MongoDB cho phép nhúng tất liệu liên quan document Dữ liệu nhúng thể mối quan hệ liệu bng cách lưu trữ liệu liên quan cấu trúc tài liệu MongoDB hỗ trợ việc nhúng cấu trúc liệu vào trường mảng document Các mơ hình liệu khơng “chuẩn hóa” cho phép - Bước 5: Chọn loại tệp vị trí xuất: Trong Chọn loại tệp xuất, chọn JSON CSV Nếu chọn JSON, liệu xuất sang tệp đích dạng mảng Sau đ chọn “Select Output”, chọn nơi xuất tệp sang Hình 3.13: Chọn Browse để chọn vị trí đích mun xut file ra, sau nhn Export để tiến hành xut - Bước 6: Nhấp vào Export Thanh tiến trình hiển thị trạng thái ca trình xuất Nếu xảy lỗi, tiến trình chuyển sang màu đỏ thông báo lỗi xuất hộp thoại Sau xuất thành công, hộp thoại đng 3.7 Một số tính khác MongoDB Change stream: Change stream cho phép ứng dụng tiếp cận thông tin thay đổi liệu theo thời gian thực thay phải theo dõi oplog Các ứng dụng kết nối với sở liệu MongoDB dùng change strams để c thay đổi liệu lưu collection đơn l, sở liệu hay nguyên dự án, dựa đ c thể có thao tác phản ứng lại với thay đổi đ Time Series: Time series data (dữ liệu theo thời gian) chuỗi liệu thay đổi theo thời gian, từ thay đổi ca liệu phân tích, nghiên cứu, đưa nhận xét liệu, ngồi cịn giúp cải thiện việc truy vấn tối ưu vùng nhớ lưu trữ liệu index Collection time series thực thao tác thêm truy vấn collection bnh thường Thực transaction nhiều document: Trong MongoDB, thao tác lên document có tính nguyên tử Tuy nhiên, trường hợp cần tính nguyên tử thao tác đọc ghi lúc nhiều document (có thể nhiều collection), MongoDB hỗ trợ thực transaction nhiều document 40 CHƯƠNG 4: 4.1 DEMO TÍNH NĂNG TRÊN MONGODB Kịch demo Tạo ứng dụng website bán quần áo rangerShop bng cách tạo lưu liệu Sharded Cluster ca MongoDB, cung cấp tính truy xuất, thêm, xóa, sửa người dùng, sản phẩm, đơn hàng Backend sử dụng NodeJS framework ExpressJS, truy vấn sở liệu sử dụng thư viện Mongoose Frontend sử dụng ReactJS Tiến hành lưu, khôi phục, xuất nhập liệu từ file JSON Bng 4.1: Thiết lp sharded cluster MongoDB localhost Các thành phần Tên replica set Hostname, port mongod ca replica set Config Server config_repl localhost:28041, localhost:28042, Replica Set localhost:28043 Shard Replica Set (1) shard_repl localhost:28081, localhost:28082, localhost:28083 Shard Replica Set (2) shard2_repl localhost:29081, localhost:29082, localhost:29083 Mongos localhost:27017 Bng 4.2: Tạo người dùng phân quyền Host Username Role database admin localhost:28081 shard_repl_admin userAdminAnyDatabase, readWriteAnyDatabase, clusterAdmin adminRangerShopShard1 readWriteAnyDatabase localhost:29081 shard2_repl_admin userAdminAnyDatabase, readWriteAnyDatabase, clusterAdmin adminRangerShopShard2 readWriteAnyDatabase localhost:27017 vunguyen userAdminAnyDatabase, readWriteAnyDatabase, clusterAdmin nguoidung readWriteAnyDatabase 41 Database tạo thêm Sharded Cluster: rangerShop Bng 4.3: Các collection kèm thông tin database rangerShop *Trường liệu in nghiêng khơng bắt buộc phi có collection Kiểu liệu collection Collection Shard Keys Trưng liệu users products {_id:1} Kiểu BSON yêu cầu liệu name string email string password string isAdmin bool {_id:”hashed”} name string slug string image string brand string category string description string price number, minimum: countInStock number, minimum: rating number, minimum: numReviews number, minimum: reviews array, chứa object Object mảng có thuộc tính sau: name (string), comment (string), rating (number) orders {_id:”hashed”} orderItems array, chứa object Object mảng có thuộc tính: name (string), slug (string), image (string), price (number, minimum:0), quantity (number, minimum:0), product (objectId) 42 shippingAddress object; có thuộc tính sau: fullName (string), address (string), city (string), postalCode (string), country (string), location (object) location chứa thuộc tính: lat (number), lng (number), address (string), name (string), vicinity (string), googleAddressId (string) paymentMethod string paymentResult object; có thuộc tính sau: id(string), status(string), update_time(string) 4.2 itemsPrice number, minimum: shippingPrice number, minimum: taxPrice number, minimum: totalPrice number, minimum: user objectId isDelivered bool deliveredAt date Các chức demo - Tạo sharded cluster thiết lập xác thực, tạo tài khoản, phân quyền - Tạo sở liệu, thêm xác thực liệu - Nhập liệu từ file JSON - Thiết kế ứng dụng (truy xuất, thêm, xóa, sửa collection users, products, orders) 4.3 Xuất backup liệu Kết demo Link Demo: https://drive.google.com/file/d/1PM7t07qmx4JeJPenqGWfoaYh6uFThohR/view?usp =sharing 43 Chi tiết collection document ca sở liệu rangerShop sharded cluster: Hình 4.1: Collection products sở liệu rangerShop Hình 4.2: Collection orders users sở liệu rangerShop Sử dụng phương thức rs.status() để xem thông tin sharded cluster shard kết nối sharded cluster 44 Hình 4.3: Sharded Cluster gồm shard replica set có tên định danh shard_repl shard2_repl Hình 4.4: Sharded Cluster chứa cc collection đưc phân tán theo index orders, products, users Dùng tính xác thực liệu (validation) collection bng JSON schema để giúp cấu trúc liệu thống Kiểm tra thơng tin xác thực mơ hình liệu hơng qua tab Validation ca collection MonggoDB Compass 45 Hình 4.5: Quy định xác thc liệu cc collection sở liệu rangerShop 46 Dùng phương thức db.getUSers() để lấy thông tin người dùng phân quyền mongos shard thành phần Hình 4.6: Kiểm tra thông tin người dùng phân quyền mongos shard thành phần 47 Xây dựng backend ứng dụng website rangerShop kết nối với sở liệu Kết nối backend với shard cluster thông qua URI kèm thơng tin xác thực Hình 4.7: Dùng mongoose.connect() kết ni backend với sở liệu rangerShop kèm thơng tin xác thc Lập trình backend (productRoutes.js) lấy thơng tin sản phẩm từ MongoDB cho kết giống chạy lệnh truy vấn MongoShell Frontend lấy liệu đ hiển thị thơng tin lên website Hình 4.8: Thiết kế phương thức GET productRouter ly toàn thông tin sn phẩm sở liệu 48 Hình 4.9: Kết qu phn hồi backend yêu cầu đưa tt thông tin sn phẩm sở liệu, so sánh với kết qu truy vần dùng phương thức Mongosh Hình 4.10: Hiển thị sn phẩm lên frontend Sử dụng tính Aggregation Operations ca MongoDB: Lập trình backend (file productRoutes.js ) lấy thơng tin tổng quan số lượng tổng tiền từ đơn hàng bng cách dùng Aggregation Operation ca MongoDB 49 Hình 4.11: Thiết kế phương thức GET orderRouter ly thông tin tổng quan liệu collection orders Hình 4.12: S dụng phương thức db.collections.aggregate() để xut thơng tin s lưng đơn hàng tổng giá trị tính đưc collection orders Hình 4.13: Hiển thị thơng s lên giao diện website admin Sao lưu khôi phục liệu ca sở liệu rangerShop 50 Hình 4.14: Dùng mongodump lưu liệu sở liệu rangerShop Hình 4.15: Cc file lưu sở liệu rangerShop đưc tạo Khôi phục lại sở liệu rangerShop, đặt tên rangerShopBackup Toàn liệu xác thực liệu khơi phục Hình 4.16: Dùng mongorestore khơi phục lại sở liệu rangerShop từ bn lưu 51 Hình 4.17: Kết qu khơi phục lại sở liệu bng mongorestore Xuất liệu ca sở liệu rangerShop file JSON Hình 4.18: File JSON cc collection sở liệu rangerShop 52 CHƯƠNG 5: 5.1 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận 5.1.1 Ưu điểm - Đã nêu thông tin MongoDB - Đề cập tính bản: mơ hình cấu trúc liệu, phương thức - Tìm hiểu số tính nâng cao: Phân quyền xác thực, bảo mật, - Sử dụng tính tm hiểu ứng dụng mơi trường CRUD MongoDB, tính Aggregation Operation Index, Replica Set, Sharded Cluster, lưu khôi phục, nhập xuất liệu localhost 5.1.2 Nhược điểm - Chưa tm hiểu phương thức bảo mật khác x509, TLS/SSL Chưa sâu vào số tính MongoDB change streams, time series, transactions - Demo cần chỉnh sửa tổ chức liệu hoàn thiện giao diện - Chưa sâu vào phương pháp lưu Filesystem Snapshots MongoDB Cloud Manager 5.2 Hướng phát triển - Khc phục nhược điểm đề cập trên - Tiến hành triển khai sharded cluster máy ch khác thay tổ - Nghiên cứu cài đặt index để tối ưu xử lý phân tán liệu cho shard chức local sharded cluster 53 TÀI LIỆU THAM KHẢO [1] MongoDB Manual: https://www.mongodb.com/docs/manual/ [2] Demo: https://drive.google.com/file/d/1PM7t07qmx4JeJPenqGWfoaYh6uFThohR/view?usp =sharing 54