1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu MongoDB

45 1.4K 4

Đ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

Tìm hiểu MongoDB

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN  ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: TÌM HIỂU MONGODB Giảng viên hướng dẫn : Nguyễn Thị Thanh Thủy Sinh viên thực : 2001110117 – TRẦN TRUNG HIẾU 2001110099 – TRƯƠNG QUỐC KỶ TP HỒ CHÍ MINH – 2015 ĐỀ TÀI: TÌM HIỂU MONGODB LỜI CẢM ƠN TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB LỜI MỞ ĐẦU TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB DANH MỤC VIẾT TẮT TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB DANH MỤC HÌNH ẢNH TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB DANH MỤC BẢNG TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU DANH MỤC VIẾT TẮT DANH MỤC HÌNH ẢNH DANH MỤC BẢNG MỤC LỤC CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Nội dung 1.4 Phân công công việc 1.5 Chức phần mềm quản lý công việc: CHƯƠNG TÌM HIỂU CƠ SỞ DỮ LIỆU NOSQL 2.1 Khái niệm NoSQL 2.2 Ưu nhược điểm CSDL NoSql 2.3 So sánh NoSql với CSDL quan hệ 2.4 Phân loại NoSQL CHƯƠNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MONGODB 10 Cơ sở liệu MongoDB 10 1.1 Giới thiệu MongoDB 10 1.2 Cài đặt MongoDB 11 1.2.1 Giới thiệu MongoDB Windows 11 1.2.2 Một số ý cài đặt MongoDB Windows 11 1.2.3 Hướng dẫn tải Windows 12 1.2.4 Hướng dẫn cài đặt Windows 13 1.2.5 Cấu hình MongoDB Windows 17 1.2.6 Bắt đầu làm việc với MongoDB 18 1.2.7 Công cụ RoboMongo làm việc với MongoDB 19 1.3 1.3.1 MongoDB CRUD 19 Giới thiệu MongoDB CRUD 19 TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB 1.3.2 Các khái niệm MongoDB CRUD 20 1.3.3 Hướng dẫn MongoDB CRUD 21 Data Model 26 1.4 1.4.1 Giới thiệu Data Model 26 1.4.2 Các khái niệm Data Model 26 1.4.3 Ví dụ Patterns Data Model 29 1.4.4 Tài liệu tham khảo Data Model Error! Bookmark not defined 1.5 Adminitration 29 1.6 Security 29 1.7 Aggregation 29 1.8 Indexes 29 1.9 Replication 29 1.10 Sharding 30 Một số đặc trung Mongodb 30 Sử dụng số lệnh MongoDB 31 Một số lệnh truy vấn tương đương SQL MongoDB 31 CHƯƠNG XÂY DỰNG ÚNG DỤNG VỚI MONGODB 4.1 Giới thiệu ứng dụng 4.2 Thiết kế tạo CSDL Mongodb 4.3 Xây dựng ứng dụng kết nối Mongodb CHƯƠNG KẾT LUẬN TÀI LIỆU THAM KHẢO D H TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề Cùng với phát triển xã hội nay, đặt biệt bùng nổ công nghệ thông tin vấn đề liệu cần đặc biệt ý Từ xuất Web 2.0 vấn đề xử lý liệu đặc biệt quan tâm đến, đời Web 2.0 đánh dấu phát triển lơn mạnh mặt liệu thông tin từ liệu đó, Web 2.0 tự liệu Nó cho phép API, RSS, … truy xuất liệu từ nhiều nguồn khác mà không cần trực tiếp vào trang web Bên cạnh bùng nổ Web 2.0 phát triển Internet số lượng người dùng tăng lên lớn, người dùng thỏa mái tạo nội dung Web, làm cho liệu trở nên khổng lồ vượt giới hạn xử lý hệ quản trị sở liệu quan hệ truyền thống Để đáp ứng nhu cầu lưu trữ, xữ lý liệu không lồ, cần sở liệu lưu trữ liệu với số lượng lớn truy xuất cách nhanh chóng hiệu 1.2 Mục tiêu đề tài Trong phạm vi đề tài chúng em tìm hiểu khái niệm sở liệu NoSQL gì, biết ưu nhược điểm CSDL NoSql, phân biệt loại CSDL NoSQL so sánh giống khác CSDL NoSql với CSDL quan hệ Tìm hiểu hệ quản trị CSDL Mongodb, biết cách cài đặt hệ sử dụng Mongodb để lưu trữ liệu ( Tạo database, thêm/ xóa/ sữa truy vấn liệu) Biết cách xây dựng ứng dụng sủ dụng Mongodb để làm CSDL cho ứng dụng 1.3 Nội dung Phần 1: Tổng quan  Tìm hiểu tổng quan đề tài  Mục tiêu đề tài  Lên nội dung  Phân công công việc  Viết báo cáo Phần 2: NoSql  NoSql  Ưu nhược điểm NoSql  So sánh NoSql CSDL quan hệ  Phân loại NoSql  Viết báo cáo Phần 3: Tìm hiểu Mongodb TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB  Cài đặt Mongodb  Các lệnh tạo database  Các lệnh thêm, xóa, sửa CSDL  Truy vấn liệu  Khái niệm NoSQL  Bảng, cột  Ưu điểm Phần 3: Kết nối CSDL Mongodb sử dụng C#  Thêm, xóa, sửa CSDL  Truy vấn liệu  Cài đặt IIS  Tạo thư mục để IIS Webservice trỏ vào  Code chức  Thiết kế layout photoshop  Chuẩn bị resource cho app 1.4 Phân công công việc Thành viên nhóm:  Trần Trung Hiếu  Trương Quốc Kỷ Thời gian Nội dung Tổng quan NoSql Mongodb Tính Mongodb TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ Thời gian Chi tiết Tìm hiểu tổng quan đề tài Mục tiêu đề tài Lên nội dung Phân công công việc Viết báo cáo NoSql Ưu nhược điểm NoSql So sánh NoSql CSDL quan hệ Phân loại NoSql Viết báo cáo Tìm hiểu Mongodb Cài đặt Mongodb Các lệnh tạo database Các lệnh thêm, xóa, sửa CSDL Truy vấn liệu Khái niệm NoSQL Bảng, cột Người làm ĐỀ TÀI: TÌM HIỂU MONGODB Dùng lệnh “dropDatabase” để xóa database sau Kiểm tra lại database server lệnh “show dbs” 1.3.3.5 Tạo Collection TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 23 ĐỀ TÀI: TÌM HIỂU MONGODB 1.3.3.6 Thêm liệu 1.3.3.6.1 Thêm liệu có key/value 1.3.3.6.2 Thêm liệu có Document 1.3.3.6.3 Thêm liệu có Collection 1.3.3.7 Sửa liệu 1.3.3.7.1 Sửa liệu có key/value 1.3.3.7.2 Sửa liệu có Document 1.3.3.7.3 Sửa liệu có Collection TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 24 ĐỀ TÀI: TÌM HIỂU MONGODB 1.3.3.8 Xóa liệu 1.3.3.9 Xem liệu Collection Nhom 1.3.3.10 Tìm liệu 1.3.3.11 Xem tất Collection tạo 1.3.3.12 Lấy tất xếp theo _id TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 25 ĐỀ TÀI: TÌM HIỂU MONGODB 1.3.3.13 Tìm kiếm gần 1.3.3.14 df 1.4 Data Model 1.4.1 Giới thiệu Data Model Hệ quản trị sở liệu MongoDB mô hình liệu linh hoạt Không giống sở liệu SQL, phải xác định triển khai sơ đồ bảng trước chèn liệu, Collection MongoDB linh hoạt, không thiết phải cho biết thuộc tính có Collection, cần bổ sung sau Sự linh hoạt tạo điều kiện cho việc hướng tới cách lưu trữ thực thể hay đối tượng Mỗi Document có phù hợp với trường liệu Collection chứa nó, thay đổi gần toàn liệu Tuy nhiên, thực tế, Document Collection chung cấu trúc Khi thiết kế sở liệu cần ý cân nhu cầu ứng dụng (tức có nên tạo nhiều Collection lồng nhau), đặc tính hiệu suất thực truy vấn, mô hình liệu Khi thiết kế mô hình liệu, luôn xem xét việc sử dụng liệu (ví dụ truy vấn, cập nhật, xử lý liệu) cấu trúc vốn có thân liệu 1.4.2 Các khái niệm Data Model 1.4.2.1 Thiết kế Data Model 1.4.2.1.1 Data Model nhúng TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 26 ĐỀ TÀI: TÌM HIỂU MONGODB Với MongoDB, bạn nhúng liệu liên quan vào Structure Document, hay gọi mô hình "denormalized" Đây ví dụ: Mô hình liệu nhúng cho phép ứng dụng lưu trữ phần liệu liên quan thông tin Document sở liệu Sử dụng nhúng mô hình liệu khi: Cơ sở liệu có muối quan hệ thực thể (One-to-One One-to-Many) Nói chung, nhúng cung cấp hiệu suất tốt cho hoạt động đọc, khả yêu cầu lấy liệu có liên quan hoạt động sở liệu 1.4.2.1.2 Chuẩn hóa Data Model Tạo liên kết “id” Document với TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 27 ĐỀ TÀI: TÌM HIỂU MONGODB 1.4.2.2 Operational Factors and Data Models Mô hình hóa liệu ứng dụng cho MongoDB phụ thuộc vào liệu, đặc điểm MongoDB 1.4.2.2.1 Document Growth Một số cập nhật Document tăng kích thước văn Những cập nhật bao gồm đẩy yếu tố để mảng (tức $ push) thêm trường vào tài liệu Khi sử dụng công cụ lưu trữ MMAPv1, Document Growth xem xét cho Data Model bạn Đối với MMAPv1, TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 28 ĐỀ TÀI: TÌM HIỂU MONGODB kích thước liệu vượt không gian chia cho Document đó, MongoDB di dời Document ổ đĩa 1.4.2.2.2 Indexes Sử dụng số để cải thiện hiệu suất cho truy vấn phổ biến Xây dựng số thuộc tính mà xuất thường xuyên truy vấn cho tất yêu cầu trả lại kết xếp MongoDB tự động tạo số thuộc tính _id Khi tạo Indexes cần ý:  Mỗi Indexes yêu cầu tối thiểu 8KB liệu lưu trữ  Thêm Indexes có số tác động tiêu cực cho hoạt động ghi Vì thêm liệu phải cập nhật số  Cần ý đến việc thiết lập kích thước cho thuộc tính Indexes chiếm không gian ổ đĩa ô nhớ 1.4.3 Data Model Examples and Patterns 1.4.3.1 Mô hình qua hệ Document 1.4.3.1.1 Mô hình One-to-One quan hệ với nhúng Document 1.4.3.1.2 Mô hình One-to-Many quan hệ với nhúng Document 1.4.3.1.3 Mô hình One-to-Many quan hệ với tham chiếu Document 1.4.3.2 Mô hình cấu trúc 1.4.3.2.1 Mô hình cấu trúc với tham chiếu Parent 1.4.3.2.2 Mô hình cấu trúc với tham chiếu Child 1.5 Adminitration 1.6 Security 1.7 Aggregation 1.8 Indexes 1.9 Replication Giống hệ quản trị CSDL quan hệ, MongoDB hỗ trợ replication database theo thời gian thực gần với thời gian thực Replication MongoDB đơn giản để cài đặt sử dụng Đó điểm đặc biệt hệ quản trị sở liệu hệ mới, hệ cho tảng web 2.0 công nghệ lưu trữ điện toán đám mây Có nhiều kịch đặt cho việc sử dụng Replication MongoDB hỗ trợ đầy đủ trường hợp Replication mà thực tế đặt Hiện MongoDB hỗ trợ kịch Replication sau: • Single master/single slave replication TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 29 ĐỀ TÀI: TÌM HIỂU MONGODB • Single master/multiple slave replication • Multiple master/single slave replication • Cascade replication • Master/master replication • Interleaved replication • Replica pairs (legacy MongoDB clustering) • Replica sets (advanced MongoDB clustering) Mục đích Replication MongoDB Replication đem lại nhiều lợi ích tùy thuộc loại Replication mà bạn chọn tùy chọn mà chọn Nhưng lợi ích thông thường Replication liệu sẵn sàng lúc nơi cần Khi sử dụng Replication Replication giải pháp ứng dụng cho môi trường phân phối liệu nhiều Server, mà sử dụng chúng khi: o Sao chép phân phối liệu nhiều Server khác o Phân phối liệu theo lịch trình định o Phân phối liệu vừa thay đổi nhiều Server khác o Cho phép nhiều người dùng nhiều Server kết hợp liệukhacs cách thống mà không sợ liệu o Xây dựng CSDL sử dụng cho ứng dụng trực tuyến hay ngoại tuyến o Xây dụng ứng dụng Web người dùng cần trình bày số lượng lớn liệu 1.10 Sharding Một số đặc trung Mongodb Thuộc tính Đặc trưng Lưu trữ hướng văn bản Văn bản theo phong cách JSON với những lươ ̣c đồ đô ̣ng đơn giản Hỗ trơ ̣ chỉ mu ̣c đầ y đủ Chỉ mu ̣c bấ t kỳ các thuô ̣c tiń h Tiń h lă ̣p và tính sẵn sàng cao Auto-sharding Mở rộng Mở rô ̣ng theo chiề u ngang mà không ảnh hưởng đế n chức Truy vấ n Đa da ̣ng, truy vấ n dựa văn bản GridFS Lưu trữ file với bấ t kỳ kích cỡ nào mà không làm phức ta ̣p ngăn xế p TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 30 ĐỀ TÀI: TÌM HIỂU MONGODB Hỗ trơ ̣ thương ma ̣i Hỗ trơ ̣ doanh nghiê ̣p, đào tào, tư vấ nKhái niệm Mongodb Các điểm lưu ý lựa chọn MongoDB: - Nếu ứng dụng có tính chất INSERT cao, mặc định MongoDB có sẵn chế ghi với tốc độ cao an toàn - Ứng dụng dạng thời gian thực nhiều, nghĩa nhiều người thao tác với ứng dung Nếu trình load bị lỗi điểm bỏ qua phần nên an toàn - Ứng dụng bạn có nhiều liệu Ví dụ, giả sử web có đến 10 triệu records ác mộng với MYSQL Bởi MongoDB có khả tìm kiến thông tin liên quan nhanh nên trường hợp nên dùng - Máy chủ hệ quản trị CSDL, trường hợp thường bạn sử dụng SQL LIFE MongoDB Sử dụng số lệnh MongoDB Một số lệnh truy vấn tương đương SQL MongoDB Câu lệnh SQL SERVER Câu lệnh Mongo CREATE TABLE USERS (a Number, b Number) db.createCollection("mycoll") INSERT INTO USERS VALUES(3,5) db.users.insert({a:3,b:5}) SELECT a,b FROM users db.users.find({}, {a:1,b:1}) SELECT * FROM users db.users.find() SELECT * FROM users WHERE age=33 db.users.find({age:33}) SELECT a,b FROM users WHERE age=33 db.users.find({age:33}, {a:1,b:1}) SELECT * FROM users WHERE age=33 ORDER BY name db.users.find({age:33}).sort({name:1}) SELECT * FROM users WHERE age>33 db.users.find({age:{$gt:33}}) SELECT * FROM users WHERE age!=33 db.users.find({age:{$ne:33}}) SELECT * FROM users WHERE name LIKE "%Joe%" db.users.find({name:/Joe/}) SELECT * FROM users WHERE name LIKE "Joe%" db.users.find({name:/^Joe/}) SELECT * FROM users WHERE age>33 AND age 30 SELECT COUNT(AGE) from users db.users.find({age: {'$exists': true}}).count() CREATE INDEX myindexname ON users(name) db.users.ensureIndex({name:1}) CREATE INDEX myindexname ON users(name,ts DESC) db.users.ensureIndex({name:1,ts:-1}) EXPLAIN SELECT * FROM users WHERE z=3 db.users.find({z:3}).explain() UPDATE users SET a=1 WHERE b='q' db.users.update({b:'q'},{$set:{a:1}},false,true) UPDATE users SET a=a+2 WHERE b='q' db.users.update({b:'q'},{$inc:{a:2}},false,true) DELETE FROM users WHERE z="abc" db.users.remove({z:'abc'}); TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ 32 ĐỀ TÀI: TÌM HIỂU MONGODB CHƯƠNG XÂY DỰNG ÚNG DỤNG VỚI MONGODB 4.1 Giới thiệu ứng dụng 4.2 Thiết kế tạo CSDL Mongodb CSDL 4.3 Xây dựng ứng dụng kết nối Mongodb 4.3.1 Chuẩn bị thư viện kết nối với Mongodb Hướng dẫn: http://docs.mongodb.org/ecosystem/drivers/csharp/ Download: https://github.com/mongodb/mongo-csharp-driver Giải nén ta file DLL 4.3.2 Tạo lớp DataService để thao tác với CSDL MogoDB TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB 4.3.2.1 Tạo DataBase Xây dựng lớp DataService gôm có biến MongoDatabase để nhận database kết nối với server 4.3.2.2 Thêm liệu cho Collection Tạo lớp đối tượng tương ứng với Collection Dùng đối tượng BsonDocument để thêm vào MongoCollection Thử liệu vào tầng giao diện TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB Vào CMD gõ lênh “db.LoaiQuyen.find()” để xem liệu CMD 4.3.2.3 Lấy liệu từ Collection Lấy tất liệu Collection: Lấy liệu Collection LoaiQuyen 4.3.2.4 Xóa Collection Lấy collection từ database theo tên collection sau gọi hàm drop MongoCollection TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB Kiểm tra lại liệu CMD trước sau gọi hàm CHƯƠNG KẾT LUẬN TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ ĐỀ TÀI: TÌM HIỂU MONGODB TÀI LIỆU THAM KHẢO [1] Ebook NoSQL – Nhữ Đình Thuận [2] Eelco Plugge, Peter Membrey and Tim Hawkins, The Definitive Guide to MongoDB The NoSQL Database for Cloud and Desktop Computing [3] NoSQL resources - http://nosql-database.org/ [4] NoSQL in the Enterprise - http://www.infoq.com/articles/nosql-in-the-enterprise [5] NoSQL wiki - http://en.wikipedia.org/wiki/NoSQL [6] Kristina Chodorow - Michael Dirolf, MongoDB: The Definitive Guide, O’reilly, 2010 [7] http://www.mongodb.org TRẦN TRUNG HIẾU – TRƯƠNG QUỐC KỶ

Ngày đăng: 24/08/2016, 21:21

Xem thêm: Tìm hiểu MongoDB

TỪ KHÓA LIÊN QUAN

w