Chương 1: TỔNG QUAN 19 thông tin nhân viên và khách hàng… Để thực hiện được các vấn đề trên thì ta sử dụng APIs, và kết nối APIs để hiển thị cho người dùng bằng ReactJS. Chương 2: CƠ SỞ LÝ THUYẾT 20 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Cơ sở dữ liệu SQL Cơ sở dữ liệu SQL (Ngôn ngữ truy vấn có cấu trúc) là một hệ thống quản lý cơ sở dữ liệu quan hệ phổ biến và mạnh mẽ. SQL cho phép tạo, sắp xếp, truy vấn và quản lý dữ liệu.
Người dùng có thể tương tác với cơ sở dữ liệu bằng các lệnh SELECT, INSERT, UPDATE và DELETE. SQL sử dụng cấu trúc bảng cấu trúc và quan hệ giữa các bảng thông qua khóa ngoại. Nó được sử dụng rộng rãi trong các hệ thống thông tin doanh nghiệp, ứng dụng web và di động. SQL cung cấp tính bảo mật, độ tin cậy và hiệu suất cao.
Nó được hỗ trợ bởi nhiều hệ thống quản lý cơ sở dữ liệu như MySQL, PostgreSQL, Oracle và SQL Server. SQL vẫn tiếp tục đóng vai trò quan trọng trong quản lý và truy xuất hiệu quả dữ liệu. MySQL MySQL là một hệ quản trị cơ sở dữ liệu phổ biến và mạnh mẽ, được sử dụng rộng rãi trên nhiều nền tảng. Đây là một hệ quản trị cơ sở dữ liệu mã nguồn mở và miễn phí, phát triển bởi một cộng đồng người dùng đông đảo.
Các tính năng của MySQL: ● MySQL hỗ trợ ngôn ngữ truy vấn SQL (Structured Query Language) mạnh mẽ, giúp thực hiện các thao tác truy vấn và quản lý dữ liệu dễ dàng. ● Nó hỗ trợ mô hình hóa dữ liệu quan hệ (relational data model) và hỗ trợ các khóa ngoại (foreign keys) để duy trì tính toàn vẹn dữ liệu. ● MySQL có khả năng xử lý dữ liệu lớn và hiệu suất cao, giúp xử lý tải công việc nặng và đáp ứng cho các ứng dụng có lưu lượng truy cập cao. ● Nó cung cấp tính năng đa người dùng và quyền truy cập kiểm soát, cho phép quản trị viên thiết lập các quyền truy cập và giới hạn cho người dùng.
● MySQL hỗ trợ các tính năng bảo mật như mã hóa dữ liệu, xác thực người dùng và kiểm tra tính toàn vẹn dữ liệu Ưu điểm của MySQL: Chương 2: CƠ SỞ LÝ THUYẾT 21 ● MySQL là một hệ quản trị cơ sở dữ liệu miễn phí và mã nguồn mở, giúp giảm chi phí cho việc triển khai và sử dụng. ● Nó có cộng đồng người dùng đông đảo, nơi người dùng có thể tìm kiếm hỗ trợ và chia sẻ kiến thức với nhau. ● MySQL cung cấp khả năng mở rộng dễ dàng, cho phép thêm các máy chủ cơ sở dữ liệu mới và phân chia công việc để tăng hiệu suất và khả năng chịu tải. ● Nó được hỗ trợ trên nhiều nền tảng và hệ điều hành, bao gồm Windows, Linux và macOS.
Nhược điểm của MySQL: ● MySQL có hạn chế về tính năng so với các hệ quản trị cơ sở dữ liệu cao cấp khác như Oracle hoặc SQL Server. ● Một số tính năng tiên tiến như quản lý nhân viên, quản lý kho hay khả năng phân tích dữ liệu phức tạp có thể hạn chế trong MySQL. ● Hiệu suất của MySQL có thể bị ảnh hưởng trong một số tình huống khi cơ sở dữ liệu trở nên rất lớn hoặc có lưu lượng truy cập cao. Spring Spring là một framework Java phổ biến được sử dụng rộng rãi để phát triển ứng dụng doanh nghiệp.
Nó cung cấp các tính năng như Dependency Injection, quản lý giao dịch, xử lý ngoại lệ và nhiều hơn nữa. Các lợi ích của Spring bao gồm sự tách biệt giữa logic kinh doanh và phần cài đặt kỹ thuật, giải mã boilerplate, tăng năng suất và có một cộng đồng hỗ trợ lớn. Spring Boot Spring Boot là một framework dựa trên Java được thiết kế để đơn giản hóa việc phát triển các ứng dụng độc lập và chất lượng cao. Nó cung cấp một cách tiếp cận theo quy ước hơn là cấu hình, giảm bớt mã boilerplate và cho phép các nhà phát triển nhanh chóng tạo ra các ứng dụng mạnh mẽ và có khả năng mở rộng.
Các tính năng chính của Spring boot bao gồm: Chương 2: CƠ SỞ LÝ THUYẾT 22 - Tự động cấu hình: Spring Boot tự động cấu hình các thành phần khác nhau dựa trên các phụ thuộc và giá trị mặc định hợp lý. Điều này loại bỏ một phần lớn việc cấu hình thủ công cần thiết trong các ứng dụng Spring truyền thống. - Máy chủ nhúng: Spring Boot bao gồm một máy chủ servlet nhúng (ví dụ: Tomcat, Jetty) cho phép ứng dụng chạy như các tệp JAR độc lập mà không cần triển khai lên máy chủ riêng biệt. - Spring Data JPA: Spring Boot tích hợp với Spring Data JPA, giúp đơn giản hóa việc tương tác với cơ sở dữ liệu bằng cung cấp một API nhất quán và dễ sử dụng để làm việc với các cơ sở dữ liệu khác nhau.
- Spring Security: Spring Boot tích hợp với Spring Security, cho phép nhà phát triển thêm các tính năng xác thực và ủy quyền vào ứng dụng của họ với cấu hình tối thiểu. - Hỗ trợ cho kiến trúc microservices: Spring Boot rất phù hợp cho việc xây dựng kiến trúc microservices. Nó cung cấp các tính năng như phát hiện dịch vụ, cấu hình phân tán và bộ chia mạch thông qua tích hợp với Spring Cloud. Khái niệm React là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook.
Nó là một công cụ mạnh mẽ để xây dựng giao diện người dùng tương tác cho các ứng dụng web và di động. Đặc trưng chính của React là kiến trúc dựa trên thành phần (component-based architecture), trong đó giao diện người dùng được chia thành các thành phần nhỏ, độc lập và tái sử dụng. Khái niệm cơ bản của React là sử dụng các thành phần (components) để xây dựng giao diện người dùng. Mỗi thành phần đại diện cho một phần của giao diện, có thể là một khung hình, một nút nhấn, một danh sách, hoặc thậm chí một trang đầy đủ.
Các thành phần này có thể được xây dựng bằng cách kết hợp các thành phần nhỏ hơn và được sắp xếp thành một cây thành phần phức tạp. Chương 2: CƠ SỞ LÝ THUYẾT 23 Một ưu điểm quan trọng của React là khả năng tái sử dụng các thành phần. Nhờ vào kiến trúc thành phần, các thành phần có thể được sử dụng lại trong nhiều nơi khác nhau trong ứng dụng. Điều này giúp tối ưu quy trình phát triển, giảm thiểu việc viết lại mã và giữ cho mã nguồn dễ bảo trì.
Bên cạnh đó, react cũng sử dụng Virtual DOM (DOM ảo) để cải thiện hiệu suất. Thay vì tương tác trực tiếp với DOM thực tế, React tạo ra một bản sao của DOM gọi là Virtual DOM. Khi trạng thái của thành phần thay đổi, React so sánh Virtual DOM mới với Virtual DOM cũ và chỉ cập nhật những phần thay đổi tương ứng trên DOM thực tế. Điều này giúp tối ưu quá trình cập nhật giao diện và tăng tốc độ hiển thị.
Không chỉ là một thư viện giao diện người dùng, React còn tích hợp tốt với các thư viện và framework khác, cho phép xây dựng ứng dụng web phức tạp và linh hoạt. Ngoài ra, React cũng có một cộng đồng phát triển lớn, với nhiều tài liệu và công cụ hỗ trợ. Tổng thể, React là một công cụ mạnh mẽ để xây dựng giao diện người dùng tương tác, với kiến trúc dựa trên thành phần, khả năng tái sử dụng và sử dụng Virtual DOM để cải thiện hiệu suất. Component-based Architecture (Kiến trúc dựa trên thành phần) Kiến trúc dựa trên thành phần (Component-based Architecture) là một khía cạnh quan trọng của React.
Được xây dựng trên triết lý "Chia để trị" (Divide and Conquer), kiến trúc này tách giao diện người dùng thành các thành phần nhỏ hơn, mỗi thành phần đảm nhận một chức năng cụ thể trong ứng dụng. Mỗi thành phần trong React đóng vai trò như một khối xây dựng độc lập, chứa mã JavaScript, HTML và CSS của riêng nó. Điều này giúp phát triển giao diện, việc quản lý mã nguồn, tái sử dụng mã và phát triển song song một cách dễ dàng. Việc sắp xếp thành phần thành cây thành phần giúp tạo ra sự tổ chức rõ ràng.
Thành phần cha có thể truyền dữ liệu và chức năng xuống các thành phần con thông qua props, tạo sự kết nối và tương tác linh hoạt giữa các thành phần. Mỗi thành phần có trạng thái (state) riêng, cho phép nắm bắt và quản lý dữ liệu của riêng nó. Điều này giúp tăng tính tương tác trong việc xử lý dữ liệu và cập nhật giao diện. Chương 2: CƠ SỞ LÝ THUYẾT 24 Kiến trúc dựa trên thành phần trong React cung cấp một cách tiếp cận tổ chức và quản lý giao diện người dùng hiệu quả.
Nó giúp tách biệt logic của ứng dụng và giao diện người dùng, tạo điều kiện cho việc phát triển độc lập và tái sử dụng thành phần, đồng thời cung cấp sự tương tác và linh hoạt trong quá trình phát triển ứng dụng React. Virtual DOM (DOM ảo) Virtual DOM hay DOM ảo là một bản sao của DOM thực tế được React tạo ra và sử dụng để quản lý người dùng. Khi trạng thái của các thành phần trong React thay đổi, React sẽ tạo ra một Virtual DOM mới, so sánh nó với Virtual DOM cũ và xác định các phần cần cập nhật trên DOM thực tế. Thay vì tương tác trực tiếp với DOM thực tế - một quá trình tốn kém và mất nhiều hiệu năng, React sử dụng Virtual DOM để cập nhật giao diện một cách hiệu quả.
Qua quá trình so sánh, React chỉ cập nhật những phần thay đổi duy nhất trên DOM thực tế. Điều này giúp tối ưu hóa hiệu suất, giảm thiểu tác động lên DOM và làm cho ứng dụng chạy mượt hơn. Sử dụng Virtual DOM cũng giúp đơn giản hóa quá trình phát triển. Lập trình viên có thể tạo và chỉnh sửa các thành phần trong Virtual DOM, mà không cần phải quan tâm đến việc trực tiếp tương tác với DOM thực tế.
Khi các thay đổi được áp dụng trên Virtual DOM, React sẽ tự động áp dụng các cập nhật tương ứng lên DOM thực tế một cách hiệu quả. State management Khi xây dựng ứng dụng phức tạp, việc quản lý trạng thái của các thành phần trở nên phức tạp hơn. Đó là lúc State Management đóng vai trò quan trọng trong việc tổ chức và điều khiển trạng thái của ứng dụng. State trong React đại diện cho trạng thái của một thành phần hoặc toàn bộ ứng dụng.
Nó bao gồm các dữ liệu có thể thay đổi trong quá trình chạy, chẳng hạn như thông tin người dùng nhập, trạng thái hiển thị, hoặc dữ liệu từ API.