Tìm hiểu những thông tin cơ bản về NoSQL Databases
BÀI LIÊN QUAN
Big data là gì? Các ứng dụng của big data trong cuộc sốngTìm hiểu những ứng dụng Big Data trong kinh doanhỨng dụng hữu ích của Big Data trong ngân hàng hiện nayNoSQL Databases là gì?
NoSQL Databases là viết tắt của “Not Only SQL” hoặc “Not SQL” được giới thiệu lần đầu vào năm 1998 bởi Carlo Strozzi sử dụng làm tên gọi chung cho các cơ sở dữ liệu quan hệ nguồn mở nhỏ nhưng không sử dụng SQL cho truy vấn.
Năm 2009, trong một hội thảo về cơ sở dữ liệu nguồn mở phân tán, Eric Evans - nhân viên của Rackspace đã giới thiệu lại thuật ngữ NoSQL, đánh dấu bước phát triển của thế hệ database mới gồm 2 đặc tính quan trọng nhất là distributed (phân tán) và non-relational (không ràng buộc).
NoSQL 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ệ, đặc biệt nhấn mạnh đến mô hình lưu trữ cặp giá trị - khóa và hệ thống lưu trữ phân tán. Mục đích chính của việc sử dụng NoSQL Database là dành cho các kho dữ liệu phân tán với nhu cầu lưu trữ dữ liệu lớn.
Ưu nhược điểm của NoSQL Databases
Một số ưu điểm và nhược điểm cần biết về cơ sở dữ liệu NoSQL:
Ưu điểm
Đặc điểm ưu việt của NoSQL là khả năng mở rộng và tính sẵn sàng cao. Cụ thể như sau:
- High scalability
Cơ sở dữ liệu NoSQL sử dụng sharding để chia tỷ lệ ngang, thêm nhiều máy hơn để xử lý dữ liệu thay vì phải bổ sung thêm những máy chủ lớn hơn để tải nhiều dữ liệu hơn. NoSQL có thể xử lý lượng dữ liệu khổng lồ một cách hiệu quả do khả năng tự mở rộng quy mô.
- High availability
Nhờ khả năng tự động sao chép trong MongoDB, NoSQL luôn sẵn sàng trong mọi trường hợp. Nếu có bất kỳ lỗi nào, dữ liệu sẽ tự động sao chép về trạng thái nhất quán trước đó.
Nhược điểm
Bên cạnh những ưu điểm thì NoSQL Database cũng có một số hạn chế sau:
- Quản lý dữ liệu trong NoSQL phức tạp hơn nhiều so với SQL. Đặc biệt, NoSQL khó cài đặt và tốn nhiều thời gian để quản lý hằng ngày.
- Một số cơ sở dữ liệu NoSQL như MongoDB không có cách tiếp cận để sao lưu dữ liệu một cách nhất quán
- Thiếu tính nhất quán, ưu tiên tốc độ, hiệu suất hiệu quả hơn.
- Cơ sở dữ liệu NoSQL có trọng tâm rất hẹp vì chủ yếu được thiết kế để lưu trữ
- NoSQL là cơ sở dữ liệu mã nguồn mở và không có tiêu chuẩn đáng tin cậy
- Không có lược đồ, 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
- Hệ thống NoSQL còn khá mới nên không phải ai cũng biết sử dụng một cách thành thạo.
Khi nào nên sử dụng NoSQL Databases?
Những trường hợp nên chọn sử dụng NoSQL Database:
- Cần lưu trữ, truy xuất một lượng dữ liệu cực lớn
- Dữ liệu không có cấu trúc, thay đổi theo thời gian.
- Dữ liệu đang phát triển liên tục và cần mở rộng thường xuyên để xử lý dữ liệu.
- Hệ thống sở hữu lượng truy cập cao, không cho phép downtime
Lợi ích khi dùng NoSQL Databases
Việc sử dụng NoSQL đem lại nhiều giá trị và lợi ích nên được tin tưởng trong nhiều ứng dụng hiện đại hiện nay. Những lợi ích khi chọn NoSQL phải kể tới là:
- Khả năng thay đổi quy mô:
Đặc trưng của NoSQL Database chính là được thiết kế bằng việc sử dụng cụm phần cứng đã được phân phối thay vì phải tốn kém chi phí mua các máy chủ mạnh.
- Linh hoạt
NoSQL cung cấp sơ đồ linh hoạt, thúc đẩy công đoạn xây dựng phát triển nhanh hơn, lặp lại cao đồng thời hiệu suất lớn. Đây là sự lựa chọn lý tưởng cho dữ liệu không được tổ chức thành cấu trúc hoặc có cấu trúc chưa hoàn chỉnh.
- Cực kỳ thiết thực
Cơ sở dữ liệu NoSQL cung cấp các API và kiểu dữ liệu rất thiết thực, được tiến hành xây dựng riêng cho từng mô hình dữ liệu tương ứng.
- Hiệu năng cao
NoSQL được tối ưu hóa theo mô hình dữ liệu cụ thể và các mẫu truy cập, giúp tăng hiệu năng cao hơn so với việc cố gắng đạt được mức độ chức năng tương tự bằng SQL.
Các kiểu NoSQL Databases phổ biến hiện nay
Cơ sở dữ liệu NoSQL được phân loại thành nhiều loại khác nhau, mỗi loại đều có những đặc điểm ưu việt và hạn chế nhất định. Trong đó các hệ thống phổ biến bao gồm:
Key Value Pair NoSQL Databases
Với Key Value Pair Based, dữ liệu được lưu trữ toàn bộ trong các cặp khóa/giá trị (Key/Value Pair). Cơ sở dữ liệu lưu trữ dưới dạng bảng băm trong đó mỗi khóa là duy nhất. Loại cơ sở dữ liệu NoSQL này được sử dụng như một bộ sưu tập, từ điển, hay một mảng kết hợp,...
Key Value NoSQL Databases tiêu biểu:
- Riak
- Redis
- DynamoDB
- Berkeley DB
Column-based NoSQL database
Dữ liệu được lưu trữ trong database dưới dạng các cột thay vì theo hàng như trong các hệ thống SQL thông thường. Trong đó, mỗi cột được xử lý một cách riêng biệt, giá trị của cơ sở dữ liệu được đặt ở cột đơn và lưu trữ liền kề. Đặc trưng nổi bật của loại cơ sở dữ liệu NoSQL này là mang lại hiệu suất cao cho các truy vấn tổng hợp như AVG, MIN, SUM, COUNT,...
Column Based NoSQL tiêu biểu:
- Hbase
- Cassandra
Document-Oriented NoSQL
Đây là kiểu database lưu trữ và truy xuất dữ liệu dưới dạng một cặp giá trị khóa nhưng phần giá trị sẽ được lưu trữ dưới dạng tài liệu ở định dạng JSON hoặc XML. Loại document này chủ yếu được sử dụng cho các nền tảng blog, hệ thống CMS, phân tích thời gian thực và các ứng dụng thương mại điện tử. Bạn 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.
Document database NoSQL điển hình:
- Amazon SimpleDB
- CouchDB
- MongoDB
Graph-Based NoSQL database
Graph Based (cơ sở dữ liệu kiểu đồ thị) giúp 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 node với mối quan hệ là các cạnh, từng cạnh cho biết mối quan hệ giữa các node ra sao. Trong đó, mỗi node và cạnh sẽ có một mã định danh duy nhất.
Trong đó các bảng được kết nối với nhau ở dạng lỏng lẻo, cơ sở dữ liệu đồ thị có bản chất đa quan hệ. Thông thường Graph Based NoSQL database chủ yếu được sử dụng cho mạng xã hội, dữ liệu không gian, hậu cần.
Graph Based NoSQL databases tiêu biểu:
- Neo4J
- Infinite Graph
- OrientDB
- FlockDB
So sánh SQL và NoSQL
Để hiểu rõ hơn về sự khác nhau của cơ sở dữ liệu SQL và NoSQL, bạn đọc cùng theo dõi bảng so sánh sau đây:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lời kết
Như vậy trong bài viết này, chúng tôi đã giới thiệu những thông tin chi tiết nhất về NoSQL Databases. Hy vọng những tài nguyên này giúp bạn hiểu thêm về cơ sở dữ liệu NoSQL và bắt đầu sử dụng một cách hiệu quả nhất.