Cơ sở dữ liệu phi quan hệ - NoSQL
lượt xem 6
download
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!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Cơ sở dữ liệu phi quan hệ - NoSQL
- 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: 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 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 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). 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 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 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 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ệ: 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ể đ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 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, Microsoft SQL RavenDB, Amazon DynamoDB, Riak, ... 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 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 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. 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. 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 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ý 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 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 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 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 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] 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) [7] https://topdev.vn/blog/diem-manh-nosql-co-dang-de-thay-doi/ [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/ 273
CÓ THỂ BẠN MUỐN DOWNLOAD
-
10 thủ thuật bảo mật cơ sở dữ liệu Access
7 p | 360 | 138
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5 - Phạm Thị Bạch Huệ
13 p | 185 | 17
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 4 - GV. Hồ Văn Phi
159 p | 111 | 17
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 1 - GV. Hồ Văn Phi
18 p | 104 | 16
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 2 - GV. Hồ Văn Phi
43 p | 115 | 15
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 5 - GV. Hồ Văn Phi
27 p | 111 | 14
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 3 - GV. Hồ Văn Phi
21 p | 124 | 12
-
Bài giảng Cơ sở dữ liệu Web và XML: Chương 6 - GV. Hồ Văn Phi
13 p | 79 | 12
-
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 4 - GV. Đặng Thị Kim Anh
62 p | 109 | 10
-
Bài giảng Cơ sở dữ liệu: Chương 1 - ThS. Trần Đắc Phi Hùng
73 p | 95 | 6
-
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Trần Đắc Phi Hùng
37 p | 52 | 4
-
Bài giảng Cơ sở dữ liệu: Bài 8 - ThS. Vũ Văn Định
31 p | 46 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 1)
43 p | 6 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 2)
16 p | 9 | 3
-
Bài giảng Lưu trữ và xử lý dữ liệu lớn: Chương 4 - Cơ sở dữ liệu phi quan hệ NoSQL (Phần 3)
50 p | 11 | 3
-
Bài giảng Thiết kế và quản trị cơ sở dữ liệu - Chương 2: Tinh chỉnh lược đồ CSDL
7 p | 61 | 2
-
Bài giảng Thiết kế và quản trị cơ sở dữ liệu - Chương 3: Tổ chức Index hiệu quả
7 p | 74 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn