Cơ sở dữ liệu NoSQL (hay còn gọi là "không chỉ SQL") lưu trữ dữ liệu khác với các bảng quan hệ. Cơ sở dữ liệu NoSQL có nhiều loại khác nhau dựa trên mô hình dữ liệu của chúng. Các loại chính là tài liệu, khóa-giá trị, cột rộng và đồ thị. Chúng cung cấp các lược đồ linh hoạt và mở rộng quy mô dễ dàng với lượng lớn dữ liệu lớn và tải người dùng cao.
Trong bài viết này, bạn sẽ tìm hiểu cơ sở dữ liệu NoSQL là gì, tại sao (và khi nào!) bạn nên sử dụng cơ sở dữ liệu và cách bắt đầu.
Cơ sở dữ liệu NoSQL là gì?
Khi mọi người sử dụng thuật ngữ "cơ sở dữ liệu NoSQL", họ thường sử dụng nó để chỉ bất kỳ cơ sở dữ liệu phi quan hệ nào. Một số người nói rằng thuật ngữ "NoSQL" là viết tắt của "non-SQL" trong khi những người khác nói rằng nó là viết tắt của "không chỉ SQL". Dù bằng cách nào, hầu hết đều đồng ý rằng cơ sở dữ liệu NoSQL lưu trữ dữ liệu theo cách tự nhiên và linh hoạt hơn. NoSQL, trái ngược với SQL, là một phương pháp quản lý cơ sở dữ liệu, trong khi SQL chỉ là một ngôn ngữ truy vấn, tương tự như ngôn ngữ truy vấn của cơ sở dữ liệu NoSQL.
Các loại cơ sở dữ liệu — NoSQL
Theo thời gian, bốn loại cơ sở dữ liệu NoSQL chính đã xuất hiện: cơ sở dữ liệu tài liệu, cơ sở dữ liệu khóa-giá trị, kho lưu trữ cột rộng và cơ sở dữ liệu đồ thị. Ngày nay, cơ sở dữ liệu đa mô hình cũng đang trở nên khá phổ biến.
Cơ sở dữ liệu hướng tài liệu
Cơ sở dữ liệu hướng tài liệu lưu trữ dữ liệu trong các tài liệu tương tự như các đối tượng JSON (Ký hiệu đối tượng JavaScript). Mỗi tài liệu chứa các cặp trường và giá trị. Các giá trị thường có thể là nhiều loại khác nhau, bao gồm những thứ như chuỗi, số, boolean, mảng hoặc thậm chí các đối tượng khác. Cơ sở dữ liệu tài liệu cung cấp một mô hình dữ liệu linh hoạt, rất phù hợp với các tập dữ liệu bán cấu trúc và thường là phi cấu trúc. Chúng cũng hỗ trợ các cấu trúc lồng nhau, giúp dễ dàng biểu diễn các mối quan hệ phức tạp hoặc dữ liệu phân cấp.
Ví dụ về cơ sở dữ liệu tài liệu là MongoDB và Couchbase. Một tài liệu điển hình sẽ giống như sau:
Đoạn mã
.jpg)
Cơ sở dữ liệu khóa - giá trị
Kho khóa-giá trị là một loại cơ sở dữ liệu đơn giản hơn, trong đó mỗi mục chứa các khóa và giá trị. Mỗi khóa là duy nhất và được liên kết với một giá trị duy nhất. Chúng được sử dụng để lưu trữ bộ nhớ đệm và quản lý phiên và cung cấp hiệu suất cao trong việc đọc và ghi vì chúng có xu hướng lưu trữ mọi thứ trong bộ nhớ. Ví dụ như Amazon DynamoDB và Redis. Dưới đây là một chế độ xem đơn giản về dữ liệu được lưu trữ trong cơ sở dữ liệu khóa-giá trị:
Đoạn mã
.jpg)
Cửa hàng cột rộng
Kho lưu trữ cột rộng lưu trữ dữ liệu trong bảng, hàng và cột động. Dữ liệu được lưu trữ trong bảng. Tuy nhiên, không giống như cơ sở dữ liệu SQL truyền thống, kho lưu trữ cột rộng rất linh hoạt, trong đó các hàng khác nhau có thể có các bộ cột khác nhau. Các cơ sở dữ liệu này có thể sử dụng các kỹ thuật nén cột để giảm dung lượng lưu trữ và nâng cao hiệu suất. Các hàng và cột rộng cho phép truy xuất hiệu quả dữ liệu thưa thớt và rộng. Một số ví dụ về kho lưu trữ cột rộng là Apache Cassandra và HBase. Một ví dụ điển hình về cách dữ liệu được lưu trữ trong một cột rộng như sau:
|
Tên
|
Id
|
Thư điện tử
|
Ngày sinh
|
Thành phố
|
|
Thanh Foo
|
12345
|
foo@bar.com
|
|
Một số thành phố
|
|
Carn Yale
|
34521
|
bar@foo.com
|
12-05-1972
|
|
Cơ sở dữ liệu đồ thị
Cơ sở dữ liệu đồ thị lưu trữ dữ liệu dưới dạng nút và cạnh. Các nút thường lưu trữ thông tin về con người, địa điểm và sự vật (như danh từ), trong khi các cạnh lưu trữ thông tin về mối quan hệ giữa các nút. Chúng hoạt động tốt đối với dữ liệu được kết nối cao, nơi các mối quan hệ hoặc mẫu ban đầu có thể không rõ ràng lắm. Ví dụ về cơ sở dữ liệu đồ thị là Neo4J và Amazon Neptune. MongoDB cũng cung cấp khả năng duyệt đồ thị bằng cách sử dụng giai đoạn $graphLookup của đường ống tổng hợp. Dưới đây là ví dụ về cách lưu trữ dữ liệu:
.jpg)
Cơ sở dữ liệu đa mô hình
Cơ sở dữ liệu đa mô hình hỗ trợ nhiều loại mô hình dữ liệu NoSQL để các nhà phát triển có thể lựa chọn dựa trên yêu cầu ứng dụng của họ. Các cơ sở dữ liệu này có một công cụ cơ sở dữ liệu thống nhất có thể xử lý nhiều mô hình dữ liệu trong một phiên bản cơ sở dữ liệu. Ví dụ như CosmosDB và ArangoDB.
So sánh nhanh các loại cơ sở dữ liệu — NoSQL
Mỗi cơ sở dữ liệu NoSQL cung cấp các tính năng khác nhau. Ví dụ: cơ sở dữ liệu đồ thị có thể phù hợp hơn để phân tích các mối quan hệ và mẫu phức tạp giữa các thực thể, trong khi cơ sở dữ liệu tài liệu cung cấp một cách linh hoạt, tự nhiên hơn để lưu trữ và truy xuất khối lượng dữ liệu lớn tương tự như tài liệu. Việc lựa chọn cơ sở dữ liệu phụ thuộc vào trường hợp sử dụng bạn muốn phát triển.
.jpg)
(Để tìm hiểu thêm, hãy đọc Tìm hiểu các loại cơ sở dữ liệu NoSQL khác nhau.)
Tóm tắt
Cơ sở dữ liệu NoSQL mang lại nhiều lợi ích, bao gồm mô hình dữ liệu linh hoạt, mở rộng theo chiều ngang, truy vấn nhanh như chớp và dễ sử dụng cho các nhà phát triển. Cơ sở dữ liệu NoSQL có nhiều loại khác nhau, bao gồm kho tài liệu, cơ sở dữ liệu khóa-giá trị, kho lưu trữ cột rộng, cơ sở dữ liệu đồ thị và cơ sở dữ liệu đa mô hình.
MongoDB là cơ sở dữ liệu NoSQL phổ biến nhất thế giới. Tìm hiểu thêm về MongoDB Atlas và dùng thử bậc miễn phí.
Bạn hào hứng tìm hiểu thêm khi bạn đã có tài khoản Atlas của riêng mình? Truy cập Đại học MongoDB, nơi bạn có thể được đào tạo trực tuyến miễn phí từ các kỹ sư MongoDB và kiếm được chứng chỉ MongoDB. Khởi động nhanh là một nơi tuyệt vời khác để bắt đầu; Chúng sẽ giúp bạn thiết lập và chạy nhanh chóng với ngôn ngữ lập trình yêu thích của bạn.
Thầy Ngô Bá Thành - Giảng viên Khoa CNTT-ĐT