1. Trang chủ
  2. » Mẫu Slide

Slide về Hệ quản trị Cơ sở dữ liệu Mongo DB

29 1,5K 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 196,85 KB

Nội dung

Nội dung chính: Giới thiệu về NoSQL+ Khái niệm NoSQL+ Đặc điểm của NoSQL+ Các dạng NoSQL+ Ưu, nhược điểm của NoSQL+ Một số hệ quản trị NoSQL phổ biến Giới thiệu về MongoDB+ Khái niệm+ Mục đích và đối tượng+ Mô hình dữ liệu+ Chỉ mục+ Xử lý truy vấn và giao tác đồng thời+ So sánh đánh giá hiệu năng của MongoDB và MySQL

Trang 1

Hệ quản trị cơ sở dữ liệu MongoDB

Thành viên nhóm:

Đặng Thị KhôiDương Thị HuếTrần Trung Hiếu

Trang 2

Nội dung chính

Giới thiệu về NoSQL

 Khái niệm NoSQL

 Đặc điểm của NoSQL

 Các dạng NoSQL

 Ưu, nhược điểm của NoSQL

 Một số hệ quản trị NoSQL phổ biến

Giới thiệu về MongoDB

 Khái niệm

 Mục đích và đối tượng

 Mô hình dữ liệu

 Chỉ mục

 Xử lý truy vấn và giao tác đồng thời

 So sánh đánh giá hiệu năng của MongoDB và MySQL

Trang 3

Khái niệm NoSQL

 NoSQL có nghĩa là Non-Relational (NoRel) - không ràng buộc.

 NoSQL là một thế hệ cơ sở dữ liệu non-relational (không ràng buộc, open source, horizontal scalable (khả năng

mở rộng theo chiều ngang)

 NoSQL lưu trữ, xử lý từ một lượng rất nhỏ cho tới hàng petabytes dữ liệu trong hệ thống có độ chịu tải, lỗi cao với những đòi hỏi về tài nguyên phần cứng thấp

Trang 4

Đặc điểm của NoSQL

 NoSQL lưu trữ dữ liệu của mình theo dạng cặp giá trị “key – value” Sử dụng số lượng lớn các node để lưu trữ thông tin

 Chấp nhận dữ liệu bị trùng lặp do một số node sẽ lưu cùng thông tin giống nhau

 Phi quan hệ – không có ràng buộc nào cho việc nhất quán dữ liệu

 Tính nhất quán không theo thời gian thực

Trang 5

Các dạng NoSQL cơ bản

Key – value data stores: Dữ liệu lưu dưới dạng cặp key – value Giá trị được truy xuất thông qua key

Column-based –Tabular: Cơ sở dữ liệu tổ chức dưới dạng các bảng

Document-based: Dữ liệu được lưu trữ và tổ chức dưới dạng một tập hợp các document.

Graph-based data-stores: áp dụng lý thuyết đồ thị trong khoa học máy tính để lưu trữ và truy xuất dữ liệu, tập trung vào tính rời rạc giữa các phần dữ liệu

Trang 6

Ưu, nhược điểm của NoSQL

Ưu điểm:

 Hiệu suất hoạt động cao

 Khả năng phân trang

 NoSQL là nguồn mở

 Việc mở rộng phạm vi là mềm dẻo

 NoSQL phù hợp với công nghệ đám mây

Trang 7

Ưu, nhược điểm của NoSQL

Nhược điểm:

 Cấu trúc dữ liệu phi quan hệ

 Nguồn mở có thể có nghĩa là sự hỗ trợ không đồng đều cho các doanh nghiệp

 Thiếu sự tinh thông

 Những vấn đề về tính tương thích

Trang 8

Một số hệ quản trị NoSQL phổ biến

MongoDB và Redis: lưu trữ các dữ liệu thống kê ít được đọc, được viết thường xuyên

Hadoop: một CSDL dạng tự do, lưu trữ các dữ liệu lớn như các con số thống kê thời tiết hoặc công việc phân

tích nghiệp vụ

Memcache: lưu trữ các phiên làm việc web, các khóa, và các con số thống kê ngắn hạn.

Cassandra và Riak: làm việc tốt trong các môi trường với các ứng dụng có tính sẵn sàng cao, khi thời gian sống

tối đa là sống còn

Trang 9

Hệ quản trị MongoDB

Trang 10

Khái niệm

MongoDB là một mã nguồn mở và là một tập tài liệu dùng cơ chế NoSQL để truy vấn.

 nó có khả năng tính toán với tốc độ cao chứ không giống như các hệ quản trị CSDL hiện nay

 MongoDB lưu các dữ liệu cấu trúc dưới dạng giống với JSON (JavaScript Object Notation) và gọi tên là BSON.

Trang 11

Một số khái niệm cơ bản

Khóa (key-value) là cặp khóa - giá trị được dùng để lưu trữ dữ liệu trong NoSQL.

Fields đương đương với khái niệm Columns trong cơ sở dữ liệu quan hệ.

Chỉ mục (Index) là một cấu trúc dữ liệu, thu thập thông tin về giá trị của các fields trong document của một collection

 trong máy chủ máy tính

Trang 12

Một số khái niệm cơ bản

Document trong MongoDB có cấu trúc tương tự như kiểu dữ liệu JSON, nghĩa là sẽ có các cặp (key-value) nên

nó có tính năng động rất lớn

Collection trong MongoDB là nhóm các tài liệu (document), nó tương đương với một bảng (table) trong cơ sở

dữ liệu thông thường nên mỗi collection sẽ thuộc về một database duy nhất

Database là một ô chứa dữ liệu ở mức vật lý (physical), mỗi database sẽ có nhiều collection và được thiết lập lưu

trữ ở một nơi

Trang 13

Mục đích và đối tượng

Tại sao sử dụng MongoDB thay thế MySQL

 MongoDB cho phép xây dựng ứng dụng nhanh hơn, xử lý được nhiều loại dữ liệu với dị biệt cao, và quản

lý ứng dụng hiệu quả hơn về quy mô.

 Quy trình phát triển phần mềm trở lên đơn giản do cơ sở dữ liệu hướng văn bản rất phù hợp với lập trình hướng đối tượng hiện đại

 MongoDB cho phép lược đồ cơ sở dữ liệu dễ dàng thích ứng với thay đổi trong các yêu cầu kinh doanh

 MongoDB có thể mở rộng trên nhiều trung tâm dữ liệu phân tán, cung cấp những khả năng mở rộng mới

mà không thể thực hiện được khi sử dụng cơ sở dữ liệu quan hệ như MySQL

Trang 14

Mục đích và đối tượng

So sánh tính năng của MongoDB và MySQL

MySQL MongoDB

Trang 15

Mô hình dữ liệu

Giới thiệu mô hình hóa dữ liệu

 Dữ liệu trong MongoDB có một lược đồ linh hoạt

 collection của MongoDB không bắt buộc cấu trúc tài liệu

 Mỗi tài liệu có thể khớp với các trường dữ liệu của thực thể được đại diện, ngay cả khi dữ liệu có biến thể đáng

kể

 Tuy nhiên, trong thực tế, các tài liệu trong một collection chia sẻ một cấu trúc tương tự

Trang 16

Mô hình dữ liệu

Dữ liệu lưu trữ như các văn bản

 MongoDB lưu trữ dữ liệu như những văn bản dưới dạng biểu diễn nhị phân là BSON (Binary JSON)

 Các văn bản có cấu trúc tương tự nhau thường được nhóm thành một bộ sưu tập

 Các bộ sưu tập tương tự các bảng trong cơ sở dữ liệu quan hệ, văn bản tương tự hàng, và trường tương tự cột

 Một bản ghi trong MongoDB được lưu trữ trong một văn bản, còn trong cơ sở dữ liệu quan hệ lại thường được lưu trên nhiều bảng

Trang 17

Mô hình dữ liệu

Không có phép nối

 Nối các bảng với nhau thành một bảng trong cơ sở dữ liệu quan hệ cho phép truy vấn dữ liệu liên quan với nhau trên nhiều cột,

 các bảng có thể nối được với nhau thể hiện quan hệ giữa dữ liệu

 Có 2 phương thức cho phép biểu diễn quan hệ giữa dữ liệu

• tham chiếu (references) và

• văn bản nhúng (embedded documents)

Trang 18

Mô hình dữ liệu

Tham chiếu – References

 Tham chiếu lưu giữ mối quan hệ giữa dữ liệu bằng collection

Văn bản tham khảo

 Văn bản tham khảo lưu trữ các mối quan hệ giữa dữ liệu

Trang 19

Mô hình dữ liệu

Văn bản nhúng

 Tài liệu được nhúng lưu trữ dữ liệu liên quan trong một cấu trúc tài liệu đơn.

 Văn bản nhúng để nhúng cấu trúc tài liệu trong một lĩnh vực hoặc mảng trong một tài liệu

Trang 20

Chỉ mục (Index)

Chỉ mục đơn:

 Chỉ mục là một cấu trúc dữ liệu, thu thập thông tin về giá trị của các trường trong các văn bản của một bộ sưu tập

 khởi tạo chỉ mục bằng cách gọi hàm createIndex()

Chỉ mục mặc định: Một chỉ mục luôn được tạo ra là _id Chỉ mục này đặc biệt là không thể bị xóa, chỉ mục _id là duy nhất cho các khóa của nó

Các khóa nhúng: có thể đánh chỉ mục trên các khóa bên trong văn bản nhúng.

Trang 21

Chỉ mục (Index)

Chỉ mục hỗn hợp các khóa

 MongoDB còn hỗ trợ đánh chỉ mục hỗn hợp nhiều khóa.

 Sử dụng hàm ensureIndex() để khởi tạo chỉ mục.

db.things.ensureIndex({j:1, name:-1});

 Số đi cùng với khóa là hướng của chỉ mục, 1: tăng dần, -1: giảm dần

 Một chỉ mục hỗn hợp trên nhiều trường, truy vấn trên các tập hợp con đầu của các trường đó

Trang 22

Chỉ mục (Index)

Chỉ mục thưa thớt

 Chỉ mục thưa thớt bao gồm các văn bản có trường được đánh chỉ mục (index) Bất kể văn bản nào bị thiếu trường đánh chỉ mục thưa thớt đều không được lưu vào trong chỉ mục

 Chỉ mục thưa thớt theo định nghĩa là không đầy đủ và hoạt động khác với chỉ mục đầy đủ

 Khi sử dụng chỉ mục thưa thớt để sắp xếp một vài văn bản trong bộ sưu tập sẽ không được trả về.

Trang 23

Chỉ mục (Index)

Chỉ mục duy nhất

 Không có văn bản nào được chèn mà giá trị của khóa được đánh chỉ mục trùng với văn bản mà đã tồn tại.

 Để tạo ra một chỉ mục đảm bảo không có 2 văn bản có cùng giá trị trong trường name và address ta thực hiện bằng hàm sau:

db.things.createIndex ({name:1, address:1},{unique:true});

Khóa bị thiếu: văn bản được lưu vào bộ sưu tập việc đánh chỉ mục duy nhất hay bất kì khóa được đánh chỉ mục nào bị thiếu sẽ được chèn vào với giá trị null

db.things.createIndex ({name:1},{unique:true});

Trang 25

Xử lý truy vấn/giao tác đồng thời

Các loại khóa sử dụng trong MongoDB

 MongoDB sư dụng khóa đa hạt cho phép hệ thống khóa ở mức toàn cục, mức database hoặc mức collection, và cho phép các engine lưu trữ đơn lẻ cài đặt điều khiển xử lý đồng thời dưới mức

 MongoDb sử dụng khóa đọc-đọc ghi cho phép đồng thời phía đọc chia sẻ quyền truy cập cho một tài nguyên, như database hay collection

 Một số chế độ khóa:

• Shared locking mode – S

• Exclusive locking mode – X

• Intent exclusive mode – IX

• Intent shared mode – IS

Trang 26

Xử lý truy vấn/giao tác đồng thời

Cách thức khóa hạt hoạt động trong MongoDB

WiredTiger engine

 WiredTiger sử dụng điều khiển đồng thời lạc quan (optimistic concurrency control).

 WiredTiger chỉ sử dụng intent locks tại mức global, database và collection

MMAPv1 engine

MMAPv1 engine sử dụng khóa tại mức collection

Trang 27

Xử lý truy vấn/giao tác đồng thời

Những lệnh phát sinh khóa database

Operation Lock Type

Issue a query Read lock

Get more data from a cursor Read lock

Insert data Write lock

Remove data Write lock

Update data Write lock

Map-reduce Read lock and write lock, unless operations are specified as non-atomic Portions of map-reduce jobs

can run concurrently.

Create an index Building an index in the foreground, which is the default, locks the database for extended periods of

time.

Trang 28

Xử lý truy vấn/giao tác đồng thời

Giao tác

 MongoDB không hỗ trợ giao tác đa văn bản (multi-document transactions)

 Tuy nhiên, MongoDB cung cấp các atomic operations trên một văn bản đơn lẻ

 Các atomic operations mức văn bản là đủ để giải quyết vấn đề mà yêu cầu giao tác ACID trong cơ sở dữ liệu quan hệ

Trang 29

So sánh đánh giá hiệu năng của MongoDB và MySQL

Ngày đăng: 17/05/2017, 02:24

TỪ KHÓA LIÊN QUAN

w