SlideShare a Scribd company logo
1 of 9
MongoDB Introduction
Thanh.bntt
( Sưu tầm ) 07/2nd/2015
1. NoSQL
NoSQL là một khái niệm chỉ về một lớp các hệ cơ sở dữ liệu không sử dụng mô
hình quan hệ. (RDBMS).
NoSQL ra đời năm 1998 bởi Carlo Strozzi
Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ
NoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ
liệu nguồn mở phân tán.
Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDL mới:
phân tán (distributed) + không ràng buộc (non-relational).
1.2. Đặc điểm
• 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 – Mô hình phân tán
dưới sự kiểm soát phần mềm
• Chấp nhận dữ liệu bị trùng lặp
• Một truy vấn sẽ được gửi tới nhiều máy cùng lúc
• 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: Sau mỗi thay đổi CSDL, không
cần tác động ngay đến tất cả các CSDL liên quan mà được lan truyền theo
thời gian.
1.3. 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.
Ví dụ : Redis, Dynomite, Project Voldemort.
Thường cho : Content caching Applications
 Column-based – Tabular: Cơ sở dữ liệu tổ chức dưới dạng các bảng. Gần giống với mô hình
RDBMS. Tuy nhiên, Chúng lưu dữ liệu bởi các cột chứ không phải bằng các dòng. Nó khá thích hợp
với để hiển thị bằng các phần mềm quản lý kho dữ liệu
Ví dụ : Apache Hbase, Apache Cassandra, Hypertable
Thường cho : các hệ phân tán file
 Document-based: Dữ liệu (bán cấu trúc hay semi-structured) được lưu trữ và tổ chức dưới dạng một
tập hợp các document. Các document này linh hoạt, mỗi document có một tập nhiều trường.
Ví dụ : Apache CouchDB và MongoDB
Thường cho : Web applications
 Graph-based data-stores: Những CSDL này á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. Chúng tập trung vào tính rời rạc giữa các phần dữ liệu. Các phần tử đơn vị dữ
liệu được biểu thị như một nút và liên kết với các thành phần khác bằng các cạnh.
Ví dụ : Neo4j, InfiniteGraph, DEX
Thường cho : Social networking, Hệ trợ giúp
2. MongoDB
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
Được viết bởi ngôn ngữ C++.
Lưu trữ dữ liệu dưới dạng JSON
Hoạt động trên khái niệm collection và document
2.1 Khái niệm các thành phần lưu trữ
Database là gì?
• 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 trong máy chủ máy tính. Một máy chủ
MongoDB thường có thể tạo nhiều cơ sở dữ liệu.
Collection là gì?
• 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 CSDL thông thường nên mỗi collection sẽ thuộc về một database duy
nhất, không có ràng buộc Relationship
• mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản
trị mysql là các field cố định.
Document là gì?
• 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 => giá trị)
• Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy nhiên nó có
sự khác biệt là các cặp (key => value) có thể không giống nhau ở mỗi document.
2.2 So sánh giữa RDBMS và MongoDB
RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Table Join Embedded Documents
Primary Key Primary Key (mặc định là _id)
2.3 Ví dụ về cách lưu trữ trong MongoDB
{
_id: ObjectId(7df78ad8902c)
title: 'Tìm hiểu mongodb',
description: 'MongoDB sử dụng khái niệm NO-SQL',
comments: [
{
user:'user1',
message: 'First comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'Second comment',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
 key _id là do hệ thống tự tạo ra một field
như vậy làm khóa chính
 Đây là cấu trúc của một mẫu document
trong MongoDB, như vậy khi có thêm
comment thì ta sẽ thêm nó vào phần
comment của tin.
2.4 Khi nào sử dụng MongoDB
Nếu website của bạn có tính chất INSERT cao, bởi vì mặc định MongoDB
có sẵn cơ chế ghi với tốc độ cao và an toàn.
Website của bạn ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác
với ứng dung. Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó sẽ
bỏ qua phần đó nên sẽ an toàn.
Website bạn có nhiều dữ liệu quá, giả sử web bạn có đến 10 triệu records
thì đó là cơn ác mộng với MYSQL. Bởi vì MongoDB có khả năng tìm kiến
thông tin liên quan cũng khá nhanh nên trường hợp này nên dùng nó.
Máy chủ không có hệ quản trị CSDL, trường hợp này thường bạn sẽ sử
dụng SQL LIFE hoặc là MongoDB.

More Related Content

What's hot

Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2NguynMinh294
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTMasterCode.vn
 
Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1vtt167
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 
Python moi
Python moiPython moi
Python moiDÉp LÊ
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdf
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdfBài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdf
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdfNuioKila
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýMasterCode.vn
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2pisu412
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1pisu412
 
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyPhamTuanKhiem
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLDang Tuan
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTonhaco Bestco
 
Phân quyền datachung
Phân quyền datachungPhân quyền datachung
Phân quyền datachunglaonap166
 
Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Ho Quang Thanh
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngHuyen Pham
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongVu Trung Kien
 

What's hot (20)

Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2Cơ sở dữ liệu PTIT slide 2
Cơ sở dữ liệu PTIT slide 2
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Bài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPTBài 5: Thiết kế giao diện - Giáo trình FPT
Bài 5: Thiết kế giao diện - Giáo trình FPT
 
Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1Phân tích thiết kế HTTT chương 1
Phân tích thiết kế HTTT chương 1
 
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPTBài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
Bài 1: Tổng quan về cơ sở dữ liệu - Giáo trình FPT
 
Lý Thuyết SQL
Lý Thuyết SQLLý Thuyết SQL
Lý Thuyết SQL
 
Python moi
Python moiPython moi
Python moi
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdf
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdfBài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdf
Bài Giảng Cơ Sở Dữ Liệu Hướng Đối Tượng (Object-Oriented Data Base).pdf
 
Bài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lýBài 7: Thiết kế cơ sở dữ liệu vật lý
Bài 7: Thiết kế cơ sở dữ liệu vật lý
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 2
 
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
Slide Hệ Quản Trị Cơ sở dữ liệu - CHƯƠNG 1
 
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mâyLưu trữ và xử lý dữ liệu trong điện toán đám mây
Lưu trữ và xử lý dữ liệu trong điện toán đám mây
 
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UMLPHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG DÙNG UML
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệu
 
Phân quyền datachung
Phân quyền datachungPhân quyền datachung
Phân quyền datachung
 
Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server Cấu hình và bảo mật cho Ubuntu Server
Cấu hình và bảo mật cho Ubuntu Server
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Tim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chongTim hieu lo hong web va cach phong chong
Tim hieu lo hong web va cach phong chong
 

Similar to MongoDB Introduction

MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptxDuyThnh28
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptHungHuyNguyen3
 
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]bookbooming1
 
Ldap it-slideshares.blogspot.com
Ldap it-slideshares.blogspot.comLdap it-slideshares.blogspot.com
Ldap it-slideshares.blogspot.comphanleson
 
My sql.storage engine
My sql.storage engineMy sql.storage engine
My sql.storage engineLê Nhân
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlHuy Feng
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfQuyVo27
 
Cơ sở dữ liệu ts.phạm thế quế[bookbooming.com]
Cơ sở dữ liệu   ts.phạm thế quế[bookbooming.com]Cơ sở dữ liệu   ts.phạm thế quế[bookbooming.com]
Cơ sở dữ liệu ts.phạm thế quế[bookbooming.com]bookbooming1
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.commai_non
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serveranhanh81
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfCriz20
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oraclehoangdinhhanh88
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4caolanphuong
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4caolanphuong
 

Similar to MongoDB Introduction (20)

MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
bai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.pptbai giang mon sql- buoi 1.ppt
bai giang mon sql- buoi 1.ppt
 
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]Hệ quản trị cơ sở dữ liệu   phạm gia tiến[bookbooming.com]
Hệ quản trị cơ sở dữ liệu phạm gia tiến[bookbooming.com]
 
Ldap it-slideshares.blogspot.com
Ldap it-slideshares.blogspot.comLdap it-slideshares.blogspot.com
Ldap it-slideshares.blogspot.com
 
My sql.storage engine
My sql.storage engineMy sql.storage engine
My sql.storage engine
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdl
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdf
 
51645016 csdl
51645016 csdl51645016 csdl
51645016 csdl
 
Cơ sở dữ liệu ts.phạm thế quế[bookbooming.com]
Cơ sở dữ liệu   ts.phạm thế quế[bookbooming.com]Cơ sở dữ liệu   ts.phạm thế quế[bookbooming.com]
Cơ sở dữ liệu ts.phạm thế quế[bookbooming.com]
 
CSDL_In ngay
CSDL_In ngayCSDL_In ngay
CSDL_In ngay
 
Csdl
CsdlCsdl
Csdl
 
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.comBài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
Bài giảng môn Cơ sở dữ liệu - truongkinhtethucpham.com
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Com201 slide 1
Com201   slide 1Com201   slide 1
Com201 slide 1
 
Gt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_serverGt he quan_tri_csdl_ms_sql_server
Gt he quan_tri_csdl_ms_sql_server
 
On thi kpdl
On thi kpdlOn thi kpdl
On thi kpdl
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
 
1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle1 giới thiệu-cài đặt oracle
1 giới thiệu-cài đặt oracle
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 
Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4Phan tich thiet_ke_he_thong_quan_ly_part_4
Phan tich thiet_ke_he_thong_quan_ly_part_4
 

MongoDB Introduction

  • 2. 1. NoSQL NoSQL là một khái niệm chỉ về một lớp các hệ cơ sở dữ liệu không sử dụng mô hình quan hệ. (RDBMS). NoSQL ra đời năm 1998 bởi Carlo Strozzi Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ NoSQL khi Johan Oskarsson của Last.fm muốn tổ chức một hội thảo về cơ sở dữ liệu nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ CSDL mới: phân tán (distributed) + không ràng buộc (non-relational).
  • 3. 1.2. Đặc điểm • 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 – Mô hình phân tán dưới sự kiểm soát phần mềm • Chấp nhận dữ liệu bị trùng lặp • Một truy vấn sẽ được gửi tới nhiều máy cùng lúc • 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: Sau mỗi thay đổi CSDL, không cần tác động ngay đến tất cả các CSDL liên quan mà được lan truyền theo thời gian.
  • 4. 1.3. 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. Ví dụ : Redis, Dynomite, Project Voldemort. Thường cho : Content caching Applications  Column-based – Tabular: Cơ sở dữ liệu tổ chức dưới dạng các bảng. Gần giống với mô hình RDBMS. Tuy nhiên, Chúng lưu dữ liệu bởi các cột chứ không phải bằng các dòng. Nó khá thích hợp với để hiển thị bằng các phần mềm quản lý kho dữ liệu Ví dụ : Apache Hbase, Apache Cassandra, Hypertable Thường cho : các hệ phân tán file  Document-based: Dữ liệu (bán cấu trúc hay semi-structured) được lưu trữ và tổ chức dưới dạng một tập hợp các document. Các document này linh hoạt, mỗi document có một tập nhiều trường. Ví dụ : Apache CouchDB và MongoDB Thường cho : Web applications  Graph-based data-stores: Những CSDL này á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. Chúng tập trung vào tính rời rạc giữa các phần dữ liệu. Các phần tử đơn vị dữ liệu được biểu thị như một nút và liên kết với các thành phần khác bằng các cạnh. Ví dụ : Neo4j, InfiniteGraph, DEX Thường cho : Social networking, Hệ trợ giúp
  • 5. 2. MongoDB 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 Được viết bởi ngôn ngữ C++. Lưu trữ dữ liệu dưới dạng JSON Hoạt động trên khái niệm collection và document
  • 6. 2.1 Khái niệm các thành phần lưu trữ Database là gì? • 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 trong máy chủ máy tính. Một máy chủ MongoDB thường có thể tạo nhiều cơ sở dữ liệu. Collection là gì? • 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 CSDL thông thường nên mỗi collection sẽ thuộc về một database duy nhất, không có ràng buộc Relationship • mỗi collection có thể chứa nhiều thể loại khác nhau không giống như table trong hệ quản trị mysql là các field cố định. Document là gì? • 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 => giá trị) • Document ta có thể hiểu nó giống như các record dữ liệu trong MYSQL, tuy nhiên nó có sự khác biệt là các cặp (key => value) có thể không giống nhau ở mỗi document.
  • 7. 2.2 So sánh giữa RDBMS và MongoDB RDBMS MongoDB Database Database Table Collection Tuple/Row Document column Field Table Join Embedded Documents Primary Key Primary Key (mặc định là _id)
  • 8. 2.3 Ví dụ về cách lưu trữ trong MongoDB { _id: ObjectId(7df78ad8902c) title: 'Tìm hiểu mongodb', description: 'MongoDB sử dụng khái niệm NO-SQL', comments: [ { user:'user1', message: 'First comment', dateCreated: new Date(2011,1,20,2,15), like: 0 }, { user:'user2', message: 'Second comment', dateCreated: new Date(2011,1,25,7,45), like: 5 } ] }  key _id là do hệ thống tự tạo ra một field như vậy làm khóa chính  Đây là cấu trúc của một mẫu document trong MongoDB, như vậy khi có thêm comment thì ta sẽ thêm nó vào phần comment của tin.
  • 9. 2.4 Khi nào sử dụng MongoDB Nếu website của bạn có tính chất INSERT cao, bởi vì mặc định MongoDB có sẵn cơ chế ghi với tốc độ cao và an toàn. Website của bạn ở dạng thời gian thực nhiều, nghĩa là nhiều người thao tác với ứng dung. Nếu trong quá trình load bị lỗi tại một điểm nào đó thì nó sẽ bỏ qua phần đó nên sẽ an toàn. Website bạn có nhiều dữ liệu quá, giả sử web bạn có đến 10 triệu records thì đó là cơn ác mộng với MYSQL. Bởi vì MongoDB có khả năng tìm kiến thông tin liên quan cũng khá nhanh nên trường hợp này nên dùng nó. Máy chủ không có hệ quản trị CSDL, trường hợp này thường bạn sẽ sử dụng SQL LIFE hoặc là MongoDB.