SlideShare a Scribd company logo
1 of 26
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÀI TẬP MÔN HỌC
IT4852 – TKQT CSDL – 2016-2017
Giảng viên hướng dẫn : TS. Vũ Tuyết Trinh
Sinh viên thực hiện : Nguyễn Văn Thiệu – 20133750
Lớp : KSTN-CNTT-K58
HÀ NỘI 2016
TKQT CSDL : Chuyên đề NoSql Database
Mục lục
IT4852 – TKQT CSDL – 2016-2017 ..........................................................1
NoSql Database.............................................................................................3
1. Thời đại của SQL......................................................................................................................3
2. Một số thuật ngữ liên quan..........................................................................................................5
3. NoSQL........................................................................................................................................6
4. So sánh NoSql và Sql....................................................................................................................8
5. Tại sao lại có nhiều NoSql Database?..........................................................................................10
6. Lợi ích của việc dùngNoSQL.......................................................................................................11
7. Nhược điểm của NoSQL.............................................................................................................12
8. Giới thiệu về một vài NoSql Database.........................................................................................14
1. Key – value............................................................................................................................14
2. Document.............................................................................................................................17
3. Column Family.......................................................................................................................19
4. Graph Database.....................................................................................................................22
9. Tổng kết...................................................................................................................................26
10. Tài liệuvà link tham khảo.........................................................................................................26
NoSql Database
1. Thời đại của SQL
- Nhắc lại một chút, database (DB) là một cơ sở dữ liệu, gồm các bảng, hàng,
cột.
- Còn MySQL, Microsoft SQL server, MongoDB, .. là hệ quản trị cơ sở dữ
liệu (DBMS).
- SQL không phải là DB, cũng không phải là DBMS. Nó là viết tắt của
Structure Query Language (Ngôn ngữ truy vấn cấu trúc). Ngôn ngữ này truy
vấn trên nền một RDBMS (Hệ quản trị CSDL quan hệ). Đây là thứ chúng ta
đã học trong trong môn “Cơ sở dữ liệu”.
- Trong RDBMS, dữ liệu được lưu vào nhiều bảng. Mỗi bảng sẽ có nhiều cột,
nhiều hàng. Ta sử dụng SQL để truy vấn như sau:
SELECT Name, Age FROMStudents WHERE Score> 8
- RDBMS (MySQL, Microsoft SQL Server, Oracle, …) được sử dụng rất
rộng rãi, trong hầu hết các ứng dụng, vì một số lý do sau:
1. Tính ACID (Atomicity, Consistency, Isolation, Durability) của một
transaction được đảm bảo.
2. Với database chuẩn 3, dữ liệu được đảm bảo tính đồng nhất và toàn vẹn
(consistency).
3. Có rất nhiều driver cho mọi ngôn ngữ: Java, C#, PHP.
4. Số lượng lập trình viên biết và dùng SQL rất nhiều
Tuy nhiên, RDBMS vẫn còn một số khuyết điểm:
- Việc mapping giữa các bảng trong database với các object trong codekhá
rắc rối và phức tạp. (Mặc dù 1 số ORM như Entity Framework, Hibernate đã
đơn giản hóa chuyện này).
- Performance sẽ bị chậm khi phải join nhiều bảng để lấy dữ liệu (Đó là lý do
ta sử dụng “giảm chuẩn” để tăng hiệu suất cho RDBMS).
- Việc thay đổicấu trúc dữ liệu (Thêm/xóa bảng hoặc thêm/xóa một field) rất
mệt mỏi, kéo theo vô số thay đổitrên code.
- Không làm việc được với dữ liệu không có cấu trúc (un-structure).
- RDBMS được thiết kế để chạy trên một máy chủ. Khi muốn mở rộng, nó
khó chạy trên nhiều máy (clustering).
Dữ liệu được lưu thành nhiều bảng trong RDBMS, khi query ta phải join lại rất
khó khăn
Do đó để giải quyết được những khuyết điểm của RDBMS, thế hệ database tiếp
theo đã ra đời là NoSqlDatabase.
- Đây là thế hệ database không rằng buộc, phân tán, mã nguồn mở, có khả
năng mở rộng theo chiều ngang, có thể lưu trữ và xử lý từ một lượng rất nhỏ
cho đến hàng petabytes dữ liệu trong hệ thống có độ chịu tải và chịu lỗi cao
với những đòi hỏi về tài nguyên phần cứng thấp.
- Đặc điểm nhận dạng: Có schema-free, hỗ trợ mở rộng dễ dàng, API đơn
giản, eventual consistency (nhất quán cuối) và/hoặc transactions hạn chế trên
các thành phần dữ liệu đơn lẻ, không giới hạn không gian dữ liệu,…
- NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các
mạng dịch vụ dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung
trên web. Do đó, dữ liệu lớn rất nhanh vượt qua giới hạn phần cứng và cần
phải giải quyết bằng bài toán phân tán. Nửa đầu năm 2009, người ta đã manh
nha thuật ngữ NoSQL đánh dấu sự trưởng thành của thế hệ database mới
trong khi những sản phẩm phần mềm có thể đã được phát triển từ trước đó
rất lâu.
2. Một số thuật ngữ liên quan.
- Relational (Rằng buộc)thuật ngữ sử dụng đến các mối quan hệ giữa các bảng
trong cơ sở dữ liệu quan hệ (RDBMs) sử dụng mô hình khóa gồm 2 loại khóa:
khóa chính và khóa phụ (primary key + foreign key) để ràng buộc dữ liệu nhằm thể
hiện tính nhất quán dữ liệu từ các bảng khác nhau.
- Non-relational (Không rằng buộc):là khái niệm không sử dụng các ràng buộc dữ
liệu cho nhất quán dữ liệu ở NoSQL database.
- High Availability (Tính sẵn sàng): Do chấp nhận sự trùng lặp trong lưu trữ nên
nếu một node (commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn
bộ hệ thống
- High Scalability (Khả năng mở rộng): Gần như không có một giới hạn cho dữ
liệu và người dùng trên hệ thống.
- Eventual consistency (Nhất quán cuối): tính nhất quán của dữ liệu không cần phải
đảm bảo ngay tức khắc sau mỗi phép write. Một hệ thống phân tán chấp nhận
những ảnh hưởng theo phương thức lan truyền và sau một khoảng thời gian (không
phải ngay tức khắc), thay đổisẽ đi đến mọi điểm trong hệ thống, tức là cuối cùng
(eventually) dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán.
- Vertical scalable (Khả năng mở rộng chiều dọc):Khi dữ liệu lớn về lượng,
phương pháp tăng cường khả năng lưu trữ và xử lý bằng việc cải tiến phần mềm và
cải thiện phần cứng trên một máy tính đơn lẻ được gọi là khả năng mở rộng chiều
dọc. Ví dụ việc tăng cường CPUs, cải thiện đĩacứng, bộ nhớ trong một máy
tính,… cho DBMs nằm trong phạm trù này. Khả năng mở rộng chiều dọc còncó
một thuật ngữ khác scale up.
- Horizontal scalable (Khả năng mở rộng chiều ngang): Khi dữ liệu lớn về lượng,
phương pháp tăng cường khả năng lưu trữ và xử lý là dùng nhiều máy tính phân
tán. Phân tán dữ liệu được hỗ trợ bởi phần mềm tức cơ sở dữ liệu.
- Distributed Data (Phân tán dữ liệu): mô hình lưu trữ phân tán các file hoặc dữ
liệu ra nhiều máy tính khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát
của phần mềm.
- Deployment Flexibility (Triển khai linh hoạt): việc bổ sung thêm/loại bỏ các
node, hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệp bằng
tay. Hệ thống cũng không đòi hỏi cấu hình phần cứng mạnh, đồng nhất
- Durability (Lưu trữ tốt): dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng
thời cũng được lưu trữ lại đĩa cứng.
3. NoSQL
 Được giới thiệu lần đầu vào năm 1998
- Là một công nghệ cơ sở dữ liệu được thiết kế để hỗ trợ các yêu cầu của các
ứng dụng điện toán đám mây và kiến trúc để vượt qua quy mô, hiệu quả, mô
hình dữ liệu, và các giới hạn phân phối dữ liệu của cơ sở dữ liệu quan hệ
(RDBMS).
- Công nghệ NoSQL ban đầu được tạo ra và được sử dụng bởi các nhà lãnh
đạo trên Internet như Facebook, Google, Amazon, và những người yêu cầu
hệ thống quản lý cơ sở dữ liệu có thể viết và đọc dữ liệu bất cứ nơi nào trên
thế giới, trong khi mở rộng quy mô và cung cấp hiệu suất trên toàn bộ dữ
liệu lớn và hàng triệu người sử dụng
Dữ liệu được lưu dưới dạng object. Mặc dù bị trùng nhưng truy vấn rất nhành và
đơn giản
4. So sánh NoSql và Sql
- Tóm lại, NoSQL database chỉ là một kiểu database có cách lưu trữ, truy
vấn dữ liệu hoàn toàn khác so với RDBMS và SQL.
- NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổilấy hiệu suất
nhanh và khả năng mở rộng (scalability). Chính những ưu điểm trên mà
NoSQL được sử dụng nhiều trong các dự án Big Data, các dự án Real-time,
số lượng dữ liệu nhiều.
- Liệu NoSQL có thay thế được hoàn toàn RDBMS và SQL được không? Câu
trả lời là KHÔNG. Trong tương lai, RDBMS vẫn sẽ giữ được chỗ đứng của
mình. Một ứng dụng không chỉ sử dụng một database duy nhất, và có thể kết
hợp cả SQL lẫn NoSQL.
-
So sánh SQL và NoSQL
Bảng so sánh giữa NoSql và SQL của Microsoft. Link tham khảo bên dưới
- NoSQL và RDBMS được thiết kế để hỗ trợ các yêu cầu ứng dụng khác nhau
và thường thì họ cùng tồn tại trong hầu hết các doanh nghiệp. Những điểm
quyết định quan trọng khi sử dụng gồm:
RDBMS NoSQL
Phát triển các ứng dụng tập trung (ví
dụ ERP)
Phát triển các ứng dụng phi tập trung
(ví dụ web, điện thoại di động và IOT)
Các ứng dụng vừa và nhỏ để có tính
sẵn sàng phục vụ cao.
Tính sẵn sàng liên tục, không có thời
gian chết.
Truy cập vào dữ liệu với tốc độ vừa
phải.
Truy cập vào dữ liệu với tốc độ cao.
(thiết bị, cảm biến, vv)
Dữ liệu đến từ một hoặc vài địa điểm Dữ liệu đến từ nhiều địa điểm
Chủ yếu là dữ liệu có cấu trúc Dữ liệu có cấu trúc, bán cấu trúc, phi
cấu trúc.
Các giao dịch phức tạp, lồng nhau Các giao dịch đơn giản
Mối quan tâm chính là mở rộng việc
đọc , việc đọc dễ dàng
Quan tâm cả việc đọc và ghi phải dễ
dàng.
Duy trì dữ liệu vừa phải với việc có thể
xóa bỏ dễ dàng
Duy trì khối lượng dữ liệu cao, có thể
giữ lại mãi mãi
5. Tại sao lại có nhiều NoSql Database?
- Theo thống kê của trang : http://nosql-database.org/ hiện tại có nhiều hơn 225
loại NoSqlDatabase. Vậy tại sao lại có nhiều đến vậy? Sự khác là do :
- Architecture : Một vài NoSQL databases như MongoDB được kiến trúc theo
mô hình master/slave gần giống như RDBMS’s. Còn NoSqlDatabase khác
(như Cassandra)được thiết kế theo mô hình ‘masterless’, nơi mà tất cả các
nodes trong database cluster là giống nhau. Kiến trúc của NoSQL database
có tác động rất lớn đến việc database hỗ trợ các yêu cầu như thời gian hoạt
động liên tục, dự đoán hiệu suất…
- Data Model: NoSQL databases thường được phân lớp dựa vào data model
mà chúng được hỗ trợ. Một vài hỗ trợ lưu trữ wide-row tabular, trong khi đó
một vài lại hỗ trợ model kiểu document-oriented, key-value hoặc graph.
- Data Distribution Model: Bởi vì chúng khác nhau về architecture, NoSQL
databases khác nhau về việc chúng được hỗ trợ việc đọc, ghi và phân phối
dữ liệu. Một vài nền tảng NoSql như Cassandra hỗ trợ việc ghi và đọc trên
mọi node trong một cluster và có thể nhân rộng / đồng bộ hóa dữ liệu giữa
nhiều trung tâm dữ liệu và các nhà cung cấp điện toán đám mây.
- Development Model: NoSQL databases khác nhau trên API cho nhà phát
triển với vài hỗ trợ ngôn ngữ SQL (Vd như Cassandra’s CQL).
6. Lợi ích của việc dùng NoSQL
Có rất nhiều lợi íchkhi dùng NoSqlDatabase, vd như:
- Nó là nguồn mở: Các sản phẩm nguồn mở đưa ra cho những người phát triển với
một vài lợi ích lớn lao, trong đó có tình trạng không có chi phí của chúng. Những
lợi íchkhác: phần mềm nguồn mở có xu hướng sẽ là tin cậy hơn, an ninh hơn và
nhanh hơn để triển khai so với các lựa chọn thay thế sở hữu độc quyền.
- Việc mở rộng phạm vi là mềm dẻo: NoSQL thay thế câu thần chú cũ của các nhà
quản trị CSDL về 'mở rộng phạm vi' với một thứ mới: 'mở rộng ra ngoài'. Thay vì
bổ sung thêm các máy chủ lớn hơn để điều khiển nhiều tải dữ liệu hơn, thì CSDL
NoSQL cho phép một công ty phân tán tải qua nhiều máy chủ khi mà tải gia tăng.
- Các CSDL NoSQL khác nhau cho những dự án khác nhau:
 MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu thống
kê ít được đọc mà lại được viết thường xuyên, như một số đếm truy cập web
chẳng hạn.
 Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc lưu trữ các dữ
liệu lớn như các consố thống kê thời tiết hoặc công việc phân tíchnghiệp
vụ.
 Memcache, một CSDL nhất thời chóng tàn, tuyệt vời trong 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.
 Cassandravà Riak (các lưu trữ dư thừa, tự động tạo bó cluster) làm 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.
- NoSQL được các hãng lớn sử dụng: Các côngty như Amazon, BBC, Facebook
và Google dựa vào các CSDL NoSQL.
- NoSQL phù hợp với công nghệ đám mây: Các máy chủ ngày nay là không đắt và
có thể dễ dàng mở rộng phạm vi được theo yêu cầu có sử dụng một dịch vụ như là
Amazon EC2. Giống như tất cả công nghệ đám mây, EC2 dựa vào ảo hóa. Liên kết
yếu của ảo hóa là sự thực thi của I/O, với bộ nhớ và CPU các các kết nối mạnh.
Các CSDL NoSQL hầu hết sử dụng bộ nhớ qua đĩa như là vị trí ghi đầu tiên - vì
thế ngăn ngừa được sự thực thi không ổn định của I/O. Và vì NoSQLlưu trữ dữ
liệu thường thúc đẩy được tính mở rộng phạm vi theo chiều ngang thông qua việc
ngăn chia, chúng có khả năng tận dụng được việc cung cấp mềm dẻo của đám mây.
7. Nhược điểm của NoSQL
- Nguồn mở có thể có nghĩa là sự hỗ trợ không đồng đều cho các doanh nghiệp:
Trong khi các nhà cung cấp chủ chốt của RMBMS như Oracle, IBM hay
Sybase đưa ra sự hỗ trợ tốt nhổi tiếng cho các khách hàng doanh nghiệp cỡ vừa, thì
các doanh nghiệp nhỏ hơn, thường là các nhà cung cấp nguồn mở mới thành lập
không thể được mong đợi cung cấp được sự hỗ trợ có thể so sánh được - ngoại trừ
một nhúm các khách hàng blue chip.
Nhà cung cấp nguồn mở trung bình thiếu sự tiếp cận toàn cầu, các dịch vụ
hỗ trợ và sự tin cậy của một Oracle hay IBM.
- Chưa đủ chín cho các doanh nghiệp : Dù những triển khai của chúng tại một số
công ty lớn, thì các CSDL NoSQL vẫn đốimặt với một vấn đề về sự tin cậy chính
với nhiều doanh nghiệp. Điểm sống cònđối với sự thiếu của NoSQLvề độ chín
muồi và các vấn đề về tính không ổn định có thể, trong khi trích ra tính chín muồi,
giàu chức năng và ổn định của các RDBMS được thiết lập đã từ lâu.
- Những hạn chế về tri thức nghiệp vụ :
Có một vài câu hỏi xung quanh những khả năng về tri thức nghiệp vụ (BI)
của các CSDL NoSQL. Liệu các CSDL này có thể cung cấp dạng phân tíchdữ liệu
lớn và mạnh mà các doanh nghiệp đã quen với các RDBMS? Cần bao nhiêu sự tinh
thông về lập trình cần có để tiến hành những truy vấn và phân tíchhiện đại?
Các câu trả lời là không tích cực. Các CSDL NoSQL không có nhiều sự đeo
bám tới các công cụ BI thường được sử dụng, trong khi những yêu cầu và phân
tích hiện đại đơn giản nhất có liên quan khác nhiều tới sự tinh thông về lập trình.
Tuy vậy, các giải pháp là sẵn sàng. Quest Software, ví dụ, đã tạo ra Toad cho các
CSDL đám mây, mà nó phân phốicác khả năng truy vấn hiện đại tới một số CSDL
NoSQL.
- Thiếu sự tinh thông:
Tính rất mới mẻ của NoSQLcó nghĩa là không có nhiều lập trình viên và
người quản trị mà biết công nghệ này - là cho khó khăn cho các công ty tìm người
với sự tinh thông phù hợp. Đốilại, thế giới của RDBMS có hàng ngàn những
người đủ tư cách.
- Những vấn đề về tính tương thích:
Không giống như các CSDL quan hệ, các CSDL NoSQL chia sẻ ít theo cách
thức của các tiêu chuẩn. Mỗi CSDL NoSQLcó các giao diện lập trình ứng dụng
API riêng của mình, các giao diện truy vấn độc nhất vô nhị, và những sự riêng biệt.
Sự thiếu hụt các tiêu chuẩn có nghĩa là nó không có khả năng để chuyển một cách
đơn giản từ một nhà cung cấp này sang một nhà cung cấp khác, nếu bạn trở nên
không hạnh phúc với dịch vụ.
8. Giới thiệu về một vài NoSql Database
1. Key – value
- Key-value stores là kiểu lưu trữ đơn giản nhất trong các loại CSDL NoSQL đồng
thời nó cũng là kiểu lưu trữ cho tất cả các HQT CSDL NoSQL. Thông thường, các
HQT CSDL Key-value lưu trữ dữ liệu dưới dạng key (là một chuỗi duy nhất) liên
kết với value có thể ở dạng chuỗi văn bản đơn giản hoặc các tập, danh sách dữ liệu
phức tạp hơn. Quá trình tìm kiếm dữ liệu thường sẽ được thực hiện thông qua key,
điều này dẫn đến sự hạn chế về độ chính xác.
Key – value store
- Các API được cung cấp cho việc truy vấn dữ liệu của các CSDL NoSQL thường
cũng rất đơn giản. Về cơ bản, hầu hết các các CSDL NoSQL sẽ có các API sau:
void Put(string key, byte[] data); byte[] Get(string key); void Remove(string key);
- Tuy nhiên, việc triển khai thực tế của các CSDL Key-value thường rất phức tạp do
cấu trúc lưu trữ quá đơn giản. Ví dụ, để lưu trữ thông tin của một người:
“1234” => “Thanh Huy,zxthanhhuy@gmail.com”
“1235” => “Trọng Nghĩa,letrongnghia@gmail.com,TP. HCM”
“1236” => “Thanh Nghị”
“1237” => “Trường Giang,Bình Thuận”
- Với kiểu lưu trữ này, ta sẽrất dễ dàng và nhanh chóng truy xuất được thông tin của
một người thông qua key, nhưng không hề đơn trong việc xử lý những dữ liệu phức
tạp. Dễ thấy rằng ý tưởng của các HQT CSDL dạng Key-value là đơn giản hóa việc
lưu trữ dữ liệu, nghĩa là không cần quan tâm đến nội dung cần lưu trữ là gì.
- Nói cách khác, chúng lưu trữ thông tin mà không cần phải xác định lược đồ. Việc
để biết được dữ liệu thực tế như thế nào sẽ được định nghĩa (mang tính tham khảo)
ở phía client. Điều này làm cho phương pháp lưu trữ dữ liệu với Key-value trở nên
đơn giản hơn rất nhiều trong việc xây dựng cũng như khả năng mở rộng là cực kỳ
linh động và hiệu suất cho các thao tác truy vấn dữ liệu cũng cực nhanh.
- Như vậy, với sự đơn giản của cáchlưu trữ dạng Key – value làm cho các CSDL
loại này rất phù hợp với các ứng dụng cần truy xuất nhanh và khả năng mở rộng
cao, chẳng hạn như là các quản lý các phiên giao dịch (session) hoặc quản lý các
thông tin về giỏ hàng vì trong trường hợp này, việc biết được ID của phiên giao
dịch hoặc ID của khách hàng là điều rất cần thiết. Hay việc quản lý thông tin của
sản phẩm bao gồm những thông tin cơ bản, các sản phẩm liên quan, đánh giá,… sẽ
được lưu trữ dưới dạng key là mã sản phẩm chẳng hạn và value là các thông tin
còn lại của sản phẩm cần lưu trữ. Điều này, cho phép ta truy xuất được tất cả các
thông tin về một sản phẩm chỉ thông qua mã sản phẩm cực kỳ nhanh.
Vd:
Riak (http://basho.com/products/#riak)
API: tons of languaes, JSON
Protocol:REST
Query Method: MapReduce term matching;
Scaling: Multiple Masters;
Written in: Erlang;
Concurrency: eventually consistent (stronger then MVCC via Vector
Clocks)
Redis (https://redis.io/)
API: Tons of languages;
Written in: C;
Concurrency: in memory and saves asynchronous disk after a defined time.
Append only mode available.
Different kinds of fsync policies.
Replication: Master / Slave,
Misc: also lists, sets, sorted sets, hashes, queues.
2. Document
- CSDL Document được thiết kế để quản lý và lưu trữ dữ liệu ở dạng document.
Những document này được mã hóa về các dạng chuẩn như là XML, JSON
(Javascript Option Notation) hay BSON (Binary JSON). Khác với các kiểu lưu trữ
dạng Key-value, giá trị của cộttrong các CSDL document chứa dữ liệu bán cấu trúc
(Semi-Structured Data), đặc biệt là cặp thuộc tính name (key) – value. Một cột có
thể chứa hàng trăm các thuộc tính như vậy, số lượng, loại thuộc tính được lưu lại có
thể khác nhau giữa các dòng. Một điểm khác nữa so với các kiểu lưu trữ dữliệu dạng
Key-value đơn giản là cả key và value đều có thể tìm kiếm trong CSDL Document.
Vd: Document store
- CSDL Document phù hợp cho việc lưu trữ và quản lý tập dữliệu có kíchthước lớn
như là tài liệu văn bản, tin nhắn, cũng như biểu diễn một thực thể CSDL như là
Product hay Customer (tài liệu khái niệm trong XML).
- Các CSDL tiêu biểu cho CSDL Document: CouchDB (JSON), MongoDB
(BSON),… đều là mà nguồn mở (open source), hướng document (ducument
oriented) và có lược đồ tự do (shema free).
MongoDB
API: BSON.
Protocol:C.
Query Method: dynamic object-based language & MapReduce,
Replication: Master Slave & Auto-Sharding.
Written in: C++.
Concurrency: Update in Place. Misc:Indexing, GridFS,
CouchDB
API: JSON.
Protocol: REST.
Query Method: MapReduceR of JavaScript Funcs.
Replication: Master Master.
Written in: Erlang.
Concurrency: MVCC, Misc:
3. Column Family
- Column Family được biết đến rộng rãi nhất qua sự triển khai BigTable của Google.
Nhìn bề ngoài, chúng khá giống với CSDL quan hệ nhưng thực tế là hoàn toàn khác.
Một số sự khác biệt dễ thấy nhất là việc lưu trữ dữ liệu theo dòng đối với các HQT
CSDL quan hệ với việc lưu trư dữ liệu theo cột của các HQT CSDL Conlumn
Family. Và các tư tưởng của cảhai loại CSDLnày cũng hoàn toàn khác nhau. Chúng
ta không thể áp dụng cùng một giải pháp mà chúng ta đã sử dụng trong CSDL quan
hệ vào CSDLConlumn Family. Bởi vì, CSDLColumn Family là các CSDLphiquan
hệ.
Với các CSDL Column Family, chúng ta cần quan tâm đến các khái niệm sau:
 Column family (họ cột): Một column family là cách thức dữ liệu được lưu trữ
trên đĩa. Tất cả dữliệu trong một cộtsẽ được lưu trên cùng một file. Một column
family có thể chứa super column hoặc column.
 Super column (siêu cột): Một supercolumn có thể được dùng như một dictionary
(kiểu từ điển). Nó là một column có thể chứa những column khác (mà không phải
là super column).
 Column (cột): Một column là một bộ gồm tên, giá trị và dấu thời gian (thông
thường chỉ quan tâm tới key-value).
Column và super column trong column family database dùng thay thế nhau, có
nghĩa là chúng sẽ là 0 byte nếu chúng không có chứa dữ liệu. Không giống như một
bảng, thứ duy nhất chúng ta cần xác định trong column family database tên cột và
các tùy chọn chính (không có lược đồ cố định).
Column Family
- CSDL Column Family được thiết kế để chạy trên một số lượng lớn các máy, và
lưu trữ một lượng dữ liệu cực lớn. Chúng ta không thể lưu trữ một lượng lớn dữ liệu
trong cơ sở dữ liệu quan hệ vì chắc chắn chúng sẽ nhanh chóng bị sụp đổ hoặc là
chết rất nhanh về kích thước của dữ liệu và những truy vấn đó được các CSDL
Column Family xử lý một cáchdễ dàng. Các CSDL Column Family loại bỏ các khái
niệm trừu tượng, những thứ làm cho nó cứng nhắt khi chạy trên một cụm máy.
Hadoop / HBase
API: Java / any writer,
Protocol: any write call,
Query Method: MapReduce Java / any exec,
Replication: HDFS Replication,
Written in: Java,
Cassandra
Massively scalable, partitioned row store, masterless architecture, linear
scale performance, no single points of failure, read/write supportacross
multiple data centers & cloud availability zones.
API / Query Method: CQL and Thrift,
Replication: peer-to-peer,
Written in: Java,
Concurrency: tunable consistency,
Misc: built-in data compression, MapReducesupport, primary/secondary
indexes, security
4. Graph Database
- Cơ sở dữ liệu đồ thị là một cơ sở dữ liệu dạng đồ thị sử dụng các cấu trúc đồ thị
với các nút (nodes), các mối quan hệ (relationships), các thuộc tính (properties)
để mô tả và lưu trữ dữ liệu.
Graph Database
- Chúng ta có thể thực hiện những truy vấn phức tạp hơn như lọc trên các thuộc tính
quan hệ, xem xét trọng số của người đó,… GraphDatabase thường được sử dụng để
giải quyết các vấn đề về mạng. Trong thực tế, hầu hết các trang web mạng xã hội
đều sử dụng một số hình thức của graph database để làm những việc mà chúng ta đã
biết như: kết bạn, bạn của bạn, …Vd bên hình dưới.
Một vấn đề đối với việc mở rộng Graph Database là rất khó để tìm thấy một đồ thị
con độc lập, có nghĩa là rất khó để ta phân tán Graph Database thành nhiều mảnh.
Có rất nhiều nỗ lực nghiên cứu cho việc này nhưng chưa có bất kỳ giải pháp nào
đáng tin cậy được đưa ra.
- Một số sản phẩm tiêu biểu của graph database là: Neo4J, Sones, AllegroGraph,
Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso,…
Neo4J
API: lots of langs.
Protocol: Java embedded / REST.
Query Method: SparQL, nativeJavaAPI, Jruby.
Replication: typical MySQL style master/slave.
Written in: Java.
Concurrency: non-block reads, writes locks involved nodes/relationships
until commit.
Misc: ACID possible
Infinite Graph
API: Java, Protocol: Direct Language Binding.
Query Method: Graph Navigation API, Predicate Language Qualification.
Written in: Java (Core C++).
Data Model: Labeled Directed Multi Graph.
Concurrency: Update locking on subgraphs, concurrent non-blocking ingest,
Misc: Free for Qualified Startups.
9. Tổng kết
- Tuy cùng mang những đặc điểm chung của NoSQL nhưng mỗi CSDL NoSQL
cũng có những đặc điểm riêng, và vì thế thường được dùng cho những dự án khác
nhau. Vd:
 MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu
thống kê ít được đọc mà lại được viết thường xuyên.
 Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc 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ụ.
 Memcachedb, một CSDL nhất thời chóng tàn, tuyệt vời trong lưu trữ
các phiên làm việc web, các khóa, và các consố thống kê ngắn hạn.
 Cassandravà Riak (các lưu trữ dư thừa, tự động tạo bó cluster) làm 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
10. Tài liệu và link tham khảo
NoSqlData models – Vu Tuyet Trinh
https://www.datastax.com/nosql-databases
http://www.datastax.com/relational-database-to-nosql#Compare
https://neo4j.com/developer/graph-db-vs-nosql/
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
https://docs.microsoft.com/en-us/azure/documentdb/documentdb-nosql-vs-sql
https://toidicodedao.com/2015/09/24/nosql-co-gi-hay-ho-tong-quan-ve-nosql-
phan-1/
http://nosql-database.org/
https://www.sitepoint.com/sql-vs-nosql-differences/
https://www.thoughtworks.com/insights/blog/nosql-databases-overview
https://zxthanhhuy.wordpress.com/category/nosql/
http://laptrinh.vn/d/4150-nosql-la-gi.html
http://viblo.framgia.vn/tuanna/posts/mPjxMeEbM4YL

More Related Content

What's hot

Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTHiệu Nguyễn
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1laducqb
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồzDollz Lovez
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHan Nguyen
 
Báo cáo tốt nghiệp
Báo cáo tốt nghiệpBáo cáo tốt nghiệp
Báo cáo tốt nghiệpMy Đá
 
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
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...nataliej4
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệHưởng Nguyễn
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Xây dựng website tìm kiếm phòng trọ trực tuyến
Xây dựng website tìm kiếm phòng trọ trực tuyếnXây dựng website tìm kiếm phòng trọ trực tuyến
Xây dựng website tìm kiếm phòng trọ trực tuyếntrương dũng
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...nataliej4
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueKali Back Tracker
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệutrieulongweb
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGThùy Linh
 
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
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchBIC
 

What's hot (20)

Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1
 
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng HồBáo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
Báo Cáo Đồ Án 2 : Thiết Kế Web Bán Đồng Hồ
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
Báo cáo tốt nghiệp
Báo cáo tốt nghiệpBáo cáo tốt nghiệp
Báo cáo tốt nghiệp
 
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
 
MATMA - Chuong2
MATMA - Chuong2MATMA - Chuong2
MATMA - Chuong2
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
 
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOTĐề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
Đề tài: Xây dựng website giới thiệu sản phẩm phần mềm, HOT
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Xây dựng website tìm kiếm phòng trọ trực tuyến
Xây dựng website tìm kiếm phòng trọ trực tuyếnXây dựng website tìm kiếm phòng trọ trực tuyến
Xây dựng website tìm kiếm phòng trọ trực tuyến
 
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
BÁO CÁO ĐỒ ÁN MÔN HỌC ĐIỆN TOÁN ĐÁM MÂY ĐỀ TÀI: TÌM HIỂU VÀ SỬ DỤNG AMAZON WE...
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thue
 
Bài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệuBài giảng cơ sở dữ liệu
Bài giảng cơ sở dữ liệu
 
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNGPHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÁN HÀNG QUA MẠNG
 
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
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 

Similar to NoSql Database

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
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_serverthai
 
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
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfQuyVo27
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptxDuyThnh28
 
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
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tanThao Vu
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfCriz20
 
MongoDB Introduction
MongoDB IntroductionMongoDB Introduction
MongoDB Introductionthanh can
 
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
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Nguyễn Trọng
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlHuy Feng
 
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
 
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
 
Điện toán đám mây
Điện toán đám mâyĐiện toán đám mây
Điện toán đám mâyviettruong865
 
Cơ sở dữ liệu
Cơ sở dữ liệuCơ sở dữ liệu
Cơ sở dữ liệuThành Luân
 
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdfSlide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdflyvanlinh519
 

Similar to NoSql Database (20)

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
 
00 overview of_sql_server
00 overview of_sql_server00 overview of_sql_server
00 overview of_sql_server
 
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
 
b1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdfb1-gioithieu-190213084421.pdf
b1-gioithieu-190213084421.pdf
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
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
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tan
 
Chuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdfChuong 1_Gioo thieu DB.pdf
Chuong 1_Gioo thieu DB.pdf
 
MongoDB Introduction
MongoDB IntroductionMongoDB Introduction
MongoDB Introduction
 
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
 
Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1Cơ Sở Dữ Liệu - Chương 1
Cơ Sở Dữ Liệu - Chương 1
 
Trongtruong so27a 09
Trongtruong so27a 09Trongtruong so27a 09
Trongtruong so27a 09
 
Chuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdlChuong 1 tong_quan_ve_csdl
Chuong 1 tong_quan_ve_csdl
 
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
 
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]
 
Neo4j
Neo4jNeo4j
Neo4j
 
CSDLPT
CSDLPTCSDLPT
CSDLPT
 
Điện toán đám mây
Điện toán đám mâyĐiện toán đám mây
Điện toán đám mây
 
Cơ sở dữ liệu
Cơ sở dữ liệuCơ sở dữ liệu
Cơ sở dữ liệu
 
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdfSlide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf
Slide 05 - Khai pha du lieu lon voi Spark - Nguyen Van Quyet.pdf
 

Recently uploaded

Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếngTonH1
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx22146042
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Học viện Kstudy
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào môBryan Williams
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếngTonH1
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )lamdapoet123
 

Recently uploaded (20)

Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
50 ĐỀ ĐỀ XUẤT THI VÀO 10 THPT SỞ GIÁO DỤC THANH HÓA MÔN TIẾNG ANH 9 CÓ TỰ LUẬ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Ma trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tếMa trận - định thức và các ứng dụng trong kinh tế
Ma trận - định thức và các ứng dụng trong kinh tế
 
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptxCHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
CHƯƠNG VII LUẬT DÂN SỰ (2) Pháp luật đại cương.pptx
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
Slide Webinar Hướng dẫn sử dụng ChatGPT cho người mới bắt đầ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
[GIẢI PHẪU BỆNH] Tổn thương cơ bản của tb bào mô
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tếHệ phương trình tuyến tính và các ứng dụng trong kinh tế
Hệ phương trình tuyến tính và các ứng dụng trong kinh tế
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
 

NoSql Database

  • 1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÀI TẬP MÔN HỌC IT4852 – TKQT CSDL – 2016-2017 Giảng viên hướng dẫn : TS. Vũ Tuyết Trinh Sinh viên thực hiện : Nguyễn Văn Thiệu – 20133750 Lớp : KSTN-CNTT-K58 HÀ NỘI 2016 TKQT CSDL : Chuyên đề NoSql Database
  • 2. Mục lục IT4852 – TKQT CSDL – 2016-2017 ..........................................................1 NoSql Database.............................................................................................3 1. Thời đại của SQL......................................................................................................................3 2. Một số thuật ngữ liên quan..........................................................................................................5 3. NoSQL........................................................................................................................................6 4. So sánh NoSql và Sql....................................................................................................................8 5. Tại sao lại có nhiều NoSql Database?..........................................................................................10 6. Lợi ích của việc dùngNoSQL.......................................................................................................11 7. Nhược điểm của NoSQL.............................................................................................................12 8. Giới thiệu về một vài NoSql Database.........................................................................................14 1. Key – value............................................................................................................................14 2. Document.............................................................................................................................17 3. Column Family.......................................................................................................................19 4. Graph Database.....................................................................................................................22 9. Tổng kết...................................................................................................................................26 10. Tài liệuvà link tham khảo.........................................................................................................26
  • 3. NoSql Database 1. Thời đại của SQL - Nhắc lại một chút, database (DB) là một cơ sở dữ liệu, gồm các bảng, hàng, cột. - Còn MySQL, Microsoft SQL server, MongoDB, .. là hệ quản trị cơ sở dữ liệu (DBMS). - SQL không phải là DB, cũng không phải là DBMS. Nó là viết tắt của Structure Query Language (Ngôn ngữ truy vấn cấu trúc). Ngôn ngữ này truy vấn trên nền một RDBMS (Hệ quản trị CSDL quan hệ). Đây là thứ chúng ta đã học trong trong môn “Cơ sở dữ liệu”. - Trong RDBMS, dữ liệu được lưu vào nhiều bảng. Mỗi bảng sẽ có nhiều cột, nhiều hàng. Ta sử dụng SQL để truy vấn như sau: SELECT Name, Age FROMStudents WHERE Score> 8 - RDBMS (MySQL, Microsoft SQL Server, Oracle, …) được sử dụng rất rộng rãi, trong hầu hết các ứng dụng, vì một số lý do sau: 1. Tính ACID (Atomicity, Consistency, Isolation, Durability) của một transaction được đảm bảo. 2. Với database chuẩn 3, dữ liệu được đảm bảo tính đồng nhất và toàn vẹn (consistency). 3. Có rất nhiều driver cho mọi ngôn ngữ: Java, C#, PHP. 4. Số lượng lập trình viên biết và dùng SQL rất nhiều Tuy nhiên, RDBMS vẫn còn một số khuyết điểm: - Việc mapping giữa các bảng trong database với các object trong codekhá rắc rối và phức tạp. (Mặc dù 1 số ORM như Entity Framework, Hibernate đã đơn giản hóa chuyện này). - Performance sẽ bị chậm khi phải join nhiều bảng để lấy dữ liệu (Đó là lý do ta sử dụng “giảm chuẩn” để tăng hiệu suất cho RDBMS). - Việc thay đổicấu trúc dữ liệu (Thêm/xóa bảng hoặc thêm/xóa một field) rất mệt mỏi, kéo theo vô số thay đổitrên code. - Không làm việc được với dữ liệu không có cấu trúc (un-structure). - RDBMS được thiết kế để chạy trên một máy chủ. Khi muốn mở rộng, nó khó chạy trên nhiều máy (clustering).
  • 4. Dữ liệu được lưu thành nhiều bảng trong RDBMS, khi query ta phải join lại rất khó khăn Do đó để giải quyết được những khuyết điểm của RDBMS, thế hệ database tiếp theo đã ra đời là NoSqlDatabase. - Đây là thế hệ database không rằng buộc, phân tán, mã nguồn mở, có khả năng mở rộng theo chiều ngang, có thể lưu trữ và xử lý từ một lượng rất nhỏ cho đến hàng petabytes dữ liệu trong hệ thống có độ chịu tải và chịu lỗi cao với những đòi hỏi về tài nguyên phần cứng thấp. - Đặc điểm nhận dạng: Có schema-free, hỗ trợ mở rộng dễ dàng, API đơn giản, eventual consistency (nhất quán cuối) và/hoặc transactions hạn chế trên các thành phần dữ liệu đơn lẻ, không giới hạn không gian dữ liệu,… - NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các mạng dịch vụ dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung trên web. Do đó, dữ liệu lớn rất nhanh vượt qua giới hạn phần cứng và cần phải giải quyết bằng bài toán phân tán. Nửa đầu năm 2009, người ta đã manh nha thuật ngữ NoSQL đánh dấu sự trưởng thành của thế hệ database mới trong khi những sản phẩm phần mềm có thể đã được phát triển từ trước đó rất lâu.
  • 5. 2. Một số thuật ngữ liên quan. - Relational (Rằng buộc)thuật ngữ sử dụng đến các mối quan hệ giữa các bảng trong cơ sở dữ liệu quan hệ (RDBMs) sử dụng mô hình khóa gồm 2 loại khóa: khóa chính và khóa phụ (primary key + foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất quán dữ liệu từ các bảng khác nhau. - Non-relational (Không rằng buộc):là khái niệm không sử dụng các ràng buộc dữ liệu cho nhất quán dữ liệu ở NoSQL database. - High Availability (Tính sẵn sàng): Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node (commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ thống - High Scalability (Khả năng mở rộng): Gần như không có một giới hạn cho dữ liệu và người dùng trên hệ thống. - Eventual consistency (Nhất quán cuối): tính nhất quán của dữ liệu không cần phải đảm bảo ngay tức khắc sau mỗi phép write. Một hệ thống phân tán chấp nhận những ảnh hưởng theo phương thức lan truyền và sau một khoảng thời gian (không phải ngay tức khắc), thay đổisẽ đi đến mọi điểm trong hệ thống, tức là cuối cùng (eventually) dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán. - Vertical scalable (Khả năng mở rộng chiều dọc):Khi dữ liệu lớn về lượng, phương pháp tăng cường khả năng lưu trữ và xử lý bằng việc cải tiến phần mềm và cải thiện phần cứng trên một máy tính đơn lẻ được gọi là khả năng mở rộng chiều dọc. Ví dụ việc tăng cường CPUs, cải thiện đĩacứng, bộ nhớ trong một máy tính,… cho DBMs nằm trong phạm trù này. Khả năng mở rộng chiều dọc còncó một thuật ngữ khác scale up. - Horizontal scalable (Khả năng mở rộng chiều ngang): Khi dữ liệu lớn về lượng, phương pháp tăng cường khả năng lưu trữ và xử lý là dùng nhiều máy tính phân tán. Phân tán dữ liệu được hỗ trợ bởi phần mềm tức cơ sở dữ liệu. - Distributed Data (Phân tán dữ liệu): mô hình lưu trữ phân tán các file hoặc dữ liệu ra nhiều máy tính khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm. - Deployment Flexibility (Triển khai linh hoạt): việc bổ sung thêm/loại bỏ các node, hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệp bằng tay. Hệ thống cũng không đòi hỏi cấu hình phần cứng mạnh, đồng nhất - Durability (Lưu trữ tốt): dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng được lưu trữ lại đĩa cứng.
  • 6. 3. NoSQL  Được giới thiệu lần đầu vào năm 1998 - Là một công nghệ cơ sở dữ liệu được thiết kế để hỗ trợ các yêu cầu của các ứng dụng điện toán đám mây và kiến trúc để vượt qua quy mô, hiệu quả, mô hình dữ liệu, và các giới hạn phân phối dữ liệu của cơ sở dữ liệu quan hệ (RDBMS). - Công nghệ NoSQL ban đầu được tạo ra và được sử dụng bởi các nhà lãnh đạo trên Internet như Facebook, Google, Amazon, và những người yêu cầu hệ thống quản lý cơ sở dữ liệu có thể viết và đọc dữ liệu bất cứ nơi nào trên thế giới, trong khi mở rộng quy mô và cung cấp hiệu suất trên toàn bộ dữ liệu lớn và hàng triệu người sử dụng Dữ liệu được lưu dưới dạng object. Mặc dù bị trùng nhưng truy vấn rất nhành và đơn giản
  • 7.
  • 8. 4. So sánh NoSql và Sql - Tóm lại, NoSQL database chỉ là một kiểu database có cách lưu trữ, truy vấn dữ liệu hoàn toàn khác so với RDBMS và SQL. - NoSQL bỏ qua tính toàn vẹn của dữ liệu và transaction để đổilấy hiệu suất nhanh và khả năng mở rộng (scalability). Chính những ưu điểm trên mà NoSQL được sử dụng nhiều trong các dự án Big Data, các dự án Real-time, số lượng dữ liệu nhiều. - Liệu NoSQL có thay thế được hoàn toàn RDBMS và SQL được không? Câu trả lời là KHÔNG. Trong tương lai, RDBMS vẫn sẽ giữ được chỗ đứng của mình. Một ứng dụng không chỉ sử dụng một database duy nhất, và có thể kết hợp cả SQL lẫn NoSQL. - So sánh SQL và NoSQL
  • 9. Bảng so sánh giữa NoSql và SQL của Microsoft. Link tham khảo bên dưới
  • 10. - NoSQL và RDBMS được thiết kế để hỗ trợ các yêu cầu ứng dụng khác nhau và thường thì họ cùng tồn tại trong hầu hết các doanh nghiệp. Những điểm quyết định quan trọng khi sử dụng gồm: RDBMS NoSQL Phát triển các ứng dụng tập trung (ví dụ ERP) Phát triển các ứng dụng phi tập trung (ví dụ web, điện thoại di động và IOT) Các ứng dụng vừa và nhỏ để có tính sẵn sàng phục vụ cao. Tính sẵn sàng liên tục, không có thời gian chết. Truy cập vào dữ liệu với tốc độ vừa phải. Truy cập vào dữ liệu với tốc độ cao. (thiết bị, cảm biến, vv) Dữ liệu đến từ một hoặc vài địa điểm Dữ liệu đến từ nhiều địa điểm Chủ yếu là dữ liệu có cấu trúc Dữ liệu có cấu trúc, bán cấu trúc, phi cấu trúc. Các giao dịch phức tạp, lồng nhau Các giao dịch đơn giản Mối quan tâm chính là mở rộng việc đọc , việc đọc dễ dàng Quan tâm cả việc đọc và ghi phải dễ dàng. Duy trì dữ liệu vừa phải với việc có thể xóa bỏ dễ dàng Duy trì khối lượng dữ liệu cao, có thể giữ lại mãi mãi 5. Tại sao lại có nhiều NoSql Database? - Theo thống kê của trang : http://nosql-database.org/ hiện tại có nhiều hơn 225 loại NoSqlDatabase. Vậy tại sao lại có nhiều đến vậy? Sự khác là do : - Architecture : Một vài NoSQL databases như MongoDB được kiến trúc theo mô hình master/slave gần giống như RDBMS’s. Còn NoSqlDatabase khác (như Cassandra)được thiết kế theo mô hình ‘masterless’, nơi mà tất cả các nodes trong database cluster là giống nhau. Kiến trúc của NoSQL database có tác động rất lớn đến việc database hỗ trợ các yêu cầu như thời gian hoạt động liên tục, dự đoán hiệu suất… - Data Model: NoSQL databases thường được phân lớp dựa vào data model mà chúng được hỗ trợ. Một vài hỗ trợ lưu trữ wide-row tabular, trong khi đó một vài lại hỗ trợ model kiểu document-oriented, key-value hoặc graph. - Data Distribution Model: Bởi vì chúng khác nhau về architecture, NoSQL databases khác nhau về việc chúng được hỗ trợ việc đọc, ghi và phân phối
  • 11. dữ liệu. Một vài nền tảng NoSql như Cassandra hỗ trợ việc ghi và đọc trên mọi node trong một cluster và có thể nhân rộng / đồng bộ hóa dữ liệu giữa nhiều trung tâm dữ liệu và các nhà cung cấp điện toán đám mây. - Development Model: NoSQL databases khác nhau trên API cho nhà phát triển với vài hỗ trợ ngôn ngữ SQL (Vd như Cassandra’s CQL). 6. Lợi ích của việc dùng NoSQL Có rất nhiều lợi íchkhi dùng NoSqlDatabase, vd như: - Nó là nguồn mở: Các sản phẩm nguồn mở đưa ra cho những người phát triển với một vài lợi ích lớn lao, trong đó có tình trạng không có chi phí của chúng. Những lợi íchkhác: phần mềm nguồn mở có xu hướng sẽ là tin cậy hơn, an ninh hơn và nhanh hơn để triển khai so với các lựa chọn thay thế sở hữu độc quyền. - Việc mở rộng phạm vi là mềm dẻo: NoSQL thay thế câu thần chú cũ của các nhà quản trị CSDL về 'mở rộng phạm vi' với một thứ mới: 'mở rộng ra ngoài'. Thay vì bổ sung thêm các máy chủ lớn hơn để điều khiển nhiều tải dữ liệu hơn, thì CSDL NoSQL cho phép một công ty phân tán tải qua nhiều máy chủ khi mà tải gia tăng. - Các CSDL NoSQL khác nhau cho những dự án khác nhau:  MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu thống kê ít được đọc mà lại được viết thường xuyên, như một số đếm truy cập web chẳng hạn.  Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc lưu trữ các dữ liệu lớn như các consố thống kê thời tiết hoặc công việc phân tíchnghiệp vụ.  Memcache, một CSDL nhất thời chóng tàn, tuyệt vời trong 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.  Cassandravà Riak (các lưu trữ dư thừa, tự động tạo bó cluster) làm 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. - NoSQL được các hãng lớn sử dụng: Các côngty như Amazon, BBC, Facebook và Google dựa vào các CSDL NoSQL. - NoSQL phù hợp với công nghệ đám mây: Các máy chủ ngày nay là không đắt và có thể dễ dàng mở rộng phạm vi được theo yêu cầu có sử dụng một dịch vụ như là Amazon EC2. Giống như tất cả công nghệ đám mây, EC2 dựa vào ảo hóa. Liên kết yếu của ảo hóa là sự thực thi của I/O, với bộ nhớ và CPU các các kết nối mạnh.
  • 12. Các CSDL NoSQL hầu hết sử dụng bộ nhớ qua đĩa như là vị trí ghi đầu tiên - vì thế ngăn ngừa được sự thực thi không ổn định của I/O. Và vì NoSQLlưu trữ dữ liệu thường thúc đẩy được tính mở rộng phạm vi theo chiều ngang thông qua việc ngăn chia, chúng có khả năng tận dụng được việc cung cấp mềm dẻo của đám mây. 7. Nhược điểm của NoSQL - Nguồn mở có thể có nghĩa là sự hỗ trợ không đồng đều cho các doanh nghiệp: Trong khi các nhà cung cấp chủ chốt của RMBMS như Oracle, IBM hay Sybase đưa ra sự hỗ trợ tốt nhổi tiếng cho các khách hàng doanh nghiệp cỡ vừa, thì các doanh nghiệp nhỏ hơn, thường là các nhà cung cấp nguồn mở mới thành lập không thể được mong đợi cung cấp được sự hỗ trợ có thể so sánh được - ngoại trừ một nhúm các khách hàng blue chip. Nhà cung cấp nguồn mở trung bình thiếu sự tiếp cận toàn cầu, các dịch vụ hỗ trợ và sự tin cậy của một Oracle hay IBM. - Chưa đủ chín cho các doanh nghiệp : Dù những triển khai của chúng tại một số công ty lớn, thì các CSDL NoSQL vẫn đốimặt với một vấn đề về sự tin cậy chính với nhiều doanh nghiệp. Điểm sống cònđối với sự thiếu của NoSQLvề độ chín muồi và các vấn đề về tính không ổn định có thể, trong khi trích ra tính chín muồi, giàu chức năng và ổn định của các RDBMS được thiết lập đã từ lâu. - Những hạn chế về tri thức nghiệp vụ : Có một vài câu hỏi xung quanh những khả năng về tri thức nghiệp vụ (BI) của các CSDL NoSQL. Liệu các CSDL này có thể cung cấp dạng phân tíchdữ liệu lớn và mạnh mà các doanh nghiệp đã quen với các RDBMS? Cần bao nhiêu sự tinh thông về lập trình cần có để tiến hành những truy vấn và phân tíchhiện đại? Các câu trả lời là không tích cực. Các CSDL NoSQL không có nhiều sự đeo bám tới các công cụ BI thường được sử dụng, trong khi những yêu cầu và phân tích hiện đại đơn giản nhất có liên quan khác nhiều tới sự tinh thông về lập trình. Tuy vậy, các giải pháp là sẵn sàng. Quest Software, ví dụ, đã tạo ra Toad cho các CSDL đám mây, mà nó phân phốicác khả năng truy vấn hiện đại tới một số CSDL NoSQL. - Thiếu sự tinh thông: Tính rất mới mẻ của NoSQLcó nghĩa là không có nhiều lập trình viên và người quản trị mà biết công nghệ này - là cho khó khăn cho các công ty tìm người
  • 13. với sự tinh thông phù hợp. Đốilại, thế giới của RDBMS có hàng ngàn những người đủ tư cách. - Những vấn đề về tính tương thích: Không giống như các CSDL quan hệ, các CSDL NoSQL chia sẻ ít theo cách thức của các tiêu chuẩn. Mỗi CSDL NoSQLcó các giao diện lập trình ứng dụng API riêng của mình, các giao diện truy vấn độc nhất vô nhị, và những sự riêng biệt. Sự thiếu hụt các tiêu chuẩn có nghĩa là nó không có khả năng để chuyển một cách đơn giản từ một nhà cung cấp này sang một nhà cung cấp khác, nếu bạn trở nên không hạnh phúc với dịch vụ.
  • 14. 8. Giới thiệu về một vài NoSql Database 1. Key – value - Key-value stores là kiểu lưu trữ đơn giản nhất trong các loại CSDL NoSQL đồng thời nó cũng là kiểu lưu trữ cho tất cả các HQT CSDL NoSQL. Thông thường, các HQT CSDL Key-value lưu trữ dữ liệu dưới dạng key (là một chuỗi duy nhất) liên kết với value có thể ở dạng chuỗi văn bản đơn giản hoặc các tập, danh sách dữ liệu phức tạp hơn. Quá trình tìm kiếm dữ liệu thường sẽ được thực hiện thông qua key, điều này dẫn đến sự hạn chế về độ chính xác. Key – value store - Các API được cung cấp cho việc truy vấn dữ liệu của các CSDL NoSQL thường cũng rất đơn giản. Về cơ bản, hầu hết các các CSDL NoSQL sẽ có các API sau: void Put(string key, byte[] data); byte[] Get(string key); void Remove(string key);
  • 15. - Tuy nhiên, việc triển khai thực tế của các CSDL Key-value thường rất phức tạp do cấu trúc lưu trữ quá đơn giản. Ví dụ, để lưu trữ thông tin của một người: “1234” => “Thanh Huy,zxthanhhuy@gmail.com” “1235” => “Trọng Nghĩa,letrongnghia@gmail.com,TP. HCM” “1236” => “Thanh Nghị” “1237” => “Trường Giang,Bình Thuận” - Với kiểu lưu trữ này, ta sẽrất dễ dàng và nhanh chóng truy xuất được thông tin của một người thông qua key, nhưng không hề đơn trong việc xử lý những dữ liệu phức tạp. Dễ thấy rằng ý tưởng của các HQT CSDL dạng Key-value là đơn giản hóa việc lưu trữ dữ liệu, nghĩa là không cần quan tâm đến nội dung cần lưu trữ là gì. - Nói cách khác, chúng lưu trữ thông tin mà không cần phải xác định lược đồ. Việc để biết được dữ liệu thực tế như thế nào sẽ được định nghĩa (mang tính tham khảo) ở phía client. Điều này làm cho phương pháp lưu trữ dữ liệu với Key-value trở nên đơn giản hơn rất nhiều trong việc xây dựng cũng như khả năng mở rộng là cực kỳ linh động và hiệu suất cho các thao tác truy vấn dữ liệu cũng cực nhanh. - Như vậy, với sự đơn giản của cáchlưu trữ dạng Key – value làm cho các CSDL loại này rất phù hợp với các ứng dụng cần truy xuất nhanh và khả năng mở rộng cao, chẳng hạn như là các quản lý các phiên giao dịch (session) hoặc quản lý các thông tin về giỏ hàng vì trong trường hợp này, việc biết được ID của phiên giao dịch hoặc ID của khách hàng là điều rất cần thiết. Hay việc quản lý thông tin của sản phẩm bao gồm những thông tin cơ bản, các sản phẩm liên quan, đánh giá,… sẽ được lưu trữ dưới dạng key là mã sản phẩm chẳng hạn và value là các thông tin
  • 16. còn lại của sản phẩm cần lưu trữ. Điều này, cho phép ta truy xuất được tất cả các thông tin về một sản phẩm chỉ thông qua mã sản phẩm cực kỳ nhanh. Vd: Riak (http://basho.com/products/#riak) API: tons of languaes, JSON Protocol:REST Query Method: MapReduce term matching; Scaling: Multiple Masters; Written in: Erlang; Concurrency: eventually consistent (stronger then MVCC via Vector Clocks) Redis (https://redis.io/) API: Tons of languages; Written in: C; Concurrency: in memory and saves asynchronous disk after a defined time. Append only mode available. Different kinds of fsync policies. Replication: Master / Slave, Misc: also lists, sets, sorted sets, hashes, queues.
  • 17. 2. Document - CSDL Document được thiết kế để quản lý và lưu trữ dữ liệu ở dạng document. Những document này được mã hóa về các dạng chuẩn như là XML, JSON (Javascript Option Notation) hay BSON (Binary JSON). Khác với các kiểu lưu trữ dạng Key-value, giá trị của cộttrong các CSDL document chứa dữ liệu bán cấu trúc (Semi-Structured Data), đặc biệt là cặp thuộc tính name (key) – value. Một cột có thể chứa hàng trăm các thuộc tính như vậy, số lượng, loại thuộc tính được lưu lại có thể khác nhau giữa các dòng. Một điểm khác nữa so với các kiểu lưu trữ dữliệu dạng Key-value đơn giản là cả key và value đều có thể tìm kiếm trong CSDL Document. Vd: Document store
  • 18. - CSDL Document phù hợp cho việc lưu trữ và quản lý tập dữliệu có kíchthước lớn như là tài liệu văn bản, tin nhắn, cũng như biểu diễn một thực thể CSDL như là Product hay Customer (tài liệu khái niệm trong XML). - Các CSDL tiêu biểu cho CSDL Document: CouchDB (JSON), MongoDB (BSON),… đều là mà nguồn mở (open source), hướng document (ducument oriented) và có lược đồ tự do (shema free). MongoDB API: BSON. Protocol:C. Query Method: dynamic object-based language & MapReduce, Replication: Master Slave & Auto-Sharding. Written in: C++. Concurrency: Update in Place. Misc:Indexing, GridFS, CouchDB API: JSON. Protocol: REST. Query Method: MapReduceR of JavaScript Funcs. Replication: Master Master. Written in: Erlang. Concurrency: MVCC, Misc:
  • 19. 3. Column Family - Column Family được biết đến rộng rãi nhất qua sự triển khai BigTable của Google. Nhìn bề ngoài, chúng khá giống với CSDL quan hệ nhưng thực tế là hoàn toàn khác. Một số sự khác biệt dễ thấy nhất là việc lưu trữ dữ liệu theo dòng đối với các HQT CSDL quan hệ với việc lưu trư dữ liệu theo cột của các HQT CSDL Conlumn Family. Và các tư tưởng của cảhai loại CSDLnày cũng hoàn toàn khác nhau. Chúng ta không thể áp dụng cùng một giải pháp mà chúng ta đã sử dụng trong CSDL quan hệ vào CSDLConlumn Family. Bởi vì, CSDLColumn Family là các CSDLphiquan hệ. Với các CSDL Column Family, chúng ta cần quan tâm đến các khái niệm sau:  Column family (họ cột): Một column family là cách thức dữ liệu được lưu trữ trên đĩa. Tất cả dữliệu trong một cộtsẽ được lưu trên cùng một file. Một column family có thể chứa super column hoặc column.  Super column (siêu cột): Một supercolumn có thể được dùng như một dictionary (kiểu từ điển). Nó là một column có thể chứa những column khác (mà không phải là super column).  Column (cột): Một column là một bộ gồm tên, giá trị và dấu thời gian (thông thường chỉ quan tâm tới key-value). Column và super column trong column family database dùng thay thế nhau, có nghĩa là chúng sẽ là 0 byte nếu chúng không có chứa dữ liệu. Không giống như một
  • 20. bảng, thứ duy nhất chúng ta cần xác định trong column family database tên cột và các tùy chọn chính (không có lược đồ cố định). Column Family - CSDL Column Family được thiết kế để chạy trên một số lượng lớn các máy, và lưu trữ một lượng dữ liệu cực lớn. Chúng ta không thể lưu trữ một lượng lớn dữ liệu trong cơ sở dữ liệu quan hệ vì chắc chắn chúng sẽ nhanh chóng bị sụp đổ hoặc là chết rất nhanh về kích thước của dữ liệu và những truy vấn đó được các CSDL
  • 21. Column Family xử lý một cáchdễ dàng. Các CSDL Column Family loại bỏ các khái niệm trừu tượng, những thứ làm cho nó cứng nhắt khi chạy trên một cụm máy. Hadoop / HBase API: Java / any writer, Protocol: any write call, Query Method: MapReduce Java / any exec, Replication: HDFS Replication, Written in: Java, Cassandra Massively scalable, partitioned row store, masterless architecture, linear scale performance, no single points of failure, read/write supportacross multiple data centers & cloud availability zones. API / Query Method: CQL and Thrift, Replication: peer-to-peer, Written in: Java, Concurrency: tunable consistency, Misc: built-in data compression, MapReducesupport, primary/secondary indexes, security
  • 22. 4. Graph Database - Cơ sở dữ liệu đồ thị là một cơ sở dữ liệu dạng đồ thị sử dụng các cấu trúc đồ thị với các nút (nodes), các mối quan hệ (relationships), các thuộc tính (properties) để mô tả và lưu trữ dữ liệu. Graph Database - Chúng ta có thể thực hiện những truy vấn phức tạp hơn như lọc trên các thuộc tính quan hệ, xem xét trọng số của người đó,… GraphDatabase thường được sử dụng để giải quyết các vấn đề về mạng. Trong thực tế, hầu hết các trang web mạng xã hội đều sử dụng một số hình thức của graph database để làm những việc mà chúng ta đã biết như: kết bạn, bạn của bạn, …Vd bên hình dưới.
  • 23. Một vấn đề đối với việc mở rộng Graph Database là rất khó để tìm thấy một đồ thị con độc lập, có nghĩa là rất khó để ta phân tán Graph Database thành nhiều mảnh. Có rất nhiều nỗ lực nghiên cứu cho việc này nhưng chưa có bất kỳ giải pháp nào đáng tin cậy được đưa ra.
  • 24. - Một số sản phẩm tiêu biểu của graph database là: Neo4J, Sones, AllegroGraph, Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso,… Neo4J API: lots of langs. Protocol: Java embedded / REST. Query Method: SparQL, nativeJavaAPI, Jruby. Replication: typical MySQL style master/slave. Written in: Java. Concurrency: non-block reads, writes locks involved nodes/relationships until commit. Misc: ACID possible
  • 25. Infinite Graph API: Java, Protocol: Direct Language Binding. Query Method: Graph Navigation API, Predicate Language Qualification. Written in: Java (Core C++). Data Model: Labeled Directed Multi Graph. Concurrency: Update locking on subgraphs, concurrent non-blocking ingest, Misc: Free for Qualified Startups.
  • 26. 9. Tổng kết - Tuy cùng mang những đặc điểm chung của NoSQL nhưng mỗi CSDL NoSQL cũng có những đặc điểm riêng, và vì thế thường được dùng cho những dự án khác nhau. Vd:  MongoDB và Redis là những lựa chọn tốt cho việc lưu trữ các dữ liệu thống kê ít được đọc mà lại được viết thường xuyên.  Hadoop, một CSDL dạng tự do, phân tán làm tốt công việc 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ụ.  Memcachedb, một CSDL nhất thời chóng tàn, tuyệt vời trong lưu trữ các phiên làm việc web, các khóa, và các consố thống kê ngắn hạn.  Cassandravà Riak (các lưu trữ dư thừa, tự động tạo bó cluster) làm 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 10. Tài liệu và link tham khảo NoSqlData models – Vu Tuyet Trinh https://www.datastax.com/nosql-databases http://www.datastax.com/relational-database-to-nosql#Compare https://neo4j.com/developer/graph-db-vs-nosql/ https://www.thoughtworks.com/insights/blog/nosql-databases-overview https://docs.microsoft.com/en-us/azure/documentdb/documentdb-nosql-vs-sql https://toidicodedao.com/2015/09/24/nosql-co-gi-hay-ho-tong-quan-ve-nosql- phan-1/ http://nosql-database.org/ https://www.sitepoint.com/sql-vs-nosql-differences/ https://www.thoughtworks.com/insights/blog/nosql-databases-overview https://zxthanhhuy.wordpress.com/category/nosql/ http://laptrinh.vn/d/4150-nosql-la-gi.html http://viblo.framgia.vn/tuanna/posts/mPjxMeEbM4YL