Tải bản đầy đủ (.pdf) (10 trang)

Cơ sở dữ liệu phi quan hệ - NoSQL

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

CƠ SỞ DỮ LIỆU PHI QUAN HỆ - NOSQL
Đinh Nguyễn Thúy Nguyệt
Khoa Công nghệ Thông tin, Trường Đại học Tài chính –Marketing
Email:

Tóm tắt: Cơ sở dữ liệu (CSDL) quan hệ truyền thống cấu trúc dữ liệu được xác định trước,
trong khi thế giới đang hướng đến dữ liệu không cấu trúc, khối lượng dữ liệu và sự kiện mà các hệ
thống cần phải xử lý cũng tăng nhanh một cách đáng kể thì CSDL quan hệ trong trường hợp này
gây ra một số cản trở như lược đồ (schema) cứng nhắc, thiếu linh hoạt khiến chúng trở nên ít phù
hợp hơn với một số loại ứng dụng. Cơ sở dữ liệu NoSQL được cơng nhận rộng rãi vì khả năng dễ
phát triển chức năng cũng như hiệu năng ở quy mô lớn. Các cơ sở dữ liệu này sử dụng mơ hình dữ
liệu đa dạng như tài liệu (document), đồ thị (graph), khóa – giá trị (key-value), cột (wide-column).
Từ khoá: cơ sở dữ liệu phi quan hệ, cơ sở dữ liệu NoSQL, NoSQL

1. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU NOSQL
Cơ sở dữ liệu NoSQL hay “Non-Relational” (phi quan hệ) là một thuật ngữ chung
cho các hệ cơ sở dữ liệu khơng sử dụng mơ hình dữ liệu quan hệ. Dữ liệu được mơ hình
hóa bằng các phương tiện khác với các quan hệ dạng bảng được sử dụng trong cơ sở dữ
liệu quan hệ.
Cơ sở dữ liệu quan hệ hữu dụng trong việc xử lí các dữ liệu được cấu trúc kỹ càng và
hỗ trợ tính ACID (Atomicity: tính ngun tố). Một giao dịch có nhiều thao tác khác biệt thì
hoặc là tồn bộ các thao tác hoặc là khơng một thao tác nào được hồn thành. Consistency:
tính nhất quán. Một giao dịch hoặc là sẽ tạo ra một trạng thái mới và hợp lệ cho dữ liệu,
hoặc trong trường hợp có lỗi sẽ chuyển tồn bộ dữ liệu về trạng thái trước khi thực thi giao
dịch., Isolation: tính độc lập. Một giao dịch đang thực thi và chưa được xác nhận phải bảo
đảm tách biệt khỏi các giao dịch khác. Durability: tính bền vững. Dữ liệu được xác nhận sẽ
được hệ thống lưu lại sao cho ngay cả trong trường hợp hỏng hóc hoặc có lỗi hệ thống, dữ
liệu vẫn đảm bảo trong trạng thái chuẩn xác). Ngồi ra, nó cịn có một cộng đồng hỗ trợ vô
cùng mạnh mẽ. Tuy nhiên, cơ sở dữ liệu quan hệ vẫn còn tồn tại những hạn chế như:
 Nếu đúng chuẩn, hiệu năng có thể sẽ bị chậm nếu 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 hệ quản trị cơ sở dữ liệu


quan hệ (RDBMS).
264


 Khó mở rộng hoặc thay đổi cấu trúc bảng: việc thêm/xóa bảng hoặc thêm/xóa một
field... có thể kéo theo vô số source code thay đổi.
 Không làm việc được với dữ liệu khơng có cấu trúc (unstructure).
 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).
Thuật ngữ NoSQL được giới thiệu lần đầu vào năm 1998 bởi Carlo Strozzi khi ông
lập mới một hệ cơ sở dữ liệu mở nhanh và nhẹ nhưng không sử dụng SQL cho truy vấn.
Cho tới năm 2009, Eric Evans giới thiệu lại thuật ngữ NoSQL trong một hội thảo về
cơ sở dữ liệu mã nguồn mở phân tán. Thuật ngữ NoSQL đánh dấu bước phát triển của thế
hệ database mới: distributed (phân tán) + non-relational (không ràng buộc).
NoSQL được phát triển xuất phát từ yêu cầu cần những CSDL có khả năng lưu trữ
dữ liệu với lượng cực lớn, truy vấn dữ liệu với tốc độ cao mà khơng địi hỏi q nhiều về
năng lực phần cứng cũng như tài nguyên hệ thống và tăng khả năng chịu lỗi. NoSQL bao
gồm một loạt các công nghệ cơ sở dữ liệu khác nhau được phát triển để đáp ứng các yêu
cầu lưu trữ dữ liệu có cấu trúc, bán cấu trúc, khơng cấu trúc hay đa hình của các ứng dụng
hiện đại.
Các đặc điểm của cơ sở dữ liệu NoSQL:
-

Phi quan hệ: không có ràng buộc nào cho việc nhất qn dữ liệu;

-

Mơ hình lưu trữ phân tán các tập tin hoặc dữ liệu ra nhiều máy khác nhau trong mạng
LAN hoặc Internet dưới sự kiểm soát của phần mề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;

-

Tính nhất qn khơng theo thời gian thực: sau mỗi thay đổi cơ sở dữ liệu, không cần
tác động ngay đến tất cả các cơ sở dữ liệu liên quan mà được lan truyền theo thời gian;

-

Mơ hình dữ liệu và truy vấn linh hoạt;

-

Triển khai đơn giản, dễ nâng cấp và mở rộng.
Một số khái niệm mới trong NoSQL:

-

Fields – tương đương với khái niệm Columns trong SQL
265


-

Document – thay thế khái niệm row trong SQL. Đây cũng chính là khái niệm làm nên
sự khác biệt giữa NoSQL và SQL, 1 document chứa số cột (fields) không cố định
trong khi 1 row thì số cột(columns) là định sẵn trước.


-

Collection – tương đương với khái niệm table trong SQL. Một collection là tập hợp
các document. Điều đặc biệt là một collection có thể chứa các document hồn tồn
khác nhau.

-

Key-value – cặp từ khóa – giá trị được dùng để lưu trữ dữ liệu trong NoSQL

-

Cursor – tạm dịch là con trỏ. Chúng ta sẽ sử dụng cursor để lấy dữ liệu từ database.

-

Indexes ~ counterparts: Trong các hệ cơ sở dữ liệu quan hệ, các cột được định nghĩa
theo bảng cịn với hệ cơ sở dữ liệu khơng ràng buộc, các cột được định nghĩa ở mỗi
document. Bởi thế, các document quản lí gần như tất cả, các collection khơng cần
quản lí chặt chẽ những gì đang xảy ra trong nó nữa .
So sánh giữa NoSQL và cơ sở dữ liệu quan hệ:
Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu phi quan hệ NoSQL

Sử dụng ngôn ngữ truy vấn SQL

Không sử dụng SQL, không khai báo ngôn
ngữ truy vấn


Dữ liệu có cấu trúc, có tổ chức

Dữ liệu đa dạng, có thể có cấu trúc, bán cấu
trúc, khơng cấu trúc, đa hình, … Dữ liệu
phi quan hệ và khơng thể đốn trước

Có định nghĩa schema cụ thể

Khơng định nghĩa schema, cấu trúc linh
hoạt

Dữ liệu và các quan hệ được lưu

Document databases, Graph stores, Key-

trữ trong các bảng riêng biệt

value stores, Wide-column stores

Có tính chặt chẽ nhưng khó mở

Ưu tiên cho hiệu năng, tính sẵn sàng cao

rộng

và khả năng mở rộng, dễ dàng phân tán

Hệ quản trị cơ sở dữ liệu: MySQL,


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

PostGreSQL,

RavenDB, Amazon DynamoDB, Riak, ...

Microsoft

SQL

Server, Oracle, ...
266


Có một số lợi thế, điểm mạnh khi làm việc với cơ sở dữ liệu NoSQL. Những ưu điểm
chính của NoSQL là khả năng mở rộng và tính sẵn sàng cao.
 NoSQL DB có khả năng mở rộng theo chiều ngang và cung cấp hiệu năng vượt trội,
nó giải quyết tốt một số vấn đề mà RDBMS không giải quyết được như:
 Vấn đề về việc thay đổi dữ liệu một cách nhanh chóng với khối lượng lớn, cập
nhật liên tục ở một thời điểm, những dữ liệu này có dạng cấu trúc, bán cấu trúc,
không cấu trúc hay đa hình.
 Xử lý dữ liệu đa dạng và phức tạp với hiệu quả như nhau.
 Cung cấp một thiết kế lược đồ linh hoạt có thể dễ dàng thay đổi mà khơng có thời
gian chết hoặc gián đoạn.
 Khi làm việc với mơ hình Agile, các sprints lặp lại nhanh và cần push code thường
xuyên.
 Lập trình hướng đối tượng, dễ dùng và linh hoạt.
 Sử dụng kiến trúc quy mơ phân tán theo vị trí địa lý thay vì kiến trúc nguyên khối
tốn kém.
 Không cần máy chủ hiệu năng cao chuyên dụng.

 Không giới hạn lưu trữ dữ liệu và người dùng hệ thống (High Scalability).
 NoSQL chấp nhận lưu trữ dữ liệu trùng lặp nên khi một node (commodity machine)
nào đó bị chết cũng sẽ khơng ảnh hưởng tới toàn bộ hệ thống (High Availability HA), khả năng tái tạo dễ dàng.
 Mơ hình hóa, truy vấn và deploy 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 thủ công.
 Thiết kế phân tán nên NoSQL giảm thiểu tối đa được các phép tính tốn, I/O liên quan
kết hợp với batch processing đảm bảo đủ xử lý các yêu cầu dữ liệu.
 Có thể đảm nhận vai trị như một nguồn dữ liệu chính cho các ứng dụng trực tuyến.
2. CÁC LOẠI CƠ SỞ DỮ LIỆU NOSQL
Cơ sở dữ liệu NoSQL được phân loại thành bốn loại phổ biến nhất: Key-value pair,
Column-oriented, Graph-based và Document-oriented. Mỗi loại đều có những thuộc tính
267


và hạn chế riêng. Khơng có cơ sở dữ liệu nào được cho là tốt hơn để giải quyết tất cả các
vấn đề. Người sử dụng nên chọn cơ sở dữ liệu dựa trên nhu cầu ứng dụng của mình.
Cơ sở dữ liệu khóa–giá trị (key – value databases): là các cơ sở dữ liệu NoSQL đơn
giản nhất. Mỗi item trong cơ sở dữ liệu được lưu trữ dưới dạng tên thuộc tính (hoặc key)
duy nhất, cùng với giá trị của nó, có thể có dạng JSON, BLOB, string, ... Nó được thiết kế
theo cách như vậy để có thể xử lý nhiều dữ liệu và tải nặng. Key value stores giúp các
developer lưu trữ dữ liệu khơng có schema.
Cơ sở dữ liệu khóa–giá trị có khả năng phân mảnh cao và cho phép thay đổi quy mô
theo chiều ngang ở các quy mơ lớn mà các loại hình cơ sở dữ liệu khác khơng thể làm được.
Mơ hình dữ liệu khóa–giá trị được dùng cho trị chơi, cơng nghệ quảng cáo và đặc biệt thích
hợp cho IoT.
Một số hệ quản trị cơ sở dữ liệu key - value tiêu biểu gồm: DynamoDB, Riak,
BerkeleyDB, Redis.
Cơ sở dữ liệu dạng cột (Column-oriented databases/Column-family). Dữ liệu được
lưu trong database dưới dạng các cột, thay vì các hàng như SQL. Mỗi hàng sẽ có một key/id
riêng. Điểm đặc biệt là các hàng trong một bảng sẽ có số lượng cột khác nhau. Câu lệnh

truy vấn của nó khá giống SQL.
Loại cơ sở dữ liệu này có cả lợi ích của cơ sở dữ liệu quan hệ và phi quan hệ, có thể
xử lí dữ liệu cấu trúc và phi cấu trúc, đồng thời cũng dễ dàng nâng cấp. So với cơ sở dữ liệu
quan hệ, khả năng mở rộng theo chiều ngang cũng dễ dàng và nhanh chóng hơn.
Đặc trưng của dạng NoSQL này chính là mang tới hiệu suất cao cho những truy vấn
tổng hợp dạng AVG, MIN, hay SUM, hoặc COUNT,… khi mà dữ liệu đã có sẵn ở một cột.
Cassandra là một trong số hệ quản trị cơ sở dữ liệu column-family phổ biến. Ngồi
ra cịn có một số hệ quản trị cơ sở dữ liệu khác như HBase, Hypertable và Amazon
DynamoDB. Cassandra ban đầu được tạo ra bởi Facebook. Sau đó nó đã được tặng cho Quỹ
Apache và tháng 2 năm 2010 và được nâng cấp lên thành dự án hàng đầu của Apache.
Cassandra có thể được miêu tả nhanh và khả năng mở rộng dễ dàng với các thao tác viết
thơng qua các cụm. Các cụm khơng có node master, vì thế bất kỳ việc đọc và ghi nào đểu
có thể được xử lý bởi bất kỳ node nào trong cụm.

268


Cơ sở dữ liệu tài liệu (document databases): ghép từng cặp key với một cấu trúc dữ
liệu phức tạp được gọi là document. Document có thể chứa nhiều cặp key-value, hoặc cặp
key-array khác nhau, hoặc thậm chí là các documents lồng nhau.
Loại document này chủ yếu được sử dụng cho các hệ thống CMS, nền tảng blog,
phân tích thời gian thực và các ứng dụng thương mại điện tử. Document database không
nên sử dụng cho các giao dịch phức tạp yêu cầu nhiều hoạt động hoặc truy vấn dựa trên các
cấu trúc tổng hợp khác nhau.
Các hệ quản trị cơ sở dữ liệu tài liệu tiêu biểu như: MongoDB, RavenDB, CouchDB,
TerraStone, OrientDB. MongoDB là một trong những cơ sở dữ liệu NoSQL phổ biến nhất
với những tính năng đáng giá. Nó được quảng bá là tương lai của các hệ thống cơ sở dữ
liệu và đang có một vị trí khá quan trọng trong quá trình phát triển ứng dụng hiện đại.
Những tập đoàn lớn như CISCO, SAP, IBM, Microsoft và Salesforce đều có mặt trong cộng
đồng phát triển MongoDB.

MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, hướng tài liệu (document),
các dữ liệu được lưu trữ trong document kiểu JSON. MongoDB được phát triển bởi
MongoDB Inc. và được cấp phép theo Giấy phép Công cộng phía Máy chủ (SSPL). Với cơ
sở dữ liệu quan hệ chúng ta có khái niệm bảng, sử dụng các bảng để lưu dữ liệu thì với
MongoDB chúng ta sẽ dùng khái niệm là collection thay vì bảng. So với RDBMS thì trong
MongoDB collection ứng với table, cịn document sẽ ứng với row , MongoDB sẽ dùng các
document thay cho row trong RDBMS. Các collection trong MongoDB được cấu trúc rất
linh hoạt, cho phép các dữ liệu lưu trữ không cần tuân theo một cấu trúc nhất định.
Cơ sở dữ liệu đồ thị (graph): cơ sở dữ liệu kiểu đồ thị lưu trữ các thực thể cũng như
các mối quan hệ giữa các thực thể đó. Thực thể được lưu trữ dưới dạng một nút (node) với
mối quan hệ là các cạnh (edge). Một cạnh biểu thị một mối quan hệ giữa các node. Mỗi
node và cạnh có một mã định danh duy nhất. Cơ sở dữ liệu đồ thị được sử dụng để lưu trữ
thông tin về các mạng dữ liệu, chẳng hạn như các social connections, logistics, dữ liệu
không gian,...
Cơ sở dữ liệu đồ thị có khả năng ngăn chặn gian lận tinh vi. Với graph database, có
thể sử dụng các mối quan hệ để xử lý các giao dịch tài chính và mua hàng trong thời gian
gần thực (near-real time). Với các truy vấn đồ thị nhanh, có thể thấy rằng, chẳng hạn như
một người mua tiềm năng đang sử dụng cùng một địa chỉ email và thẻ tín dụng như trong
269


một trường hợp gian lận đã biết. Cơ sở dữ liệu đồ thị cũng có thể giúp dễ dàng phát hiện
các mẫu quan hệ chẳng hạn như nhiều người được liên kết với một địa chỉ email cá nhân
hoặc nhiều người chia sẻ cùng một địa chỉ IP nhưng cư trú ở các địa chỉ thực khác nhau.
Cơ sở dữ liệu đồ thị là một lựa chọn tốt cho các ứng dụng gợi ý. Với graph database,
có thể lưu trữ trong biểu đồ mối quan hệ giữa các danh mục thơng tin như sở thích của
khách hàng, bạn bè và lịch sử mua hàng. Bạn có thể sử dụng cơ sở dữ liệu đồ thị có tính
khả dụng cao để đưa ra các đề xuất sản phẩm cho người dùng dựa trên sản phẩm nào được
mua bởi những người khác theo cùng mơn thể thao và có lịch sử mua hàng tương tự. Hoặc,
bạn có thể xác định những người có bạn chung nhưng chưa biết nhau, sau đó đưa ra đề xuất

kết bạn.
Các hệ quản trị cơ sở dữ liệu tiêu biểu như: Neo4j, InfiniteGraph, OrientDB,… Neo4j
là một trong những cơ sở dữ liệu đồ thị hàng đầu trên thế giới, nó vừa là nguồn mở vừa
được xây dựng trên Java. Nó cũng có ngơn ngữ riêng, được gọi là Cypher, tương tự như
ngôn ngữ SQL khai báo, nhưng được tạo ra để phù hợp với đồ thị. Nó cũng hỗ trợ các ngôn
ngữ phổ biến bên cạnh Java, chẳng hạn như Python, .NET, JavaScript và một số ngôn ngữ
khác. Neo4j lý tưởng cho những việc như quản lý trung tâm dữ liệu và phát hiện gian lận

3. HẠN CHẾ CỦA NOSQL VÀ KHI NÀO NÊN SỬ DỤNG NOSQL
Bên cạnh những ưu điểm của nó thì NoSQL Database cũng có những nhược điểm,
khơng phù hợp với nhiều ứng dụng vẫn yêu cầu các loại ràng buộc, tính nhất quán và các
biện pháp bảo vệ mà cơ sở dữ liệu SQL cung cấp.
Thiếu tính nhất quán: NoSQL đánh đổi sự nhất quán để ưu tiên tốc độ, hiệu suất hiệu
quả hơn. Dữ liệu được chèn vào cụm dù thế nào cũng sẽ khả dụng trên tồn bộ hệ thống,
nhưng khơng thể biết chắc chắn khoảng thời gian nào.
Một số cơ sở dữ liệu NoSQL có các cơ chế để khắc phục điều này. Chẳng hạn như
MongoDB, hệ thống này đảm bảo tính nhất quán cho các hoạt động riêng lẻ, nhưng khơng
phải cho tồn bộ cơ sở dữ liệu. Microsoft Azure CosmosDB cho phép bạn chọn mức độ
nhất quán cho mỗi yêu cầu, do đó bạn có thể chọn hành vi phù hợp với trường hợp sử dụng
của mình.
NoSQL lock-in: hầu hết các hệ thống NoSQL đều tương tự về khái niệm, tuy nhiên,
cách thực hiện lại rất khác nhau. Mỗi hệ thống sẽ có cơ chế truy vấn dữ liệu và quản lý
270


riêng. Điều này có thể sẽ trở gây ra trở ngại nếu xảy ra các thay đổi hệ thống trong q trình
làm việc.
Ví dụ nếu thay đổi hệ thống từ MongoDB sang CouchDB sẽ phải làm nhiều viêc hơn
là chỉ di chuyển dữ liệu. Bạn cũng phải điều hướng sự khác biệt trong truy cập dữ liệu và
cách thức lập trình, nói cách khác, bạn phải viết lại các phần của ứng dụng truy cập cơ sở

dữ liệu.
Kỹ năng non trẻ: Một hạn chế khác đối với NoSQL là người sử dụng có thể sẽ thiếu
các kỹ năng chun mơn ở mức tương đối. Trong khi thị trường dành cho SQL vẫn phát
triển thì NoSQL cịn rất non trẻ bởi hệ thống này cịn khá mới và khơng phải ai cũng biết
cách sử dụng thành thạo.
Khối lượng danh sách công việc cho SQL, thông thường là MySQL, Microsoft SQL
Server, Oracle Database,... cao hơn tổng ba năm với khối lượng công việc cho MongoDB,
Couchbase và Cassandra. Nhu cầu của NoSQL đang tăng lên, nhưng nó vẫn là một phần
nhỏ của thị trường cho SQL.
Quản lý dữ liệu: Mục đích của các công cụ dữ liệu lớn là làm cho việc quản lý một
lượng lớn dữ liệu trở nên đơn giản nhất. Nhưng quản lý dữ liệu trong NoSQL phức tạp hơn
nhiều so với cơ sở dữ liệu quan hệ. Đặc biệt, NoSQL nổi tiếng là khó cài đặt và thậm chí là
để quản lý nó hằng ngày cũng tốn khá nhiều thời gian.
Sao lưu dữ liệu: Sao lưu là một điểm yếu lớn đối với một số cơ sở dữ liệu NoSQL
như MongoDB. Nó khơng có cách tiếp cận để làm sao lưu dữ liệu một cách nhất qn.
Khơng có lược đồ: Ngay cả khi bạn lấy dữ liệu ở dạng tự do, bạn hầu như luôn cần
áp đặt các ràng buộc để làm cho nó hữu ích. Với NoSQL, trách nhiệm sẽ được chuyển từ
cơ sở dữ liệu sang nhà phát triển, lập trình ứng dụng.
Tuy nhiên, với những điểm mạnh của mình, NoSQL database nên được áp dụng trong
những trường hợp sau:
Khi muốn lưu trữ, truy xuất một lượng dữ liệu khổng lồ một cách nhanh chóng. Lượng
dữ liệu mà các hệ thống cần phải xử lý giờ đây ngày 1 lớn. Ví dụ như Google, Facebook
phải lưu trữ và xử lý một lượng dữ liệu cực lớn mỗi ngày. NoSQL được phát triển xuất phát
từ yêu cầu cần những database có khả năng lưu trữ dữ liệu với lượng cực lớn, truy vấn dữ
liệu với tốc độ cao mà khơng địi hỏi q nhiều về năng lực phần cứng cũng như tài nguyên
271


hệ thống và tăng khả năng chịu lỗi. NoSQL bỏ qua tính nhất quán của dữ liệu để đổi lấy
hiệu suất nhanh và khả năng mở rộng (scalability). Do đó, NoSQL được ứng dụng nhiều

trong các dự án Big Data, các dự án Real-time,... với lượng dữ liệu khổng lồ hoặc khơng có
cấu trúc cụ thể. Đây là những vấn đề mà các relational database không thể giải quyết được.
Khi cấu trúc dữ liệu chưa hoàn chỉnh và được thay đổi theo thời gian. Thực tế, thời
gian cho vòng đời một phần mềm (software) đang ngày càng rút ngắn. Không thể cứng
nhắc là phải có Database Structure rõ ràng mới bắt đầu phát triển phần mềm. Tùy vào đặc
thù của từng dự án để linh động trong giải quyết vấn đề. Hiện tại, nếu table A được định
nghĩa 4 column (4 field). Nhưng trong quá trình phát triển, nếu ta cần thêm 2 field nữa, sự
khác biệt sẽ nhận thấy rõ ngay giữa SQL và NoSQL, Nếu sử dụng SQL (Structure), có cấu
trúc. Tất nhiên sẽ phải ALTER table đó, hoặc là tầm nhìn xa hơn sẽ dùng column store Json.
Thay đổi Json Store. Việc này tuy có thể đáp ứng nhưng khá phức tạp. Nếu sử dụng NoSQL,
do không quá ràng buộc về mặt cấu trúc, ta vẫn có thể thoải mái store node đó với 4 field,
trong khi những node trước đó là 2 field. Rõ ràng mà nói điểm mạnh NoSQL là tốt cho các
ứng dụng có cấu trúc CSDL chưa hoàn chỉnh, đang hoặc sẽ được điều chỉnh trong q trình
sử dụng.
Khi khơng cần hỗ trợ ACID. NoSQL không nhất quán dữ liệu giống như SQL. Trên
thực tế, cơ sở dữ liệu SQL không ưu tiên hiệu suất và khả năng mở rộng mà thường sẽ đẩy
việc tuân thủ các thuộc tính ACID đảm bảo độ tin cậy cho các giao dịch lên trước, trong
khi cơ sở dữ liệu NoSQL gần như bỏ qua các đảm bảo ACID để ưu tiên tốc độ và khả năng
mở rộng. Mối quan hệ giữa dữ liệu lưu trữ là không quan trọng. Các ràng buộc và logic xác
thực không bắt buộc phải được thực hiện trong cơ sở dữ liệu.
4. KẾT LUẬN
Cơ sở dữ liệu quan hệ và cơ sở dữ liệu phi quan hệ NoSQL có những sự đánh đổi
khác nhau trong hệ thống. Việc quyết định lựa chọn cơng cụ nào cần phụ thuộc vào tính
chất cơng việc thực tế. Công nghệ NoSQL chủ yếu được phát triển để xử lý các dữ liệu khối
luợng lớn, phi cấu trúc như Big Data. Tuy nhiên, nó sẽ khơng thay thế hồn tồn cơ sở dữ
liệu quan hệ, vì mục đích sử dụng của 2 thứ là khác nhau. Nhiều tổ chức bắt đầu nhận thấy
những lợi thế đáng kể khi sử dụng cơ sở dữ liệu NoSQL cho các dự án. Bởi vì chu kỳ phát
triển nhanh hơn, các tổ chức có thể đổi mới nhanh hơn và cung cấp trải nghiệm khách hàng

272



vượt trội hơn với chi phí thấp hơn. Với những ưu điểm trên, NoSQL đang đượ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.
TÀI LIỆU THAM KHẢO
[1] />[2] />[3] />[4] />[5] />[6] Bắt đầu với NoSQL và MongoDB (viblo.asia)
[7] />[8] a/p/tim-hieu-ve-nosql-Zzb7vDNYMjKd
[9] />[10]. />
273



×