(TIỂU LUẬN) TIỂU LUẬN kết THÚC học PHẦN đề tài tìm HIỂU về hệ QUẢN TRỊ cơ sở dữ LIỆU MONGODB

52 84 0
(TIỂU LUẬN) TIỂU LUẬN kết THÚC học PHẦN đề tài tìm HIỂU về hệ QUẢN TRỊ cơ sở dữ LIỆU MONGODB

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.HỒ CHÍ MINH KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ  - - TIỂU LUẬN KẾT THÚC HỌC PHẦN Đề tài: TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB Môn: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Họ tên: MSSV: LỚP: ITS322_202_D02 Giảng viên hướng dẫn: ThS Trịnh Hoàng Nam Thành phố Hồ Chí Minh, ngày 12 tháng 07 năm 2021 NHẬN XÉT CỦA GIẢNG VIÊN ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… ………………………………………………………………………………………… LỜI MỞ ĐẦU Từ nửa cuối kỷ 20 nay, thuật ngữ “bùng nổ thông tin” trở nên quen thuộc dường trở thành tên thời kỳ Với phát triển khoa học công nghệ, đặc biệt trang mạng xã hội, giây người đón nhận hàng triệu thơng tin khác mà người ta phải đề cập đến tượng “bội thực thông tin” Với khối lượng liệu ngày lớn thế, hệ thống quản trị sở liệu quan hệ trước nhiều thời gian để hiển thị trang web hay trả lời yêu cầu API Nhất ứng dụng xử lý thông tin ngày phức tạp Lúc này, sở liệu SQL gây nhiều hạn chế, cụ thể lược đồ /schema thiếu linh hoạt khiến chúng trở nên khơng cịn phù hợp Để đáp ứng với nhu cầu xử lý lượng lớn thông tin, công nghệ dần xuất công nghệ lưu trữ đám mây, sử dụng phương pháp đẩy nhanh tốc độ , rút ngắn chu trình, Và với đó, sở liệu NoSQL đời với linh hoạt truy vấn, lưu trữ , thao tác lượng lớn thông tin, tốc độ vận hành công suất cao, trở lựa chọn tuyệt vời cho nhà phát triển phần mềm Ngày nay, NoSQL ứng dụng ngày phổ biến Để hỗ trợ người dùng dễ dàng sử dụng loại sở liệu này, hàng loạt hệ quản trị sở liệu đời bật số hệ quản trị sở liệu MongoDB Theo khảo sát cho thấy có khoảng 33000 cơng ty sử dụng MongoDB toàn giới, sử dụng nhiều nước phát triển công nghệ Mỹ(48%), Anh (7%) Ấn Độ (7%) Với tính bật mình, MongoDB có tiềm để phát triển mạnh mẽ tương lai, mà liệu sinh ngày nhiều Do đó, tiểu luận này, em tìm hiểu hệ quản trị sở liệu MongoDB với phần sau: - Chương 1: Tổng quan hệ quản trị sở liệu MongoDB Chương 2: Quản trị vận hành với hệ quản trị sở liệu MongoDB Chương 3: Quản trị thành phần với hệ quản trị sở liệu MongoDB Chương 4: Quản trị người dùng với hệ quản trị sở liệu MongoDB MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB I Một số khái niệm 1 Cơ sở liệu (Database) .1 Hệ quản trị sở liệu (Database Management System) Cơ sở liệu quan hệ (Database Relationship) .2 II Giới thiệu Tìm hiểu NoSQL 2 Tìm hiểu cơng ty MongoDB Inc .7 Tìm hiểu hệ quản trị sở liệu MongoDB Một số khái niệm MongoDB 11 III Lựa chọn phiên cài đặt 13 IV Cài đặt cấu hình 14 V Các thành phần MongoDB 19 CHƯƠNG 2: QUẢN TRỊ VẬN HÀNH VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB 20 I Tạo cấu hình sở liệu 20 Tạo sở liệu 20 Xóa database 21 II Sao lưu liệu 21 III Phục hồi liệu 23 CHƯƠNG 3: QUẢN TRỊ THÀNH PHẦN VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB 23 I Bộ sưu tập (Collection) 23 Tạo Collection 23 Một số kiểu liệu MongoDB 26 Các thao tác CRUD 27 Một số toán tử so sánh 28 II Khung nhìn 28 Tạo khung nhìn 28 Các hạn chế khung nhìn 29 Các thao tác hỗ trợ khung nhìn: 29 III Chỉ mục 29 IV Hàm thủ tục (Stored Procedure -SP) 31 V Ràng buộc 33 VI Bẫy lỗi (Trigger) 34 CHƯƠNG 4: QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB 34 I Quyền vai trò (role) MongoDB 34 Các quyền vai trị tích hợp có sẵn hệ thống 34 Tạo quyền vai trò tùy chỉnh (Role) 37 II Quyền đăng nhập hệ thống 38 III Quyền truy xuất liệu 40 DANH MỤC HÌNH ẢNH Hình Cơ sở liệu SQL NoSQL Hình Cơ sở liệu hệ quản trị sở liệu .1 Hình Cơ sở liệu quan hệ .2 Hình Sự khác NoSQL SQL ứng dụng cấu trúc lưu trữ Nguồn : news.bnn.vn Hình Mơ hình lưu trữ CSDL NoSQL nhóm Key-Value Nguồn: dotnet.edu.vn Hình Một record lưu trữ sở liệu "Collumn Family" .6 Hình Document Database định dạng JSON XML Nguồn: dotnet.edu.vn .6 Hình Mơ hình Cơ sở liệu đồ thị Nguồn: dotnet.edu.vn Hình Trụ sở MongoDB Inc Nguồn: usacontactdetails.com Hình 10 Logo hệ quản trị CSDL MongoDB Hình 11 Minh họa số thuật ngữ MongoDB 12 Hình 12 Ví dụ cấu trúc Document MongoDB 12 Hình 13 So sánh cấu trúc tổ chức lưu trữ SQL MongoDB .13 Hình 14 Giao diện trang chủ MongoDB 15 Hình 15 kiến trúc MongoDB [2] 19 Hình 16 Các kiểu liệu MongoDB 27 DANH MỤC BẢNG BIỂU Bảng Các tính MongoDB Nguồn: MongoDB Documentation Bảng Lịch sử phát hành MongoDB Nguồn : MongoDB Documentation 14 Bảng Các lựa chọn tạo backup MongoDB 23 Bảng tùy chọn backup 23 Bảng Các tùy chọn cấu hình cho Collection Nguồn: MongoDB Documentation 24 Bảng Các thao tác CRUD MongoDB 27 Bảng Các toán tử so sánh MongoDB Nguồn:viblo.asia 28 Bảng Các thao tác view 29 Bảng Danh sách tùy chọn để tạo mục 30 Bảng 10 Nhóm Database User Roles 35 Bảng 11 Nhóm Database Adminnistration Roles 35 Bảng 12 Nhóm All Database Roles 36 DANH SÁCH TỪ VIẾT TẮT CSDL RDBMS NoSQL CRUD GUI SQL NoSQL CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB I Một số khái niệm Cơ sở liệu (Database) Cơ sở liệu ( Database) thuật ngữ sử dụng thường xuyên lĩnh vực công nghệ thông tin Theo chuyên gia, CSDL định nghĩa “ tập hợp liệu có tổ chức, thường lưu trữ truy cập điện tử từ hệ thống máy tính.” Hay hiểu CSDL tập hợp liệu có liên quan với mặt luận lý tổ chức xếp Hiện CSDL phân làm loại bao gồm : - SQL: Dữ liệu mơ hình hóa dạng hàng cột bảng, sử dụng ngôn ngữ T-SQL để truy vấn liệu NoSQL: bao gồm loại liệu phi quan hệ mơ hình hóa dạng loại phương tiện khác CSDL gọi NoSQL sử dụng ngơn ngữ truy vấn khác SQL Hình Cơ sở liệu SQL NoSQL Hệ quản trị sở liệu (Database Management System) Hệ quản trị sở liệu (Database Management System - DBMS) phần mềm tương tác với người dùng cuối, ứng dụng CSDL để thu thập phân tích CSDL Hệ quản trị CSDL CSDL ln có mối quan hệ chặt chẽ với Hình Cơ sở liệu hệ quản trị sở liệu Các hạn chế khung nhìn - Chỉ cho phép đọc: khung nhìn cho phép đọc, thao tác chỉnh sửa - - khung nhìn gặp lỗi Không thể thay đổi tên khung nhìn Chỉ định Collation (đối chiếu) thời điểm khởi tạo Nếu không định, hệ thống tự động định Collation đối chiếu nhị phân đơn giản Nghĩa khung nhìn khơng kế thừa Collation mặc định Collection Khi sử dụng phương thức find(), khung nhìn khơng hỗ trợ phép toán phép chiếu như: $, $elemMatch, $slice, $meta Các thao tác hỗ trợ khung nhìn: Bên cạnh hạn chế nêu trên, MongoDB hỗ trợ thao tác sau khung nhìn, thể bảng sau [1]: Bảng Các thao tác view Lệnh create collMod find distinct count BI Chỉ mục Như đề cập mục thành phần MongoDB, mục (index) giúp việc truy vấn liệu trở nên hiệu Nếu khơng có mục, MongoDB phải quét lượng lớn liệu để chọn document kết nối với lệnh truy vấn Để tạo mục, ta sử dụng phương thức ensureIndex() MongoDB Cú pháp: Trong đó: >db..ensureIndex({field: value}) - Field tên trường cần tạo mục Value có giá trị để tạo mục theo thứ tự tăng dần -1 để tạo theo thứ tự giảm dần 29 Phương thức ensureIndex() cho phép truyền nhiều trường khác nhau, trường phân biệt dấu “,” Phương thức cung cấp danh sách tùy chọn liệt kê bảng Bảng Danh sách tùy chọn để tạo mục Tham số background unique name dropDups sparse Tham khảo Hoclaptrinh.vn 30 expireAfterSeconds v weights default_language language_override IV Hàm thủ tục (Stored Procedure -SP) Trong MongoDB khơng có khái niệm tương đương với SP SQL cung cấp tính có chức tương tự Stored Javascript Ta lưu trữ Javascript logic collection đặc biệt sử dụng lại cần thiết Giả sử, ta cần tạo hàm để cộng hai số với hai tham số đầu vào trả tổng chúng Hàm viết javascript sau: function sum ( x , y ) { return x + y ; } MongoDB cung cấp collection đặc biệt sở liệu tên system.js – nơi chứa hàm Javascript tùy chỉnh người dùng Để thêm hàm vào collection ta thực sau: Cú pháp : >db.system.js.save() Áp dụng: Ở đây, ta chuyển tên hàm vào field _id chuyển thân hàm vào field value để dễ dàng gọi hàm sau Lúc này, hàm lưu trữ collection system.js Giả sử ta có collection chứa document sau: Bây giờ, ta dùng hàm sum vừa tạo bước để kiểm tra xem document thỏa mãn x+y = Ta dùng $where để kiểm tra điều kiện sau: 32 Ta xem lại danh sách hàm lưu trữ Vì hàm lưu trữ system.js collection bình thường nên ta sử dụng phương thức find() để tìm tất hàm lưu trữ: V Ràng buộc Do MongoDB sở liệu NoSQL nên hệ quản trị khơng có ràng buộc khóa ngoại sở liệu SQL Tuy nhiên MongoDB cung cấp giá trị “_id” tự động tạo cho document Giá trị xem primary key Tuy nhiên, ta muốn tạo ràng buộc nhiều Field, ta thực điều cách tạo collection có chức hoạt động Collection proxy Collection gồm liệu tham chiếu đến document gốc hay ObjectId document unique key ta tạo Ví dụ ta có collection “user” sau: Trong collection ta thấy, bên cạnh _id ObjectId địa email thuộc tính Như ta dùng giá trị để làm khóa Khi đó, Collection proxy có liệu sau 33 Trong MongoDB, ta dùng mục (Unique Index) để thực hóa điều này: Một số lưu ý sử dụng unique key: - - VI Ứng dụng sử dụng sở liệu phải có bắt lỗi chèn document collection proxy phải có tính qn collection liên quan Nếu collection proxy yêu cầu phân đoạn ta phải thực phân đoạn Field cần thực thi tính Để áp dụng tính nhiều Field proxy phân đoạn, ta phải có tập hợp proxy cho Field Nếu tạo nhiều unique index proxy khơng thể chia nhỏ collection proxy để sử dụng Bẫy lỗi (Trigger) Trong MongoDB, hệ quản trị sở liệu hỗ trợ trigger Tuy nhiên ta tự tạo thủ tục số thủ thuật Khi ta thao tác liệu MongoDB tất hành động ghi vào nhật ký hoạt động gọi oplog Về bản, Oplog danh sách chạy sửa đổi thực với liệu Các Replica Set lắng nghe thay đổi oplog thực thay đổi cục Do ta tự tạo thủ tục trigger dựa điều cơng cụ có sẵn MongoDB Hiện nay, số sản phẩm khác có liên quan với MongoDB tích hợp thêm thủ tục Trigger MongoDB Realm hay MongoDB Atlas CHƯƠNG 4: QUẢN TRỊ NGƯỜI DÙNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB I Quyền vai trò (role) MongoDB Khi làm việc với sở liệu nào, việc phân quyền, thiết lập tài khoản cho user việc vô cần thiết Nhất ta xây dựng phần mềm, chia sẻ sở liệu nhóm Với MongoDB điều khơng phải ngoại lệ MongoDB cung cấp quyền truy cập user dựa vai trị (roles) user Hệ quản trị cung cấp nhiều role tích hợp để gán cho người dùng Bên cạnh , cho phép tạo người sử dụng tạo role theo nhu cầu Các quyền vai trò tích hợp có sẵn hệ thống Trong MongoDB, role có sẵn chia làm nhóm role : a) Nhóm Database User Roles 34 Các role thuộc nhóm thiết lập riêng cho database định cho phép người dùng thao tác liệu không cho phép tác động đến user khác hệ thống Các role thường phân quyền cho client Nhóm bao gồm hai quyền sau: Bảng 10 Nhóm Database User Roles Role Read readWrite b) Nhóm Database Administration Roles Với nhóm role này, hệ thống cấp số quyền quản trị định database định cho user Bao gồm role sau: Bảng 11 Nhóm Database Administration Roles Role dbAdmin userAdmin dbOwner c) Nhóm All Database Roles Nhóm role dành cho database Admin Nó xem quyền mở rộng nhóm role , thay user có quyền database với nhóm role này, user có quyền tồn database có hệ thống Cụ thể: Bảng 12 Nhóm All Database Roles Roles readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase d) Nhóm Supperuser Roles Nhóm role có role Root Đây quyền cao hệ quản trị sở liệu MongoDB Với quyền người dùng thực thao tác hệ thống cung cấp quyền truy cập ,quản trị sở liệu ,truy cập đến 36 nguồn lực sở liệu Do quyền phân cho người quản trị có quyền cao hệ thống Ngồi nhóm role phân quyền theo cấp database cấp hệ thống trên, MongoDB cịn có nhóm role như: Backup and Restoration Roles, Cluster Administration Roles, Tạo quyền vai trị tùy chỉnh (Role) Bên cạnh role tích hợp sẵn hệ thống, MongoDB cho phép người dùng tự tạo role tùy chỉnh thiết lập đặc quyền riêng phù hợp với mong muốn họ Một yêu cầu đặt ta tạo role ta phải tạo role database cụ thể Vì MongoDB, hệ quản trị sử dụng kết hợp tên database role để đảm bảo role Ngoại trừ role tạo database admin role bao gồm đặc quyền áp dụng cho database kế thừa từ role khác database Nếu role tạo database admin, bao gồm đặc quyền áp dụng cho database này, bao gồm quyền admin, quản lý cluster kế thừa từ role khác tất database hệ thống Để dễ dàng quản lý role tùy chỉnh này, MongoDB lưu trữ thông tin chúng collection đặc biệt tên system.roles thuộc database admin Collection không cho phép truy cập trực tiếp vài mà phải sử dụng lệnh quản lý role để xem chỉnh sửa Khi muốn tạo role mới, ta sử dụng phương thức db.createRole() Giả sử, ta muốn tạo role có tên saler mơ tả sau: - saler cho phép đọc chỉnh sửa liệu database “mydata” saler cho phép đọc collection “Foods” database “shopping” Ta thực tạo role sau: Đầu tiên ta khai báo biến tên role để lưu trữ tên (role) thao tác (privileges), quyền (roles) saler Sau sử dụng cú pháp sau để tạo role: 37 >db.createRole(role); Role tùy chỉnh tạo thành công AI Quyền đăng nhập hệ thống Mặc định mongoDB, sử dụng MongoDB Server mà không cần phải đăng nhập vào hệ thống Tuy nhiên , số trường hợp việc sử dụng user để thao tác MongoDB Server cho kết tốt đảm bảo tính bảo mật sở liệu Ở MongoDB tài khoản đăng nhập user hệ thống, ta gom chung việc khởi tạo tài khoản khởi tạo user làm Trong MongoDB, ta tạo user phương thức createUser() Cú pháp: Để tạo user cấp hệ thống, ta thực tạo user database admin, user truy cập chỉnh sửa database khác quyền user cho phép Ví dụ, ta tạo user cấp hệ thống với username = “ad”, password =”1234” User gán quyền root, tức quyền cao hệ thống: 38 - Trong MongoDB, để đăng nhập user password, ta có cách để đăng nhập: Cách 1: rõ username password Ta sử dụng cú pháp : Ví dụ, ta đăng nhập tài khoản user vừa tạo trên: - Cách 2: Đăng nhập với phương thức db.auth() Với cách này, ta truy cập vào lệnh mongo, sau sử dụng lệnh db.auth() database cần xác thực: Như ta đăng nhập thành công vào hệ thống Sau đăng nhập vào hệ thống user có quyền root, ta tạo user khác cấp hệ thống cấp sở liệu Giả sử đây, ta tạo user có username “person1” có password “123” với quyền đọc /ghi database shopping Ta thực sau: 39 BI Quyền truy xuất liệu Như nói phần trên, quyền truy xuất liệu MongoDB chia làm loại : - Quyền truy xuất cấp hệ thống: bao gồm quyền thuộc nhóm All Database Roles nhóm Supperuser Roles Các quyền cho phép user truy cập đến nhiều database có hệ thống với thao tác quy định - Quyền truy xuất cấp sở liệu: Quyền bao gồm nhóm quyền nhóm Database User Role nhóm Database Administration Roles Các quyền cho phép user gán quyền thao tác truy xuất đến database cụ thể định Ví dụ, với user vừa tạo phần trên, ta có user ad gán quyền câp hệ thống user person1 gán quyền cấp sở liệu Với user ad, gán quyền root quyền cao sở liệu, user tạo tài khoản user Bên cạnh user cịn có quyền truy xuất đến database khác database admin: - Insert liệu vào database number sau: - Xem collection Clothes database shopping 40 Tiếp theo, với user person1 vừa tạo, ta sử dụng tài khoản để đăng nhập vào hệ thống thực số thao tác truy xuất liệu: - Xem liệu có collection Books database shopping: - Xem liệu có database mydata: Ở đây, truy xuất đến database mydata, hệ thống báo lỗi user person1 có quyền đọc/ghi database shopping không cấp quyền vào database mydata 41 TỔNG KẾT MongoDB sở liệu không quan hệ hướng tài liệu mã nguồn mở Với cấu trúc linh hoạt , Hệ quản trị sở liệu đem lại thuận tiện việc truy xuất liệu với tốc độ nhanh Được thiết kế với giao diện thân thiện, dễ sử dụng, cấu trúc câu lệnh rõ ràng , dễ hiểu gần với ngôn ngữ đời thường Tuy xuất không lâu MongoDB thực sử trở thành hệ quản trị sở liệu NoSQL phổ biến nhiều người ưa thích Trong thời đại công nghệ số nay, ngày người phải xử lý khối lượng thông tin khổng lồ MongoDB phát huy tốt tính trợ thủ đắc lực cho doanh nghiệp việc xử lý thơng tin Tuy cịn số hạn chế tương lai, tiềm hệ sở liệu lớn, mạng xã hội thương mại điện tử ngày phát triển TÀI LIỆU THAM KHẢO [1] MongoDBInc., "MongoDB Documentation," [Online] Available: https://docs.mongodb.com/ [2] Gadini, MongoDB And HBase, 2018 [3] ZendVN, “ZendVN học lập trình Online,” [Trực tuyến] Available: https://www.zendvn.com/ [4] T Q K Trần Trung Hiếu, “Đồ án tốt nghiệp, đề tài: Tìm hiểu MongoDB,” Trường đại học Công Nghiệp Thực Phẩm thành phố HCM, Thành phố Hồ Chí Minh, 2015 [5] N Đ Thuận, Ebook NoSQL [6] M D Kristina Chodorow, The Definitive Guide, O'reilly, 2010 ... đó, tiểu luận này, em tìm hiểu hệ quản trị sở liệu MongoDB với phần sau: - Chương 1: Tổng quan hệ quản trị sở liệu MongoDB Chương 2: Quản trị vận hành với hệ quản trị sở liệu MongoDB Chương 3: Quản. .. Chương 3: Quản trị thành phần với hệ quản trị sở liệu MongoDB Chương 4: Quản trị người dùng với hệ quản trị sở liệu MongoDB MỤC LỤC CHƯƠNG 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB I Một... quan hệ chặt chẽ với Hình Cơ sở liệu hệ quản trị sở liệu Cơ sở liệu quan hệ (Database Relationship) Năm 1970, thuật ngữ ? ?cơ sở liệu quan hệ? ?? giới thiệu EF Codd IBM tài liệu nghiên cứu “ A relational

Ngày đăng: 15/12/2022, 15:01

Tài liệu cùng người dùng

Tài liệu liên quan