Phân tích, Thiết kế và Phát triển Database cho FPT Shop: Đánh giá chi tiết

Phân tích, thiết kế & phát triển database cho FPT Shop. Đánh giá chi tiết quy trình, yêu cầu hệ thống & giải pháp quản lý dữ liệu hiệu quả. Báo cáo môn học.

Trường đại học

TEC

Chuyên ngành

Computing

Người đăng

Ẩn danh

Thể loại

Assignment

2023

43
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Thiết Kế Database Cách Xây Dựng Hệ Thống Mạnh Mẽ

Thiết kế và phát triển database hiệu quả là nền tảng cho mọi ứng dụng hiện đại. Một kiến trúc database được xây dựng tốt đảm bảo tính toàn vẹn dữ liệu, hiệu năng truy vấn cao và khả năng mở rộng linh hoạt. Trong bài viết này, chúng ta sẽ khám phá các khía cạnh quan trọng của thiết kế database, từ phân tích yêu cầu đến triển khai và bảo trì. Mục tiêu là cung cấp một cái nhìn tổng quan toàn diện về quy trình này, giúp bạn xây dựng các hệ thống dữ liệu mạnh mẽ và đáp ứng nhu cầu kinh doanh.

Theo tài liệu tham khảo, FPT Shop đang gặp khó khăn trong việc quản lý database do số lượng cửa hàng tăng lên. Một giải pháp hiệu quả là xây dựng một database mới, cho phép khách hàng đăng ký bằng số điện thoại hoặc email, và mỗi khách hàng được gán cho một nhân viên chăm sóc. Điều này đòi hỏi một thiết kế database rõ ràng và dễ quản lý. Bài viết này sẽ tập trung vào các phương pháp và kỹ thuật để đạt được điều đó, bao gồm cả mô hình hóa dữ liệuchuẩn hóa dữ liệu.

Thiết kế database không chỉ là việc tạo ra các bảng và mối quan hệ. Nó còn là việc hiểu rõ các yêu cầu nghiệp vụ, xác định các thực thể và thuộc tính quan trọng, và đảm bảo rằng database có thể đáp ứng các nhu cầu hiện tại và tương lai. Một database được thiết kế tốt sẽ giúp giảm thiểu sự dư thừa dữ liệu, tăng cường tính nhất quán và cải thiện hiệu năng. Bài viết này sẽ đi sâu vào các khía cạnh này, cung cấp các ví dụ cụ thể và hướng dẫn từng bước để bạn có thể áp dụng vào dự án của mình.

1.1. Phân Tích Yêu Cầu Database Bước Đầu Tiên Quan Trọng

Trước khi bắt tay vào thiết kế lược đồ database, việc phân tích yêu cầu là vô cùng quan trọng. Cần xác định rõ mục tiêu sử dụng database, các chức năng cần thiết, và đối tượng người dùng. Điều này bao gồm việc xác định các thực thể (entity), thuộc tính (attribute), và mối quan hệ (relationship) giữa chúng. Ví dụ, trong trường hợp của FPT Shop, các thực thể có thể bao gồm: Khách hàng, Nhân viên, Sản phẩm, Đơn hàng, v.v. Mỗi thực thể sẽ có các thuộc tính riêng, chẳng hạn như Khách hàng có các thuộc tính: Mã khách hàng, Tên, Địa chỉ, Số điện thoại, Email. Mối quan hệ giữa các thực thể cũng cần được xác định rõ, ví dụ: một Khách hàng có thể có nhiều Đơn hàng.

Quá trình phân tích yêu cầu cũng cần xem xét các quy tắc nghiệp vụ (business rules) chi phối hoạt động của hệ thống. Ví dụ, khách hàng không thể tự thay đổi thông tin đơn hàng, hoặc nhân viên chỉ có thể xem thông tin đơn hàng của khách hàng do mình quản lý. Các quy tắc này cần được phản ánh trong thiết kế database để đảm bảo tính toàn vẹn dữ liệu. Việc sử dụng các công cụ Data modeling tools hỗ trợ việc trực quan hóa và tài liệu hóa các yêu cầu, giúp cho việc trao đổi thông tin giữa các bên liên quan dễ dàng hơn. Cuối cùng, việc xác định các yêu cầu phi chức năng (non-functional requirements) như hiệu năng, bảo mật, khả năng mở rộng cũng rất quan trọng.

1.2. Mô Hình Hóa Dữ Liệu Xây Dựng Mô Hình ERD Hiệu Quả

Mô hình hóa dữ liệu là quá trình tạo ra một biểu diễn trực quan của cấu trúc dữ liệu trong database. Mô hình thực thể liên kết (ERD) là một công cụ phổ biến để thực hiện việc này. ERD sử dụng các ký hiệu để biểu diễn các thực thể, thuộc tính và mối quan hệ. Việc xây dựng ERD giúp cho việc hiểu rõ cấu trúc dữ liệu và mối quan hệ giữa các thực thể trở nên dễ dàng hơn. Ví dụ, FPT Shop, mô hình ERD sẽ bao gồm các thực thể như: Customer, Staffs, Orders, OrderItems, Discounts, Products, Categories, Brands.

Mối quan hệ giữa các thực thể cũng được thể hiện rõ ràng trong ERD. Ví dụ, mối quan hệ giữa Customer và Orders là một-nhiều (1-m), có nghĩa là một khách hàng có thể có nhiều đơn hàng. Tương tự, mối quan hệ giữa Staffs và Orders cũng là một-nhiều, một nhân viên có thể tạo nhiều đơn hàng. Việc xác định đúng các mối quan hệ này là rất quan trọng để đảm bảo tính toàn vẹn dữ liệu và hiệu năng truy vấn. Theo tài liệu gốc, ERD hoàn chỉnh của hệ thống FPT Shop bao gồm 8 thực thể và các mối quan hệ giữa chúng, với OrderItems đóng vai trò là liên kết giữa hai mảng sales và productions. ERD cần được thiết kế một cách cẩn thận, tuân thủ các database design principles như tính đơn giản, rõ ràng và dễ hiểu.

II. Các Thách Thức Thiết Kế Database Giải Quyết Vấn Đề Hiệu Quả

Quá trình thiết kế database không phải lúc nào cũng suôn sẻ. Có nhiều thách thức có thể phát sinh, ảnh hưởng đến hiệu năng, tính bảo mật và khả năng mở rộng của hệ thống. Một trong những thách thức lớn nhất là việc đảm bảo tính nhất quán và toàn vẹn dữ liệu. Dữ liệu không nhất quán có thể dẫn đến các quyết định sai lầm và ảnh hưởng tiêu cực đến hoạt động kinh doanh. Việc chuẩn hóa dữ liệu là một phương pháp hiệu quả để giải quyết vấn đề này, nhưng nó cũng có thể làm tăng độ phức tạp của thiết kế.

Một thách thức khác là việc tối ưu hóa hiệu năng truy vấn. Các truy vấn chậm có thể làm giảm trải nghiệm người dùng và ảnh hưởng đến hiệu quả công việc. Cần phải áp dụng các kỹ thuật tối ưu hóa truy vấn, như tạo chỉ mục, sử dụng SQL Server một cách hợp lý. Bảo mật database cũng là một vấn đề quan trọng cần được quan tâm. Dữ liệu nhạy cảm cần được bảo vệ khỏi các truy cập trái phép và các cuộc tấn công mạng. Việc áp dụng các database security best practices như mã hóa dữ liệu, kiểm soát truy cập, và giám sát hoạt động là rất cần thiết. Cuối cùng, khả năng mở rộng của database cần được xem xét. Khi lượng dữ liệu và số lượng người dùng tăng lên, database cần có khả năng mở rộng để đáp ứng nhu cầu. Việc sử dụng các giải pháp Cloud database có thể là một lựa chọn tốt để giải quyết vấn đề này.

2.1. Rủi Ro Bảo Mật Database Cách Phòng Ngừa Hiệu Quả

Bảo mật database là một khía cạnh quan trọng của thiết kế database. Các rủi ro bảo mật có thể đến từ nhiều nguồn khác nhau, bao gồm cả các cuộc tấn công từ bên ngoài và các hành vi sai trái từ bên trong. Việc xác định và đánh giá các rủi ro bảo mật tiềm ẩn là bước đầu tiên để xây dựng một hệ thống bảo mật hiệu quả. Các biện pháp phòng ngừa cần bao gồm cả các biện pháp kỹ thuật và các biện pháp quản lý. Về mặt kỹ thuật, việc sử dụng mã hóa dữ liệu, kiểm soát truy cập, và giám sát hoạt động là rất quan trọng. Mã hóa dữ liệu giúp bảo vệ dữ liệu nhạy cảm khỏi bị đánh cắp hoặc truy cập trái phép. Kiểm soát truy cập giúp hạn chế quyền truy cập của người dùng vào các tài nguyên database, chỉ cho phép họ truy cập vào những dữ liệu cần thiết cho công việc của mình. Giám sát hoạt động giúp phát hiện các hành vi bất thường và các cuộc tấn công tiềm ẩn.

Về mặt quản lý, cần xây dựng các chính sách và quy trình bảo mật rõ ràng, và đào tạo nhân viên về các rủi ro bảo mật và các biện pháp phòng ngừa. Việc thực hiện kiểm tra bảo mật định kỳ cũng rất quan trọng để đảm bảo rằng các biện pháp bảo mật đang hoạt động hiệu quả. Theo tài liệu, việc bảo vệ thông tin khách hàng hoặc đơn đặt hàng để tránh hành vi trộm cắp và xâm phạm quyền riêng tư là rất quan trọng để khách hàng cảm thấy an toàn khi mua sắm trên hệ thống.

2.2. Hiệu Năng Truy Vấn Kém Bí Quyết Tối Ưu Hóa

Hiệu năng truy vấn là một yếu tố quan trọng ảnh hưởng đến trải nghiệm người dùng và hiệu quả công việc. Các truy vấn chậm có thể gây ra sự chậm trễ và làm giảm năng suất. Việc tối ưu hóa truy vấn là một quá trình liên tục, đòi hỏi sự hiểu biết sâu sắc về cấu trúc database, các chỉ mục, và các câu lệnh SQL. Một trong những kỹ thuật quan trọng nhất là tạo chỉ mục (index) trên các cột thường được sử dụng trong các câu lệnh WHERE. Chỉ mục giúp database tìm kiếm dữ liệu nhanh hơn, giảm thời gian truy vấn. Tuy nhiên, việc tạo quá nhiều chỉ mục cũng có thể làm giảm hiệu năng, vì database cần phải cập nhật chỉ mục mỗi khi dữ liệu thay đổi.

Ngoài ra, cần viết các câu lệnh SQL một cách hiệu quả. Tránh sử dụng các câu lệnh SELECT *, chỉ chọn các cột cần thiết. Sử dụng các hàm và toán tử một cách hợp lý, tránh các phép tính phức tạp trong các câu lệnh WHERE. Sử dụng các công cụ phân tích truy vấn để xác định các truy vấn chậm và tìm ra các điểm cần tối ưu hóa. Các công cụ này có thể giúp bạn hiểu rõ cách database thực hiện các truy vấn và tìm ra các giải pháp cải thiện. Theo tài liệu, việc tăng số lượng entities có thể làm tăng thời gian truy vấn, do đó việc tối ưu hóa là rất quan trọng.

III. Phương Pháp Thiết Kế Database Lựa Chọn Tối Ưu Cho Dự Án

Có nhiều phương pháp thiết kế database khác nhau, mỗi phương pháp có những ưu điểm và nhược điểm riêng. Việc lựa chọn phương pháp phù hợp phụ thuộc vào yêu cầu cụ thể của dự án. Thiết kế database quan hệ là phương pháp phổ biến nhất, sử dụng các bảng và mối quan hệ để biểu diễn dữ liệu. Phương pháp này phù hợp với các ứng dụng có cấu trúc dữ liệu rõ ràng và các mối quan hệ phức tạp.

Thiết kế database hướng đối tượng sử dụng các đối tượng để biểu diễn dữ liệu, phù hợp với các ứng dụng có tính chất hướng đối tượng cao. NoSQL là một phương pháp mới hơn, sử dụng các mô hình dữ liệu phi quan hệ, như document, key-value, hoặc graph. Phương pháp này phù hợp với các ứng dụng có lượng dữ liệu lớn, tốc độ truy cập nhanh, và cấu trúc dữ liệu linh hoạt. Việc lựa chọn hệ quản trị database (DBMS) cũng rất quan trọng. Có nhiều DBMS khác nhau trên thị trường, như SQL Server, MySQL, Oracle, PostgreSQL, MongoDB. Mỗi DBMS có những tính năng và hiệu năng riêng, cần lựa chọn DBMS phù hợp với yêu cầu của dự án. Cuối cùng, cần xem xét các yếu tố như chi phí, tính sẵn có, và hỗ trợ cộng đồng khi lựa chọn phương pháp và DBMS.

3.1. Thiết Kế Database Quan Hệ Ưu Nhược Điểm

Thiết kế database quan hệ là một phương pháp phổ biến và được sử dụng rộng rãi trong nhiều ứng dụng. Ưu điểm chính của phương pháp này là tính cấu trúc, tính nhất quán, và tính toàn vẹn dữ liệu. Các bảng và mối quan hệ được định nghĩa rõ ràng, giúp cho việc quản lý và truy vấn dữ liệu trở nên dễ dàng hơn. Các ràng buộc (constraint) được sử dụng để đảm bảo tính toàn vẹn dữ liệu, ngăn ngừa các lỗi và sự không nhất quán. Tuy nhiên, phương pháp này cũng có một số nhược điểm. Thiết kế database quan hệ có thể trở nên phức tạp khi số lượng bảng và mối quan hệ tăng lên. Hiệu năng truy vấn có thể bị ảnh hưởng bởi các phép nối bảng (join). Phương pháp này không phù hợp với các ứng dụng có cấu trúc dữ liệu linh hoạt và lượng dữ liệu lớn. Theo tài liệu, cần thiết kế các thực thể và trường một cách nhất quán với thông tin của các đối tượng như Customers, Staffs, Orders, Products.

3.2. NoSQL Database Giải Pháp Cho Dữ Liệu Lớn và Linh Hoạt

NoSQL là một phương pháp mới hơn, được thiết kế để giải quyết các vấn đề mà database quan hệ gặp phải khi xử lý lượng dữ liệu lớn và cấu trúc dữ liệu linh hoạt. NoSQL sử dụng các mô hình dữ liệu phi quan hệ, như document, key-value, hoặc graph. Ưu điểm chính của NoSQL là khả năng mở rộng cao, hiệu năng truy cập nhanh, và tính linh hoạt. NoSQL có thể xử lý lượng dữ liệu lớn hơn nhiều so với database quan hệ. NoSQL có thể truy cập dữ liệu nhanh hơn, vì không cần phải thực hiện các phép nối bảng. NoSQL có thể dễ dàng thay đổi cấu trúc dữ liệu mà không cần phải thay đổi lược đồ database. Tuy nhiên, NoSQL cũng có một số nhược điểm. NoSQL không có tính nhất quán và toàn vẹn dữ liệu mạnh mẽ như database quan hệ. NoSQL có thể khó quản lý hơn, vì không có các công cụ và tiêu chuẩn quản lý chung. NoSQL không phù hợp với các ứng dụng có yêu cầu cao về tính toàn vẹn dữ liệu.

IV. Phát Triển Triển Khai Database Từ Thiết Kế Đến Thực Tế

Sau khi thiết kế database, bước tiếp theo là phát triển và triển khai database. Quá trình này bao gồm việc tạo các bảng, chỉ mục, ràng buộc, và các đối tượng database khác. Cần sử dụng các công cụ và ngôn ngữ lập trình phù hợp để thực hiện việc này. SQL là ngôn ngữ tiêu chuẩn để tương tác với database quan hệ. Các ngôn ngữ lập trình như Python, Java, C# có thể được sử dụng để xây dựng các ứng dụng truy cập database. Việc kiểm thử database là rất quan trọng để đảm bảo rằng database hoạt động đúng như mong đợi. Cần thực hiện các kiểm thử chức năng, kiểm thử hiệu năng, và kiểm thử bảo mật. Sau khi database đã được kiểm thử và xác nhận, có thể triển khai database vào môi trường sản xuất. Cần thực hiện các bước chuyển đổi dữ liệu từ các hệ thống cũ sang database mới. Cần giám sát database sau khi triển khai để đảm bảo rằng database hoạt động ổn định và hiệu quả.

4.1. Sao Lưu Phục Hồi Database Bảo Vệ Dữ Liệu

Sao lưu và phục hồi database là một phần quan trọng của quản trị database. Việc sao lưu database định kỳ giúp bảo vệ dữ liệu khỏi bị mất do lỗi phần cứng, lỗi phần mềm, hoặc các thảm họa. Việc phục hồi database giúp khôi phục dữ liệu về trạng thái trước khi xảy ra sự cố. Cần xây dựng một kế hoạch sao lưu và phục hồi database chi tiết, bao gồm tần suất sao lưu, phương pháp sao lưu, và quy trình phục hồi. Có nhiều phương pháp sao lưu database khác nhau, như sao lưu đầy đủ, sao lưu khác biệt, và sao lưu giao dịch. Cần lựa chọn phương pháp sao lưu phù hợp với yêu cầu của dự án. Việc kiểm tra sao lưu định kỳ cũng rất quan trọng để đảm bảo rằng các bản sao lưu có thể được sử dụng để phục hồi database khi cần thiết. Theo tài liệu, các ràng buộc như primary key, foreign key và unique giúp thiết kế mạnh mẽ hơn, giúp việc quản lý và thống kê dễ dàng hơn.

4.2. Quản Trị Database Đảm Bảo Hoạt Động Ổn Định

Quản trị database là một công việc phức tạp, đòi hỏi kiến thức và kỹ năng chuyên môn. Người quản trị database (DBA) chịu trách nhiệm đảm bảo rằng database hoạt động ổn định, hiệu quả, và an toàn. Các nhiệm vụ của DBA bao gồm cài đặt và cấu hình database, sao lưu và phục hồi database, giám sát hiệu năng, tối ưu hóa truy vấn, quản lý người dùng và quyền truy cập, và giải quyết các sự cố. DBA cần có kiến thức về SQL, các công cụ quản trị database, và các hệ điều hành. DBA cần có kỹ năng giải quyết vấn đề, kỹ năng giao tiếp, và kỹ năng làm việc nhóm. Theo tài liệu, việc phân quyền giữa ban quản lý và nhân viên là quan trọng, người quản lý cấp cao không cần thực hiện các nhiệm vụ nhập dữ liệu, mà chỉ cần kiểm soát, thống kê và tính toán dữ liệu.

V. Ứng Dụng Thực Tế Thiết Kế Database Case Study FPT Shop

Bài viết này đã đề cập đến các khía cạnh quan trọng của thiết kế database, từ phân tích yêu cầu đến triển khai và bảo trì. Để minh họa các khái niệm này, chúng ta sẽ xem xét một case study thực tế: thiết kế database cho FPT Shop. FPT Shop là một chuỗi cửa hàng bán lẻ điện thoại di động, máy tính bảng, và các thiết bị điện tử khác. Database của FPT Shop cần phải quản lý thông tin về khách hàng, nhân viên, sản phẩm, đơn hàng, và các chương trình khuyến mãi. Thiết kế database cần phải đáp ứng các yêu cầu về hiệu năng, tính bảo mật, và khả năng mở rộng. FPT Shop cũng có thể sử dụng các dịch vụ Database as a Service (DBaaS) để giảm chi phí và đơn giản hóa việc quản lý database.

Theo tài liệu gốc, thiết kế database cho FPT Shop bao gồm 8 bảng, được chia thành hai nhóm: sales và production. Các bảng này bao gồm: Customers, Staffs, Orders, OrderItems, Discounts, Products, Categories, Brands. Các bảng này được liên kết với nhau thông qua các mối quan hệ một-nhiều (1-m), với OrderItems đóng vai trò là liên kết giữa hai nhóm sales và production.

5.1. Thiết Kế Database Cho Ứng Dụng Web Bán Hàng

Thiết kế database cho ứng dụng web bán hàng có những đặc thù riêng. Ứng dụng web thường có lượng người dùng lớn, đòi hỏi database phải có khả năng mở rộng cao. Ứng dụng web thường có nhiều truy vấn đọc, đòi hỏi database phải có hiệu năng truy vấn nhanh. Ứng dụng web thường có các tính năng như giỏ hàng, thanh toán trực tuyến, và quản lý đơn hàng, đòi hỏi database phải hỗ trợ các giao dịch phức tạp. Database cần phải được bảo vệ khỏi các cuộc tấn công mạng, như tấn công SQL injection và tấn công cross-site scripting (XSS). Việc sử dụng các framework web như Laravel, Django, và Spring có thể giúp đơn giản hóa việc thiết kế database và phát triển ứng dụng web.

5.2. Thiết Kế Database Cho Ứng Dụng Di Động

Thiết kế database cho ứng dụng di động có những thách thức riêng. Ứng dụng di động thường hoạt động trên các thiết bị có tài nguyên hạn chế, như bộ nhớ và pin. Database cần phải có kích thước nhỏ và tiêu thụ ít tài nguyên. Ứng dụng di động thường hoạt động trong môi trường không ổn định, với kết nối mạng không liên tục. Database cần phải hỗ trợ các hoạt động ngoại tuyến và đồng bộ dữ liệu khi có kết nối mạng. Ứng dụng di động thường có các yêu cầu bảo mật cao, vì thiết bị di động có thể bị mất hoặc đánh cắp. Database cần phải được mã hóa và bảo vệ khỏi các truy cập trái phép. Việc sử dụng các database nhúng như SQLiteRealm có thể là một lựa chọn tốt cho ứng dụng di động.

VI. Tương Lai Của Thiết Kế Database Xu Hướng Mới Triển Vọng

Thiết kế database không ngừng phát triển để đáp ứng nhu cầu ngày càng tăng của các ứng dụng hiện đại. Các xu hướng mới như Big data, Cloud database, và AI-powered database đang định hình tương lai của lĩnh vực này. Big data đòi hỏi các database có khả năng xử lý lượng dữ liệu khổng lồ và tốc độ truy cập nhanh. Cloud database cung cấp khả năng mở rộng linh hoạt và giảm chi phí quản lý. AI-powered database sử dụng trí tuệ nhân tạo để tự động tối ưu hóa hiệu năng và bảo mật.

Các kỹ sư database cần phải liên tục cập nhật kiến thức và kỹ năng để đáp ứng các thách thức và cơ hội mới. Việc học hỏi các công nghệ mới và các phương pháp thiết kế database tiên tiến là rất quan trọng để xây dựng các hệ thống dữ liệu mạnh mẽ và hiệu quả. Theo tài liệu, cần xem xét việc bổ sung thêm các bảng hoặc trường để hỗ trợ các tính năng bổ sung trong hệ thống thương mại điện tử, chẳng hạn như đánh giá sản phẩm hoặc danh sách yêu thích.

6.1. Big Data và Ảnh Hưởng Đến Thiết Kế Database

Big data đã tạo ra một cuộc cách mạng trong lĩnh vực thiết kế database. Các database truyền thống không thể đáp ứng được yêu cầu về khả năng xử lý và lưu trữ lượng dữ liệu khổng lồ. NoSQL đã nổi lên như một giải pháp thay thế, với khả năng mở rộng cao và hiệu năng truy cập nhanh. Các công nghệ như HadoopSpark được sử dụng để xử lý dữ liệu phân tán trên nhiều máy tính. Các database columnar, như Amazon RedshiftSnowflake, được tối ưu hóa cho các truy vấn phân tích dữ liệu. Việc lựa chọn công nghệ phù hợp phụ thuộc vào yêu cầu cụ thể của ứng dụng Big data.

6.2. Database As A Service DBaaS Giải Pháp Tiện Lợi

Database as a Service (DBaaS) là một mô hình dịch vụ đám mây cung cấp database cho người dùng thông qua internet. DBaaS giúp giảm chi phí và đơn giản hóa việc quản lý database. Người dùng không cần phải lo lắng về việc cài đặt, cấu hình, sao lưu, và bảo trì database. Nhà cung cấp dịch vụ DBaaS sẽ đảm nhiệm các công việc này. DBaaS cung cấp khả năng mở rộng linh hoạt, cho phép người dùng tăng hoặc giảm tài nguyên khi cần thiết. DBaaS cung cấp các tính năng bảo mật tích hợp, giúp bảo vệ dữ liệu khỏi các truy cập trái phép. Các nhà cung cấp dịch vụ DBaaS phổ biến bao gồm Amazon Web Services (AWS), Microsoft Azure, và Google Cloud Platform (GCP).

20/09/2025

Trích đoạn nội dung tài liệu

ASSIGNMENT 1 FRONT SHEET Qualification TEC Level 5 HND Diploma in Computing Unit number and title Unit 04: Database Design & Development Submission date 25/02/2023 Date Received 1st submission 25/02/2023 Re-submission Date Date Received 2nd submission Student Name Tran Duc Long Student ID GCH210562 Class GCH1106 Assessor name Dinh Duc Manh Student declaration I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that making a false declaration is a form of malpractice. Student’s signature Grading grid P1 M1 D1 Page 1 of 42  Summative Feedback:  Resubmission Feedback: 2.2 Grade: Assessor Signature: Date: Signature & Date: Page 2 of 42 Table of Contents A. Statements of user and system requirements.

Overview about the Problem. Requirements of the application. Design the relational database system .1 Analyse the requirements .2 Database design with explanations .3 Review whether the database is normalized. First Normal Form (1NF).

Second Normal Form (2NF). Third Normal Form (3NF) .5 Wireframe of the application. Future development plans. 42 Page 4 of 42 Table of picture Picture 1: Information of Customer.

10 Picture 2: Information of Staff. 10 Picture 3: Information of Products. 10 Picture 4: Information of Orders. 11 Picture 5: Top 5 Customers spend the most in the year.

11 Picture 6: Top 5 Products purchased the most in the year. 11 Picture 7: Top 5 staffs sell the most in the year. 12 Picture 8: Entity-relationship diagram at the conceptual level. 17 Picture 9: Complete Entity Relationship Diagram.

18 Picture 10: Login interface. 31 Picture 11: Main layout. 32 Picture 12: Menu of View option. 33 Picture 13: Example of View Customer List Layout.

34 Picture 14: Menu of add options. 35 Picture 15: Example of Add new Staff Layout. 36 Picture 16: Menu of Update options. 37 Picture 17: Update Customer layout.

38 Picture 18: Menu of Statistic options. Introduction We live in a modern society where everything is modern and innovative. Every day, there is a lot of innovation, especially in technology. When it comes to technology, we must admit that it has permeated every aspect of our lives, from simple devices such as phones and computers to complex programming applications.

Currently, digital transformation technology is gaining popular in a variety of disciplines, particularly company management models. While offline stores are progressively becoming outdated, online shops are an excellent solution for developing this model. In this assignment, I will discuss relational database, specifically how I design it, detailed explanations of its functions and characteristics, and finally an evaluation of the functions and the design. In addition, I created 8 tables in my design to easily manager, and each table has its own function and information to create a manage system for FPT SHOP.

These tables will help managers enter client information or staffs, products such as address or id, and the program will also help managers determine which consumers purchase the most, which things sell best, and which employees are the best. Statements of user and system requirements 1. Overview about the Problem FPT Shop is now experiencing difficulty in processing the database from all of its locations around the country, which is increasing as the number of stores grows which is expanding due to the growth in the number of stores. FPT shop approached my firm and requested assistance.

I decided to create a new database where people may register using their phone number or email address as their ID and place an order. Each consumer will be assigned a caregiver, and each staff will report to their management. This will assist FPT Shop in managing all data ranging from staff to customers, as well as new or additional items to the organization. As a result, in order to create a new database, I need to understand the needs of consumers, users, and staff while signing into the application and ordering and reviewing items.

Customer information will also be kept safe and secure, staffs and manager, who will oversee everything to ensure that the application always fulfills the user's requirements. Requirements of the application a. Business process • Clients and employees can access the application by inputting login information in the login screen. After logging in, customers and employees may enter their information to implement options.

• Customers who wish to swap products and information must submit a request to management in order for the exchange customer and their information to be accepted. • Once a consumer puts an order, the staff will review the order, its progress, and the client's order notes. Managers and directors may also access all data on customers, staffs, or goods, as well as statistics on which customers purchase the most, which items sell the best, and which employees are the best. Business rules • Customer, staffs, managements, accountants and directors must use a phone number or email account to log in to the application.

Customers are unable to change their own information or orders. • Staff can view order advice for customers • The manager can edit the information of the order as well as the customer. If customers want to change. They will have logged in and place an order will receive an email with a request to amend the information.

Page 7 of 42 If the request is approved by the management, the client may modify the information or erase it and reinstall a new one. • The accountant can view the store's sales statistics so that they can be submitted to the management. • The board of directors will look at the statistics of the accounting reports, then apply the reward policy for employees as well as apply discount codes to customers. Requirements ➢ The database that is developed must fulfill fundamental criteria such as ease of access, storage, management, and updating.

The system must also assure the database's security. At the same time, they must satisfy all of the scenario's criteria. ➢ Functional requirements: • Customer: o Customers may order products. o After logging in, the customer may examine product information and provide it.

o Once the manager accepts that need, the customer can add information to the order product and delete that information. • Staff: o Employees login app and can access just product and order of client. o Employees can change order status. o Employees can view customer information.

• Manager: o Administrators can accept requests to alter client information. o A manager can manage many staffs and can keep information. o Managers have the ability to regulate product, add product, and delete product. o Managers can also edit or delete information of employees as well as customers.

• Product: o When a valuable product is brought to the store, it must have a distinct brand. Page 8 of 42 o Products will be classified into certain categories, with pricing that are competitive in both the domestic and international markets. ➢ Non-functional requirements: All objects will be able to log in using their FPT username and password in 20 minutes. The web can be accessed by up to 500 users at once.

It takes less than 3 seconds for the web to respond. User story • As a Customer, I want to buy quality products on the app and have it delivered to my door to save time. So that I don't have to wait in line and wait at the store. Everything on the app is very clear like name, price, quality.

• As a Staff, I want to see product information, customer information, orders. So I logged in to the app to get information for consulting and care customer • As a Manager of FPT shop, I want to edit the information’s products. So that I logged into the system to check. Everything on the app is very clear like product's name, brands, categories, total price.

• As an accountant, I want to see product information, the number of products in stock. So that I can control revenue of shop. • As an accountant, I want to see the store's sales statistics. So that I logged into the system to check from which to apply the reward policy for employees.

Objectives (Things intended to achieve) The database must provide adequate functions, such as viewing, adding, removing, and updating data, as well as allowing users to quickly and easily access it, and it must also be safe. Output The output to the system will be the data of information of products, staffs, and customers, etc. Page 9 of 42 Picture 1: Information of Customer Picture 2: Information of Staff Picture 3: Information of Products Page 10 of 42 Picture 4: Information of Orders Picture 5: Top 5 Customers spend the most in the year Picture 6: Top 5 Products purchased the most in the year Page 11 of 42 Picture 7: Top 5 staffs sell the most in the year C. Design the relational database system 2.1 Analyse the requirements • Management, staff, retailers, and customers all utilize the app for different reasons, but the unifying goal is to deliver things to customers.

This system protects client or order information to avoid theft and invasion of privacy, so customers may feel secure when shopping on the system. If the client wishes to change the information or order, the manager's approval is necessary. Managers can also see customer and order data. The consumer can place several things in an order and the staff will always update the order status for the buyer to trust.

• I utilize the Microsoft SQL Server database to plan a database based on the company's requirements. There are 8 tables in my database, separated parts into sales and productions, each containing different functions to suit the requirements of the FPT shop. Tables include: o About sales: ✓ Customers: Holds complete client information such as ID, name, address, phone number, and so on. ✓ Staffs: provides complete employee information such as ID, name, and address, manager.

✓ Orders: including order date, shipped date, order status ✓ OrderItems: includes information such as the number of goods and the customer's total purchase amount. Page 12 of 42 ✓ Discounts: includes time-limited discount codes. o About productions: ✓ Products: displays all info associated with the product. ✓ Categories table: used to display all product categories to assist FPT Shop in controlling and following consumers.

✓ Brands: contains brands associated with each FPT store goods.2 Database design with explanations a.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ