CHƯƠNG 2: Cơ sở lý thuyết
2.5 Giới thiệu về MongoDB
MongoDB là một hệ quản trị cơ sở dữ liệu (Database Management System
- DBMS) phi tuyến tính (NoSQL) phổ biến, được phát triển bởi MongoDB, Inc.
Nó được thiết kế để lưu trữ và quản lý dữ liệu trong các tài liệu JSON tương tự với BSON (Binary JSON), cho phép lưu trữ dữ liệu có cấu trúc linh hoạt và mở rộng
dễ dàng. Dưới đây là một số điểm chính về MongoDB:
Cấu trúc dữ liệu linh hoạt: MongoDB không yêu cầu cấu trúc cố định cho dữ
liệu, cho phép bạn lưu trữ các tài liệu với các trường khác nhau trong cùng một bộ sưu tập (collection). Điều này rất hữu ích cho các ứng dụng có dữ liệu thay đổi thường xuyên.
Tài liệu JSON/BSON: Dữ liệu trong MongoDB được biểu diễn dưới dạng các tài
liệu JSON (JavaScript Object Notation) hoặc BSON (Binary JSON), là một phiên bản nhị phân của JSON. Điều này giúp MongoDB hiệu quả hơn trong việc lưu trữ
và truy xuất dữ liệu so với các hệ quản trị cơ sở dữ liệu SQL truyền thống.
Copies for internal use only in Phenikaa University
Mã nguồn mở và cộng đồng mạnh mẽ: MongoDB là một dự án mã nguồn mở
với một cộng đồng lớn của các nhà phát triển và người dùng. Điều này đồng nghĩa với việc có sẵn nhiều tài liệu, tài liệu học tập và hỗ trợ từ cộng đồng.
Tích hợp dễ dàng: MongoDB cung cấp các giao diện và thư viện cho nhiều ngôn
ngữ lập trình, bao gồm Python, Node.js, Java, và nhiều ngôn ngữ khác. Điều này giúp phát triển ứng dụng dễ dàng và linh hoạt.
Replication và Sharding: MongoDB hỗ trợ sao chép dữ liệu (replication) và chia
nhỏ dữ liệu (sharding) để tăng tính sẵn sàng và khả năng mở rộng của hệ thống. Điều này rất hữu ích cho các ứng dụng đòi hỏi độ tin cậy và khả năng mở rộng cao.
Query mạnh mẽ: MongoDB hỗ trợ các truy vấn phức tạp và mạnh mẽ, bao gồm
truy vấn theo điều kiện, truy vấn theo mảng, và nhiều tính năng khác để truy xuất
dữ liệu theo cách hiệu quả.
Sử dụng cho nhiều ứng dụng: MongoDB phù hợp cho nhiều loại ứng dụng, bao
gồm các ứng dụng web, ứng dụng di động, phân tích dữ liệu, và nhiều tình huống lưu trữ dữ liệu đa dạng.
Tích hợp bảo mật: MongoDB cung cấp các tính năng bảo mật như xác thực,
quyền hạn truy cập và mã hóa dữ liệu để bảo vệ dữ liệu của bạn.
MongoDB đã trở thành một trong những hệ quản trị cơ sở dữ liệu NoSQL phổ biến nhất trên thị trường, và nó được sử dụng rộng rãi trong nhiều ứng dụng và dự án công nghệ khác nhau.
2.6 MVC
Mô hình MVC (Model-View-Controller) là một kiến trúc phát triển phần mềm phổ biến được sử dụng để tổ chức mã nguồn trong ứng dụng web và các ứng dụng khác. Mô hình này chia ứng dụng thành ba phần chính, mỗi phần có một trách nhiệm cụ thể trong quá trình xây dựng và hoạt động của ứng dụng. Dưới đây
là giới thiệu về ba phần chính của kiến trúc MVC:
Model (M):
Copies for internal use only in Phenikaa University
- Model đại diện cho dữ liệu và quản lý nó. Đây là nơi bạn định nghĩa các cấu trúc dữ liệu, truy cập cơ sở dữ liệu, xử lý logic kinh doanh và cung cấp dữ liệu cho các phần khác của ứng dụng.
- Model không biết gì về cách dữ liệu được hiển thị hoặc được tương tác với người dùng. Nó hoàn toàn độc lập với giao diện người dùng và quyết định cách
dữ liệu nên được lưu trữ và truy xuất.
View (V):
- View là phần của ứng dụng hiển thị dữ liệu cho người dùng. Nó đảm nhận vai trò biểu diễn dữ liệu từ Model và hiển thị nó dưới dạng giao diện người dùng. Các thành phần giao diện, chẳng hạn như trang web, biểu đồ, hoặc các thành phần khác, thuộc về phần này.
- View không chứa logic kinh doanh hoặc dữ liệu thay đổi. Nó chỉ biết cách hiển thị dữ liệu mà Model cung cấp.
Controller (C):
- Controller là trung tâm điều khiển của ứng dụng. Nhiệm vụ của nó là xử lý các yêu cầu từ người dùng và tương tác với Model và View tương ứng. Controller
là nơi thực hiện logic ứng dụng và quyết định cách dữ liệu nên được hiển thị.
- Controller nhận các sự kiện từ View, thực hiện các hành động tương ứng, sau
đó cập nhật Model hoặc View (hoặc cả hai) dựa trên kết quả của các hành động
đó.
Mô hình MVC có nhiều ưu điểm, bao gồm:
- Phân chia trách nhiệm rõ ràng: Nó giúp phân chia trách nhiệm giữa các phần của ứng dụng, làm cho mã nguồn dễ dàng bảo trì và mở rộng.
- Tái sử dụng mã nguồn: Bạn có thể tái sử dụng Model và View trong nhiều phần của ứng dụng hoặc trong các ứng dụng khác.
- Độc lập với giao diện người dùng: Model và Controller không phụ thuộc vào giao diện người dùng cụ thể, cho phép bạn thay đổi giao diện mà không ảnh hưởng đến logic ứng dụng.
- Mô hình MVC đã trở thành một tiêu chuẩn trong phát triển phần mềm và được sử dụng rộng rãi trong các ứng dụng web, ứng dụng di động và nhiều lĩnh vực khác. Tuy nhiên, có nhiều biến thể khác của kiến trúc này như
Copies for internal use only in Phenikaa University
MVVM (Model-View-ViewModel) và MVP (Model-View-Presenter) được
sử dụng trong các ngữ cảnh cụ thể.
Copies for internal use only in Phenikaa University