=
=

Bài 1: Giới thiệu Node.js (NodeJS) và MongoDB

Giới thiệu Node.js (NodeJS)

Node.js là gì?

Tại sao phải dùng Node.js?

Node.js sử dụng lập trình không đồng bộ.

Một nhiệm vụ phổ biến đối với máy chủ web (web server) có thể là mở một tập tin trên máy chủ và trả lại nội dung cho máy khách (web client - browser). Ví dụ cách PHP hoặc ASP xử lý yêu cầu tập tin:

Đây là cách Node.js xử lý yêu cầu tập tin:

Node.js loại bỏ sự chờ đợi và chỉ cần tiếp tục với yêu cầu tiếp theo. Node.js chạy lập trình đơn luồng, không chặn, không đồng bộ, rất hiệu quả về bộ nhớ.

Node.js có thể làm gì?

Tập tin Node.js là gì?

Giới thiệu MongoDB

MongoDB là gì?

MongoDB, cơ sở dữ liệu NoSQL phổ biến nhất, là cơ sở dữ liệu hướng tài liệu (document-oriented database) mã nguồn mở. Thuật ngữ "NoSQL" có nghĩa là "không quan hệ" (non-relational). Điều đó có nghĩa là MongoDB không dựa trên cấu trúc cơ sở dữ liệu quan hệ giống như bảng mà cung cấp một cơ chế hoàn toàn khác để lưu trữ và truy xuất dữ liệu. Định dạng lưu trữ này được gọi là BSON (tương tự như định dạng JSON).

Cơ sở dữ liệu SQL lưu trữ dữ liệu ở định dạng bảng. Dữ liệu này được lưu trữ trong một mô hình dữ liệu được xác định trước, mô hình này không linh hoạt lắm đối với các ứng dụng đang phát triển cao trong thế giới thực ngày nay. Các ứng dụng hiện đại được kết nối mạng, xã hội và tương tác nhiều hơn bao giờ hết. Các ứng dụng đang lưu trữ ngày càng nhiều dữ liệu và đang truy cập nó với tốc độ cao hơn.

Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) không phải là lựa chọn phù hợp khi xử lý dữ liệu lớn (big data) vì chúng không có khả năng mở rộng theo chiều ngang. Nếu cơ sở dữ liệu chạy trên một máy chủ duy nhất, thì nó sẽ đạt đến giới hạn mở rộng. Cơ sở dữ liệu NoSQL có khả năng mở rộng cao hơn và cung cấp hiệu suất vượt trội. MongoDB là một cơ sở dữ liệu NoSQL mở rộng quy mô bằng cách thêm ngày càng nhiều máy chủ và tăng năng suất với mô hình tài liệu linh hoạt của nó.

So sánh RDBMS và MongoDB

Các đặc trưng của MongoDB

Khi nào dùng MongoDB?

MongoDB được ưu tiên sử dụng trong các trường hợp:

Các ứng dụng thực tế dùng Node.js và MongoDB

Cả Node và MongoDB đều cực kỳ phổ biến và tích cực trong cộng đồng phát triển. Điều này cũng đúng với các doanh nghiệp. Một số tên tuổi lớn nhất trong Fortune 500 đã hoàn toàn chấp nhận Node để cung cấp sức mạnh cho các ứng dụng web của họ. Điều này phần lớn là do bản chất không đồng bộ của Node, khiến nó trở thành một giải pháp thay thế tuyệt vời cho các ứng dụng có lưu lượng truy cập cao, I/O cao như các trang web thương mại điện tử và ứng dụng di động.

Đây chỉ là một danh sách nhỏ của một số công ty lớn đang làm việc với Node:

Việc sử dụng MongoDB trong lĩnh vực doanh nghiệp cũng ấn tượng và phổ biến không kém, với ngày càng nhiều công ty dẫn đầu áp dụng máy chủ cơ sở dữ liệu NoSQL. Đây chỉ là một danh sách nhỏ của một số công ty lớn đang làm việc với MongoDB: