Bài viết Cơ sở dữ liệu phi quan hệ - NoSQL giới thiệu 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). Mời các bạn cùng tham khảo!
Trang 1CƠ 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: dntnguyet@ufm.edu.vn
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
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 nguyên tố) Một giao dịch có nhiều thao tác khác biệt thì hoặc là toàn bộ các thao tác hoặc là không một thao tác nào được hoà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 toà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) Ngoà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)
Trang 2 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 quá 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 quán 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 quán 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
Trang 3- 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 hoàn toà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ệ:
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ể đoá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
trữ trong các bảng riêng biệt
Document databases, Graph stores, Key-value stores, Wide-column stores
Có tính chặt chẽ nhưng khó mở
rộng
Ưu tiên cho hiệu năng, tính sẵn sàng cao
và khả năng mở rộng, dễ dàng phân tán
Hệ quản trị cơ sở dữ liệu: MySQL,
PostGreSQL, Microsoft SQL
Server, Oracle,
Hệ quản trị cơ sở dữ liệu: MongoDB, RavenDB, Amazon DynamoDB, Riak,
Trang 4Có 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 toá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
Trang 5và 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 Ngoà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
Trang 6Cơ 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
Trang 7mộ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
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 toà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 toà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ý
Trang 8riê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 quá 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 chuyên 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 quán
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 quá nhiều về năng lực phần cứng cũng như tài nguyên
Trang 9hệ 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 quá 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ế hoàn toà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
Trang 10vượ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] https://quantrimang.com/co-so-du-lieu-phi-quan-he-nosql-160708
[2] https://chiasekinang.com/nosql-la-gi-mot-so-uu-diem-va-nhuoc-diem-can-biet-ve-nosql/
[3] https://aws.amazon.com/vi/nosql/
[4] https://www.guru99.com/nosql-tutorial.html
[5] https://smartfactoryvn.com/technology/internet-of-things/co-so-du-lieu-nosql-la-gi/ [6] Bắt đầu với NoSQL và MongoDB (viblo.asia)
[8] https://viblo.asia/p/tim-hieu-ve-nosql-Zzb7vDNYMjKd
[9] https://giaiphapso.com/graph-database-la-gi-va-hoat-dong-the-nao/
[10] https://tel4vn.edu.vn/blog/cac-loai-co-so-du-lieu/