Cơ sở dữ liệu NoSQL là tương lai cho ứng dụng dữ liệu lớn (Big Data)?

10:33 - 08/03/2022  |  698 lượt xem

Chia sẻ
Vào những năm 1970 mô hình cơ sở dữ liệu quan hệ bắt đầu xuất hiện và nhanh chóng đạt được sức hút cho đến khi cơ sở dữ liệu NoSQL xuất hiện và được sử dụng ngày một rộng rãi vì khả năng dễ phát triển chức năng cũng như hiệu năng của nó, với một vài điển hình về việc sử dụng NoSQL như: Facebook (sử dụng Cassandra), Google (BigTable). Bài viết này sẽ giúp tìm hiểu thêm về cơ sở dữ liệu NoSQL và các đặc điểm của hệ cơ sở dữ liệu này.
Cơ sở dữ liệu NoSQL là tương lai cho ứng dụng dữ liệu lớn (Big Data)?

Cơ sở dữ liệu phổ biến

Theo db-engines.com, 4 trong số 5 cơ sở dữ liệu phổ biến nhất đều là cơ sở dữ liệu quan hệ, cơ sở dữ liệu NoSQL duy nhất vượt qua top 5 là MongoDB.

NoSQL ngày càng phổ biến trong giới lập trình. Việc sử dụng NoSQL MEAN stack (kết hợp giữa MongoDB, Express, AngularJS, NodeJS) đang dần lấn lướt, thay thế cho LAMP stack (kết hợp của Linux, Apache, MySQL và PHP) đã lỗi thời.

Các thao tác lưu trữ dữ liệu, truy cập dữ liệu và quản lý dữ liệu ngày nay đòi hỏi ngày càng nhiều các công cụ tiên tiến, linh hoạt và thích ứng hơn tùy thuộc vào cách dữ liệu đang được sử dụng, nhưng cũng tùy thuộc vào nhu cầu kinh doanh và tăng trưởng trong tương lai. Điện toán đám mây ra đời có tác động quan trọng đến sự phát triển của các công nghệ cơ sở dữ liệu.

So sánh ưu nhược điểm SQL và NoSQL

RDBMS (Relational Data Base Management Systems) được gọi là cơ sở dữ liệu quan hệ, hoặc SQL (Structured Query Language) cơ sở dữ liệu.

NoSQL là một cơ sở dữ liệu phi quan hệ và đại diện cho một nhóm cơ sở dữ liệu hoạt động khác với RDBMS truyền thống.

RDBMS (ví dụ 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  RDBMS tuân thủ các thuộc tính ACID, viết tắt của Nguyên tử, Nhất quán, Cô lập Độ bền. Trong khi đó, NoSQL thường tuân thủ các thuộc tính BASE, đó là Tính nhất quán về cơ bản, Trạng thái mềmTính nhất quán cuối cùng.

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 code khá rắc rối và phức tạp.
  • Hiệu năng sẽ bị chậm khi phải kết nối nhiều bảng để lấy dữ liệu.
  • Việc thay đổi cấu trúc dữ liệu (Thêm/xóa bảng hoặc thêm/xóa một trường) rất mệt mỏi, kéo theo vô số thay đổi trê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).

Lưu trữ dữ liệu trong RDBMS

NoSQL Database ra đời, giải quyết được những khuyết điểm của RDBMS:

  • Dữ liệu trong NoSQL DB được lưu dưới dạng document, object; truy vấn dễ dàng và nhanh hơn RDBMS nhiều.
  • NoSQL có thể làm việc hoàn toàn tốt với dữ liệu dạng không có cấu trúc.
  • Việc đổi cấu trúc dữ liệu (thêm, xóa trường hoặc bảng) rất dễ dàng và nhanh gọn trong NoSQL.
  • Vì không đặt nặng tính ACID của transactions và tính nhất quán của dữ liệu, NoSQL DB có thể mở rộng, chạy trên nhiều máy một cách dễ dàng.

Lưu trữ dữ liệu trong NoSQL

Khi nào nên sử dụng NoSQL

Trong tương lai, NoSQL sẽ thế chỗ SQL?

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 để đổi lấy hiệu suất nhanh và khả năng mở rộng (scalability). 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.

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.

Việc lựa chọn giữa SQL và NoSQL hoàn toàn phụ thuộc vào nhu cầu của mỗi dự án riêng biệt, vì cả hai đều có ưu điểm cũng như nhược điểm.

Quang Tú

10:33 - 08/03/2022  |  698 lượt xem

Chia sẻ

TIN BÀI ĐỌC NHIỀU

💥 💥 💥 EVNCPC thông báo tuyển dụng lao động

💥 💥 💥 EVNCPC thông báo tuyển dụng lao động

10:26 - 30/05/2022  |  21045 lượt xem