Giới thiệu về NoSQL database

Khi làm việc với cơ sở dữ liệu, chúng ta thường sử dụng các cơ sở dữ liệu quan hệ như SQLServer, MySQL, PostgreSQL, Oracle … Nhưng có một loại cơ sở dữ liệu khác với những đặc điểm khác biệt được gọi chung dưới tên gọi là NoSQL. Hãy cùng tìm hiểu về nó và tại sao nó phát triển và thu hút sự quan tâm của nhiều người.

  1. Cơ sở dữ liệu NoSQL là gì ?
  • Thuật ngữ “NoSQL” được giới thiệu lần đầu vào năm 1998 để chỉ các cơ sở dữ liệu quan hệ nguồn mở nhẹ nhàng không sử dụng SQL để truy vấn dữ liệu. Năm 2009, Eric Evans, một nhân viên của Rackspace, giới thiệu lại thuật ngữ NoSQL trong một hội thảo về cơ sở dữ liệu phân tán nguồn mở. NoSQL đại diện cho hai đặc điểm quan trọng: phân tán và không quan hệ. Đây là hai đặc điểm chính quan trọng của NoSQL.
  1. Vì sao cần phải sử dụng NoSQL.
  • Cần phát triển NoSQL xuất phát từ yêu cầu lưu trữ và truy vấn dữ liệu lớn với tốc độ nhanh mà không đòi hỏi quá nhiều tài nguyên phần cứng và hệ thống cũng như tăng khả năng chịu lỗi. Đây là những vấn đề mà các cơ sở dữ liệu quan hệ không thể giải quyết được.
  • Lượng dữ liệu cần được xử lý trong các hệ thống ngày nay là rất lớn. Ví dụ, Google, Facebook phải lưu trữ và xử lý một lượng dữ liệu khổng lồ hàng ngày.
  • Giới thiệu về NoSQL database
  1. Một số đặc điểm chung của NoSQL.
  • Tính linh hoạt về quy mô: Không có giới hạn về dữ liệu và người dùng trên hệ thống.
  • Tính sẵn có cao: Do chấp nhận trùng lặp trong việc lưu trữ nên nếu một node (máy tính thường) gặp sự cố, không ảnh hưởng đến toàn bộ hệ thống.
  • Nguyên tố: Độc lập trạng thái dữ liệu trong các hoạt động.
  • Tính nhất quán: Chấp nhận tính nhất quán yếu, có thể không nhìn thấy ngay sự thay đổi dữ liệu mặc dù đã cập nhật.
  • Tính bền vững: 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ữ trên đĩa cứng.
  • Tính linh hoạt trong triển khai: Có thể thêm/xóa các node mà không cần can thiệp thủ công. Hệ thống cũng không đòi hỏi phần cứng đồng nhất.
  • Tính linh hoạt trong mô hình: Key-Value pairs, Dữ liệu cấu trúc, Đồ thị.
  • Tính linh hoạt trong truy vấn: Multi-Gets, Range queries (tải một tập giá trị dựa trên một dãy khóa).
  1. Phân loại cơ sở dữ liệu NoSQL. Có bốn loại phổ biến nhất của cơ sở dữ liệu NoSQL. Mỗi loại có các đặc điểm kỹ thuật và giới hạn riêng. Không có một giải pháp duy nhất tốt hơn tất cả các giải pháp khác, tuy nhiên có một số cơ sở dữ liệu tốt hơn để giải quyết các vấn đề cụ thể. Hãy tìm hiểu về những loại phổ biến nhất:
Có Thể Bạn Quan Tâm :   Tam Vinh Hiển Là Gì – Số Tam Vinh Hiển Có 3 Trường Hợp Như Sau

a. Lưu trữ key-value: Đây là loại lưu trữ dữ liệu NoSQL đơn giản nhất sử dụng các cặp khóa-giá trị. Chúng ta có thể nhận giá trị cho một khóa, đặt giá trị cho một khóa hoặc xóa một khóa khỏi dữ liệu. Ví dụ, nếu giá trị được lưu trữ là ‘blob’, chúng ta không cần phải quan tâm hoặc biết nội dung bên trong. Truy cập vào các cặp khóa-giá trị luôn sử dụng khóa chính và có hiệu năng truy cập tốt và có thể thu nhỏ dễ dàng. Một số cơ sở dữ liệu key-value phổ biến là Riak, Redis, memcached, Berkeley DB, HamsterDB, Amazon DynamoDB, Project Voldemort và Couchbase. Tất cả các cơ sở dữ liệu key-value không giống nhau, có rất nhiều khác biệt giữa các sản phẩm. Ví dụ, dữ liệu trong memcached không đồng nhất trong khi dữ liệu trong Riak thì ngược lại. Điều này là rất quan trọng khi chọn giải pháp sử dụng. Ví dụ, khi chúng ta cần cài đặt bộ nhớ cache cho nội dung được yêu thích của người dùng, việc sử dụng memcached có nghĩa là khi các node bị hỏng, dữ liệu có thể bị mất và cần phải được làm mới từ nguồn. Tuy nhiên, nếu chúng ta lưu trữ cùng dữ liệu đó trong Riak, chúng ta không cần lo lắng về việc mất dữ liệu nhưng cần xem xét cách cập nhật trạng thái của dữ liệu. Điều này quan trọng không chỉ cho việc chọn cơ sở dữ liệu key-value cho hệ thống mà còn quan trọng cho việc chọn loại cơ sở dữ liệu key-value nào.

Có Thể Bạn Quan Tâm :   Phân bón NPK 20-20-15 có tác dụng gì?

b. Cơ sở dữ liệu hướng cột (column-family): Cơ sở dữ liệu hướng cột lưu trữ dữ liệu trong nhiều cột trên mỗi dòng với một khóa cho mỗi dòng. Column family là một nhóm các dữ liệu liên quan được truy cập cùng nhau. Ví dụ, với khách hàng, chúng ta thường sử dụng thông tin cá nhân liên quan cùng nhau thay vì hóa đơn của họ. Cassandra là một trong các cơ sở dữ liệu hướng cột phổ biến. Cũng có một số cơ sở dữ liệu khác như HBase, Hypertable và Amazon DynamoDB. Cassandra có thể mở rộng dễ dàng và có khả năng mô tả nhanh với các thao tác ghi thông qua các dải. Các dải không có node chính, vì vậy bất kỳ truy vấn đọc và ghi nào đều có thể được xử lý bởi bất kỳ node nào trong dải.

c. Cơ sở dữ liệu đồ thị: Loại cơ sở dữ liệu này cho phép lưu trữ các đối tượng và quan hệ giữa chúng. Các đối tượng này được gọi là các node, đi kèm với các thuộc tính. Mỗi node là một phiên bản của một đối tượng trong ứng dụng. Quan hệ được gọi là các cạnh, có thể có các thuộc tính. Cạnh có hướng; các node được tổ chức bằng mối quan hệ. Cấu trúc đồ thị cho phép lưu trữ dữ liệu một lần và giải thích theo nhiều cách khác nhau dựa trên mối quan hệ. Thông thường, khi lưu trữ cấu trúc đồ thị tương tự như trong RDBMS, nó là một loại mối quan hệ độc đáo. Thêm một mối quan hệ nghĩa là cần nhiều thay đổi sơ đồ và di chuyển dữ liệu, điều này không phải là trường hợp khó khi sử dụng cơ sở dữ liệu đồ thị. Trong cơ sở dữ liệu đồ thị, việc di chuyển qua các thành phần tham gia hoặc các mối quan hệ là rất nhanh chóng. Các mối quan hệ giữa các node không được tính vào thời gian truy vấn nhưng thực tế chúng tồn tại như là một mối quan hệ. Việc di chuyển qua mối quan hệ nhanh hơn so với tính toán cho mỗi truy vấn. Có nhiều cơ sở dữ liệu đồ thị khác nhau như Neo4J, Infinite Graph, OrientDB hoặc FlockDB (trường hợp đặc biệt: một cơ sở dữ liệu đồ thị chỉ hỗ trợ mối quan hệ đơn sơ hoặc danh sách kề, trong đó bạn không thể đi qua nhiều hơn một mức độ sâu đối với mối quan hệ).

Có Thể Bạn Quan Tâm :   Hội chứng xanh tím da

d. Cơ sở dữ liệu hướng tài liệu: Tài liệu là nguyên tắc chính của cơ sở dữ liệu loại này. Dữ liệu được lưu trữ và truy xuất dưới dạng các tài liệu với định dạng XML, JSON, BSON, … Tài liệu mô tả chính nó, được thừa kế từ cấu trúc dữ liệu cây. Cơ sở dữ liệu hướng tài liệu có thể coi là một phần của lưu trữ key-value. Cơ sở dữ liệu loại này như MongoDB cung cấp ngôn ngữ truy vấn đa dạng và chỉ số hóa cũng như định nghĩa schema. Một số cơ sở dữ liệu hướng tài liệu phổ biến mà chúng ta thường gặp là MongoDB, CouchDB, Terastore, OrientDB, RavenDB.

  1. So sánh giữa RDBMS (Hệ quản trị cơ sở dữ liệu quan hệ) và NoSQL. RDBMS
  • Dữ liệu có tổ chức và cấu trúc
  • Sử dụng ngôn ngữ SQL để truy vấn dữ liệu
  • Dữ liệu và mối quan hệ được lưu trữ trong các bảng riêng biệt.
  • Có tính chặt chẽ

NoSQL

  • Không sử dụng SQL
  • Không trình bày ngôn ngữ truy vấn dữ liệu
  • Không xác định schema
  • Có bốn nhóm loại: Lưu trữ key-value, Lưu trữ hướng cột, Lưu trữ hướng tài liệu, Cơ sở dữ liệu đồ thị
  • Dữ liệu không có cấu trúc và không thể dự đoán trước
  • Ưu tiên hiệu năng cao, sẵn sàng cao và khả năng mở rộng
  1. Thống kê về tỷ lệ sử dụng NoSQL. Giới thiệu về cơ sở dữ liệu NoSQL Nguồn: https://jaxenter.com/top-databases-2017-132912.html
Back to top button