NoSql là lựa chọn của nhiều tổ chức, doanh nghiệp bởi tính linh hoạt và khả năng mở rộng của nó. NoSql có nhiều loại những tiêu biểu nhất là tài liệu, khóa – giá trị, cột, biểu đồ. Trong bài viết dưới đây BKHOST sẽ cùng bạn tìm hiểu NoSql là gì? Khi nào và tại sao phải sử dụng cơ sở dữ liệu này.
Cơ sở dữ liệu NoSQL là gì?
Thuật ngữ NoSQL được dùng để mô tả một hệ thống quản lý dữ liệu không quan hệ. Rất nhiều người khẳng định rằng NoSql được viết tắt bởi “non SQL” hoặc “not only SQL”. Như vậy có thể thấy có khá nhiều định nghĩa về NoSQL. Tuy nhiên phần lớn đều chung quan điểm rằng NoSQL là cơ sở dữ liệu không lưu trữ dữ liệu ở định dạng bảng quan hệ.
Lịch sử NoSQL
Vào những năm cuối thế kỷ XX, cơ sở dữ liệu NoSQL ra đời. Sự xuất hiện của nó đã mở ra hướng đi mới cho việc lưu trữ dữ liệu. Tất cả những dữ liệu phức tạp, đa dạng về kích thước và hình dáng đều có thể lưu trữ ở NoSQL. Từ dữ liệu có cấu trúc đến bán cấu trúc và cả phi cấu trúc.
Qua nhiều năm phát triển NoSQL đã được ứng dụng trong nhiều lĩnh vực khác nhau. Hiện tại nhiều tổ chức sử dụng NoSQL để cung cấp khả năng mở rộng quy mô phân phối dữ liệu trên điện toán đám mây.
Các tính năng của cơ sở dữ liệu NoSQL
Mỗi NoSQL lại sở hữu những tính năng ưu việt, thể hiện rõ nét riêng và độc đáo. Với những NoSQL cấp độ cao thường có những tính năng vượt trội như: lược đồ linh hoạt, mở rộng quy mô, truy vấn nhanh, dễ sử dụng.
Các loại cơ sở dữ liệu NoSQL
Quá trình phát triển đã cho ra đời bốn loại NoSQL chính, cụ thể:
- Document databases: Đây là loại cơ sở dữ liệu tài liệu lưu trữ và truy xuất dữ liệu dưới dạng một cặp khóa giá trị. Các giá trị đa dạng chẳng hạn như số, chuỗi, đối tượng…
- Key – Value databases: NoSQL loại này khá đơn giản vì mỗi mục của nó chỉ chứa key và value.
- Wide-column stores: Dữ liệu ở NoSQL loại này được lưu trữ trong bảng, cột động và hàng.
- Graph databases: Dữ liệu ở Graph databases được lưu trữ trong các nút và các cạnh.
Sự khác biệt giữa cơ sở dữ liệu RDBMS và NoSQL
Giữa RDBMS (hệ thống quản lý cơ sở dữ liệu quan hệ) và cơ sở dữ liệu NoSQL có nhiều điểm khác biệt. Tuy nhiên yếu tố quan trọng nhất để phân biệt chúng là ở cách dữ liệu được mô hình hóa trong cơ sở dữ liệu.
Ví dụ về mô hình hóa dữ liệu ở RDBMS và NoSQL
Hãy cùng chúng tôi quan sát và xem xét một ví dụ về mô hình hóa giữa liệu giữa RDBMS và NoSQL. Dưới đây là dữ liệu về thông tin và sở thích của người dùng gồm các yếu tố được lưu trữ: tên, họ, số điện thoại, nơi ở, sở thích. Với hệ thống cơ sở dữ liệu quan hệ RDBMS chúng tôi sẽ chia hai thành hai bảng như sau:
Bảng dành cho người dùng:
ID | first_name | last_name | cell | city |
---|---|---|---|---|
1 | Leslie | Yepp | 8125552344 | Pawnee |
Bảng dành cho sở thích:
ID | user_id | hobby |
---|---|---|
10 | 1 | scrapbooking |
11 | 1 | eating waffles |
12 | 1 | working |
Như vậy có thể thấy ở RDBMS bạn cần phải kết hợp hai bảng trên lại với nhau thì mới có thể truy xuất được tất cả những thông tin liên quan đến người dùng và sở thích của họ.
Cách lưu trữ thông tin về người dùng và sở thích của họ ở NoSQL lại khác hoàn toàn với RDBMS. Bạn sẽ thấy rõ điều đó ở cách mà cơ sở dữ liệu MongoDB thực hiện:
{{EJS0}}
Qua ví dụ trên ta có thể thấy với NoSQL bạn sẽ truy xuất thông tin và sở thích của người dùng nhanh chóng, đơn giản và không cần đên bất cứ một yêu cầu liên kết nào. Đó chính là thế mạnh khiến NoSQL phát triển và ngày càng được sử dụng rộng rãi.
Sự khác biệt khác giữa RDBMS và NoSQL
Thông qua ví dụ ở trên chúng ta đã thấy rõ sự khác nhau về mô hình dữ liệu giữa RDBMS và NoSQL. Ngoài điểm đặc biệt đó thì giữa hai loại này còn tồn tại nhiều khác biệt quan trọng có thể kể đến như: tính linh hoạt của lược đồ, kỹ thuật chia tỷ lệ, hỗ trợ giao dịch…
Tại sao nên sử dụng NoSQL?
Hiện tại NoSQL được ứng dụng rộng rãi ở đa dạng các lĩnh vực. Người ta sử dụng nó để lưu trữ dữ liệu quan trọng như dữ liệu tài chính, hồ sơ chăm sóc sức khỏe. Bên cạnh đó NoSQl còn được các tổ chức sử dụng như một công cụ để lưu trữ các loại dữ liệu bình thường, có thể công khai với cộng đồng.
Khi nào nên sử dụng NoSQL?
Người dùng sẽ cân nhắc nhu cầu, mục đích để chọn cơ sở dữ liệu phù hợp. Thông thường những yếu tố sau đây sẽ tác động để họ chọn NoSQL làm công cụ lưu trữ dữ liệu cho bản thân hoặc tổ chức:
- Khi nhà phát triển mong muốn phát triển Agile hiện đại với tốc độ nhanh.
- Khi muốn lưu trữ dữ liệu có cấu trúc, bán cấu trúc.
- Lượng dữ liệu cần lưu trữ quá lớn, vượt quá mức cho phép của cơ sở dữ liệu quan hệ.
- Cần một hệ thống có quy mô lớn, khả năng mở rộng lưu lượng truy cập.
- Cần sự hỗ trợ của mô hình ứng dụng hiện đại như microservices và cần tích hợp với những công nghệ phát trực tuyến thời gian thực.
Nhận thức sai về cơ sở dữ liệu NoSQL
Trong thời gian qua, cộng đồng nhà phát triển đã có những quan niệm sai về cơ sở dữ liệu NoSQL. Chính điều này đã tác động không nhỏ tới uy tín của NoSQL. Hai quan niệm sai lầm phổ biến nhất có thể kể đến như:
- Dữ liệu mối quan hệ không được lưu trữ tốt ở NoSQL. Thực tế cho thấy cơ sở dữ liệu NoSQL hoàn toàn lưu trữ tốt dữ liệu mối quan hệ, nó chỉ khác với RDBMS ở cách lưu trữ.
- Các giao dịch ACID không được cơ sở dữ liệu NoSQL hỗ trợ. Thế nhưng qua khảo sát thực tế thì một số sơ sở dữ liệu NoSQL như MongoDB lại có tính năng hỗ trợ các giao dịch ACID.
Hướng dẫn truy vấn NoSQL
NoSQL có nhiều loại, trong phạm vi bài viết ngắn chúng tôi chỉ hướng dẫn cách truy vấn với MongoDB. Loại NoSQL này được DB – Engines đánh giá là phổ biến nhất thế giới.
Xác thực với MongoDB Atlas
- Điều hướng đến MongoDB Atlas tại đây.
- Lập tài khoản nếu chưa có: link
- Đăng nhập tại đây.
- Tạo một tổ chức và dự án Atlas.
Tạo một cụm trong MongoDB
Cụm là một vị trí để bạn lưu trữ dữ liệu ở MongoDB. Cách tạo khá đơn giản, có thể sử dụng cách thủ công hoặc dùng ngôn ngữ lập trình để tạo một cụm. Khi đã tạo thành công dữ liệu của bạn sẽ bắt đầu được lưu trữ.
Truy vấn cơ sở dữ liệu
Để truy vấn dữ liệu bạn cũng có nhiều tùy chọn khác nhau. Bạn có thể truy vấn thủ công bằng Atlas Data Explorer, MongoDB Shell, MongoDB Compass hoặc dùng ngôn ngữ lập trình mà bạn thành thạo nhất. Trong hướng dẫn này chúng tôi mô tả truy vấn bằng Atlas Data Explorer:
Bước 1: Điều hướng đến Data Explorer xuất hiện bảng điều khiển.
Bước 2: Click vào sample – mflix ở bên trái trong bảng điều khiển sẽ hiển thị các bộ sưu tập của cơ sở dữ liệu.
Bước 3: Chọn bộ sưu tập movies, lúc này ở bên phải bảng sẽ hiển thị 20 kết quả tìm thấy đầu tiên.
Bước 4: Hãy truy vấn bộ phim “Pride and Prejudice” bằng cách nhập { title: “Pride and Prejudice”} vào thanh Filter và nhấn Apply. Kết quả là bạn đã truy vấn thành công cơ sở dữ liệu NoSQL.
Data Explorer
Bạn có thể thực hiện nhiều tác vụ trong MongoDB và Atlas bằng Data Explorer như thêm, chỉnh sửa và xóa tài liệu. Ngoài ra bạn có thể mở chế độ MongoDB Charts để trực quan hóa dữ liệu của mình. Trường hợp muốn thực hiện những truy vấn nâng cao thì tốt nhất là tạo đường dẫn tổng hợp. Công cụ này giúp ích rất lớn trong việc phân tích dữ liệu cho bạn.
Tổng kết về NoSQL
Tóm lại cơ sở dữ liệu NoSQL là một lựa chọn tốt cho các cá nhân và tổ chức. Hy vọng với những kiến thức mà chúng tôi cung cấp sẽ giúp bạn cân nhắc kỹ lưỡng để có quyết định đúng đắn.
Nếu bạn có thắc mắc về NoSQL, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
- nosql database
- nosql là gì