Tải bản đầy đủ (.pptx) (29 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (483.21 KB, 29 trang )

Hệ quản trị cơ sở dữ liệu MongoDB
Thành viên nhóm:
Đặng Thị Khôi
Dương Thị Huế
Trần Trung Hiếu


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


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.


Đặ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


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.


Ư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


Ư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


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




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.

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ụ.

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.


Hệ quản trị MongoDB


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.


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.


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


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 .


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

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


MongoDB

Rich Data Model

No

Yes

Dynamic Schema

No

Yes

Typed Data

Yes

Yes

Data Locallity

No

Yes

Field Update

Yes


Yes

Easy for Programmers

No

Yes

Complex Transactions

Yes

No

Auditing

Yes

Yes

Auto-Sharding

No

Yes


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.



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ự.

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ể.


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.



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).


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.


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.


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.


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 đó.



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ề.


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});


Chỉ mục (Index)

Xóa chỉ mục



Xóa tất cả các chỉ mục trên bộ sưu tập:
db.collection.dropIndexes();



Xóa chỉ mục đơn:
db.collection.dropIndex({x: 1, y: -1})
ReIndex



Lệnh ReIndex sẽ xây dựng lại tất cả các chỉ mục cho bộ sưu tập.
db.myCollection.reIndex ()


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



×