MỞ ĐẦU 1.1 Vấn đề thực tế và lý do chọn đề tài Ngày nay, nền kinh tế ngày càng phát triển, thị trường kinh doanh ngày căng mở rộng với một kho dữ liệu lớn. Kỉ nguyên công nghệ đang phát triển như vũ bão và trung tâm của kỉ nguyên ngày chính là dữ liệu số. Để giữ vững nền kinh tế doanh nghiệp và phát triển hơn nữa thì việc phân tích dữ liệu ngày càng quan trọng, hỗ trợ doanh nghiệp đưa ra các quyết định kinh doanh hiệu quả và đúng đắn, từ đó gia tăng lợi thế về cạnh tranh trên thị trường. Yêu cầu phân tích dữ liệu cao tuy nhiên cơ sở dữ liệu thông thường không đáp ứng đủ.
Các cơ sở dữ liệu nghiệp vụ (operational database) hoặc hệ thống xử lí giao dịch thời gian thực (online transaction processing – OLTP) chỉ thỏa mãn được những nghiệp vụ hang ngày và đảm bảo toàn vẹn dữ liệu, truy cập song song và xử lí các dữ liệu nhanh. Nền công nghệ ngày càng phát triển đòi hỏi các doanh nghiệp cần nhanh chóng đổi mới, áp dụng công nghệ vào hệ thống kinh doanh thông minh để thuận tiện cho việc quản lí và phân tích kinh doanh. Phân tích dữ liệu bán hàng giúp cho doanh nghiệp có được cái nhìn bao quát và chi tiết nhất về các sản phẩm mình đang kinh doanh, từ đó có những định hướng tốt hơn cho những phát triển tương lai. Để giải quyết các vấn đề và yêu cầu đó, hệ thống kinh doanh thông Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 5 minh với một mô hình dữ liệu được chuẩn hóa cấu trúc sẽ đem lại hiệu quả cao hơn rất nhiều.
Từ đó em lựa chọn đề tài " Xây dựng hệ thống quản lí đơn hàng cho công ty sản xuất xe đạp" làm đề tài nghiên cứu cho đồ án tốt nghiệp của bản thân.2 Mục tiêu và nội dung nghiên cứu Sau khi hoàn thành đồ án phân tích dữ liệu, em sẽ hoàn thành được các mục đích sau: - Nắm được cái khái niệm cơ bản về Phân tích dữ liệu (Data Analysis), Trí Tuệ kinh doanh (Business Intelligence), Phân tích kinh doanh (Business Data Analysis) theo ngôn ngữ thực tế và mô phỏng quy trình một cách trực quan, sinh động. - Nắm được các khái niệm OLAP và OLTP và minh họa được trên dữ liệu thực tế. - Ứng dụng rõ ràng các khái niệm trên vào triển khai công việc thực tiễn. - Làm chủ được các công cụ trực quan hóa dữ liệu Power BI cho việc Phân tích dữ liệu.
- Phân biệt được ưu nhược điểm của các loại công cụ PowerBI, Hệ quản trị CSDL để lựa chọn được giải pháp trong thực tế. - Học được cách phân tích và xây dựng hệ thống, làm website 1.2 Một số khái niệm cơ bản 1.1 Tổng quan về Web a) Định nghĩa Web (World Wide Web viết tắt là WWW): là một hệ thống thông tin toàn cầu dựa trên internet, nó cho phép người dùng truy cập và chia sẻ thông tin qua các trình duyệt web. Web là một mạng lưới các tài liệu liên kết với nhau thông Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 6 qua các liên kết siêu văn bản (hyperlink). Không những thế nó còn cho phép người dùng duyệt và tương tác với các trang web, các ứng dụng web, các tệp tin đa phương tiện (hình ảnh, video, âm thanh), và các dịch vụ trực tuyến khác.
Web được xây dựng trên giao thức HTTP (Hypertext Transfer Protocol) để truyền tải dữ liệu giữa máy chủ web và trình duyệt web. Mỗi trang web có một địa chỉ duy nhất, được gọi là URL (Uniform Resource Locator), để người dùng có thể truy cập vào nội dung cụ thể của trang web đó. Các thành phần cơ bản của một trang web bao gồm: - HTML (Hypertext Markup Language): Ngôn ngữ đánh dấu siêu văn bản để xây dựng nội dung và cấu trúc của trang web. - JavaScript: Ngôn ngữ lập trình để tạo ra các hiệu ứng tương tác và chức năng động trên trang web.
- CSS (Cascading Style Sheets): Ngôn ngữ định dạng để định kiểu và trình bày trang web. Web đã thay đổi cách chúng ta tìm kiếm thông tin, giao tiếp, mua sắm và làm việc. Nó đã trở thành một phần không thể thiếu trong đời sống hàng ngày và đóng vai trò quan trọng trong việc kết nối mọi người trên toàn cầu. b) Một số mô hình Web: Mô hình Client-Server Đây là mô hình web cơ bản nhất, trong đó máy chủ (server) cung cấp dữ liệu và các dịch vụ cho các máy khách (client) thông qua giao thức HTTP.
Khi client gửi yêu cầu đến máy chủ và máy chủ trả về kết quả tương ứng. Mô hình này cho phép tách biệt giữa phần giao diện người dùng (client-side) và phần xử lý dữ liệu (server-side). Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 7 Hình 1.1: Mô hình Client-Server - Máy khách (Client): Máy khách là phần giao diện người dùng của ứng dụng. Client chịu trách nhiệm hiển thị thông tin cho người dùng và chấp nhận đầu vào từ họ.
Nó có thể là trình duyệt web, ứng dụng di động hoặc bất kỳ ứng dụng nào tương tác trực tiếp với người dùng. Máy khách gửi yêu cầu đến máy chủ và nhận kết quả từ máy chủ để hiển thị cho người dùng. - Máy chủ (Server): Máy chủ là nơi lưu trữ và xử lý dữ liệu cũng như cung cấp các dịch vụ cho máy khách. Nó có thể là một máy chủ vật lý hoặc một môi trường đám mây.
Máy chủ nhận yêu cầu từ máy khách, xử lý yêu cầu đó và trả về kết quả tương ứng. Nó có thể thực hiện các tác vụ như xử lý dữ liệu, truy xuất cơ sở dữ liệu, xử lý logic kinh doanh và trả về dữ liệu được yêu cầu. Thông qua mô hình Client-Server, máy khách và máy chủ có thể hoạt động độc lập và chia sẻ dữ liệu thông qua giao thức mạng. Mô hình này cho phép tách biệt giao diện người dùng (client-side) và xử lý logic (server-side), điều này mang lại nhiều lợi ích bao gồm: - Tính mở rộng: Mô hình Client-Server cho phép mở rộng hệ thống bằng cách thêm các máy chủ để xử lý công việc tăng lên hoặc tải cân bằng giữa các máy Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 8 chủ.
- Bảo mật: Máy chủ có thể thực hiện các biện pháp bảo mật để bảo vệ dữ liệu và người dùng trước - Tính linh hoạt: Với phân chia rõ ràng giữa client và server, ta có thể thay đổi hoặc nâng cấp một phần của hệ thống mà không ảnh hưởng đến phần còn lại. Mô hình Single-Page Application (SPA) Hình 1.2: Mô hình Single-Page Application (SPA) Trong mô hình này, tất cả các tài nguyên cần thiết (HTML, CSS, JavaScript) được tải xuống từ máy chủ trong một lần duy nhất khi trang web được truy cập ban đầu. Sau đó, các thay đổi và tương tác trên trang web được xử lý mà không cần tải lại trang hoặc điều hướng mới. Điều này tạo ra một trải nghiệm tương tự ứng dụng máy tính, với khả năng tương tác nhanh và mượt mà hơn.
Các lợi ích của mô hình SPA bao gồm: - Tăng trải nghiệm người dùng: Với SPA, người dùng trải nghiệm một ứng dụng tương tự như các ứng dụng máy tính với khả năng tương tác mượt mà và thân thiện. Không có sự gián đoạn khi tải lại toàn bộ trang, điều này tạo ra trải nghiệm liền mạch và nhanh chóng. - Tải nhanh và tiết kiệm băng thông: Do chỉ cần tải về một lần ban đầu, SPA giảm thiểu thời gian tải trang và tiết kiệm băng thông mạng. Chỉ cần cập nhật dữ liệu và các thành phần cần thiết, giúp giảm tải cho máy chủ và cải thiện hiệu Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 9 suất.
- Phân chia rõ ràng giữa client và server: SPA cho phép tách biệt rõ ràng giữa phần giao diện người dùng (client-side) và phần xử lý dữ liệu (server-side). Việc này giúp tái sử dụng mã và quản lý dễ dàng hơn. - Cải thiện UX: Với SPA, có thể tạo ra các hiệu ứng tương tác, chuyển động mượt mà và trải nghiệm đáng chú ý khác để cung cấp trải nghiệm người dùng tốt hơn. Tuy nhiên, mô hình SPA cũng có nhược điểm như khả năng SEO thấp (do không có các trang riêng biệt) và yêu cầu khả năng Mô hình Microservices Hình 1.3: Mô hình Microservices Trong mô hình này, ứng dụng web được chia thành các thành phần nhỏ hơn gọi là microservices, mỗi microservice đảm nhận một nhiệm vụ cụ thể trong ứng dụng.
Mỗi microservice có thể được phát triển và triển khai độc lập, cho phép linh hoạt và mở rộng hệ thống. Các microservice giao tiếp với nhau thông qua giao thức HTTP hoặc các giao thức khác. Các đặc điểm của mô hình Microservices bao gồm: - Phân tách chức năng: Ứng dụng được chia thành các microservices độc Downloaded by Toilatoi Nguyen (phamhalinh.com) lOMoARcPSD|38542684 10 lập nhau, mỗi microservice có một chức năng cụ thể. Ví dụ, một microservice có thể xử lý việc đăng nhập, một microservice khác quản lý giỏ hàng, và một microservice khác xử lý thanh toán.
Sự phân tách này giúp tách biệt chức năng và phát triển mỗi microservice một cách độc lập. - Độc lập triển khai và mở rộng: Mỗi microservice có thể được triển khai và mở rộng độc lập. Điều này giúp tăng tính linh hoạt và khả năng mở rộng của hệ thống. Bạn có thể triển khai và mở rộng các microservice chỉ khi cần thiết, mà không cần phải triển khai toàn bộ ứng dụng.
- Giao tiếp thông qua giao thức: Các microservice giao tiếp với nhau thông qua giao thức mạng như HTTP, giao thức message queue hoặc giao thức RPC (Remote Procedure Call). Điều này cho phép các microservice trao đổi dữ liệu và tương tác với nhau. - Tái sử dụng và quản lý dễ dàng: Mô hình Microservices khuyến khích việc tái sử dụng mã nguồn và các thành phần đã phát triển. Mỗi microservice có thể được phát triển, triển khai và quản lý độc lập, giúp dễ dàng bảo trì và nâng cấp ứng dụng.
- Khả năng mở rộng: Với mô hình Microservices, bạn có thể mở rộng các microservice một cách độc lập dựa trên yêu cầu và tải công việc. Chỉ cần mở rộng các microservice cần thiết, giúp tối ưu hiệu suất và tài nguyên. Mô hình Microservices cho phép phân chia ứng dụng thành các thành phần nhỏ hơn, linh hoạt và dễ quản lý. Tuy nhiên, việc triển khai và quản lý nhiều microservices cần đảm bảo khả năng kiểm soát Mô hình Serverless Mô hình Serverless cho phép phát triển ứng dụng web mà không cần quản lý cơ sở hạ tầng máy chủ.
Thay vì tự quản lý máy chủ, các dịch vụ đám mây như AWS Lambda hay Azure Functions được sử dụng để chạy mã và xử lý các yêu cầu từ người dùng. Mô hình này giúp giảm bớt công việc quản lý cơ sở hạ tầng và tăng tính mở rộng linh hoạt.