Bài Tập Lớn: Thiết Kế và Phát Triển Cơ Sở Dữ Liệu (Database Design & Development) Đạt Điểm Xuất Sắc

Bài tập lớn thiết kế và phát triển cơ sở dữ liệu đạt điểm cao. Xem phân tích, thiết kế database, truy vấn SQL và kiểm thử hệ thống chi tiết.

Trường đại học

TEC

Chuyên ngành

Computing

Người đăng

Ẩn danh

Thể loại

Assignment

2023

44
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Thiết Kế Database Hướng Dẫn Assignment Distinction

Trong bối cảnh số hóa ngày càng phát triển, thiết kế cơ sở dữ liệu hiệu quả đóng vai trò then chốt trong việc quản lý và khai thác thông tin. Bài viết này cung cấp cái nhìn tổng quan về thiết kế databasephát triển database, đặc biệt tập trung vào việc đạt điểm cao trong các assignment database. Chúng ta sẽ khám phá các khái niệm cốt lõi, các phương pháp tiếp cận, và các best practices thiết kế database để xây dựng một hệ thống quản lý dữ liệu mạnh mẽ và linh hoạt cho FPT Shop. Việc phân tích yêu cầu cơ sở dữ liệu một cách kỹ lưỡng là bước đầu tiên và quan trọng nhất. Sau đó, chúng ta sẽ đi vào chi tiết về thiết kế lược đồ cơ sở dữ liệu, 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). Normalization database cũng là một khía cạnh không thể bỏ qua để đảm bảo tính nhất quán và tránh dư thừa dữ liệu. Cuối cùng, chúng ta sẽ thảo luận về database optimizationdatabase security để đảm bảo hiệu suất và bảo mật cho hệ thống.

1.1. Tầm quan trọng của thiết kế cơ sở dữ liệu hiệu quả

Một cơ sở dữ liệu quan hệ được thiết kế tốt sẽ giúp tổ chức lưu trữ và truy xuất thông tin một cách hiệu quả. Điều này đặc biệt quan trọng đối với các doanh nghiệp lớn như FPT Shop, nơi có lượng dữ liệu khổng lồ cần được quản lý. Một hệ thống được thiết kế cơ sở dữ liệu tốt sẽ giảm thiểu sự trùng lặp dữ liệu, đảm bảo tính toàn vẹn dữ liệu (data integrity), và cải thiện hiệu suất truy vấn. Theo tài liệu gốc, việc tạo ra một hệ thống database development sẽ giúp giải quyết các vấn đề như tối thiểu hóa dư thừa dữ liệu, cải thiện bảo mật, tăng tính nhất quán, giảm lỗi cập nhật, giảm chi phí lưu trữ và truy xuất dữ liệu, cải thiện khả năng truy cập dữ liệu.

1.2. Mục tiêu của assignment distinction trong môn học này

Mục tiêu chính của assignment database là đánh giá khả năng của sinh viên trong việc áp dụng các kiến thức và kỹ năng đã học vào việc thiết kế và phát triển database thực tế. Để đạt điểm cao (distinction), sinh viên cần chứng minh được khả năng phân tích yêu cầu cơ sở dữ liệu, thiết kế lược đồ cơ sở dữ liệu một cách chính xác, và triển khai cơ sở dữ liệu một cách hiệu quả. Sinh viên cũng cần thể hiện khả năng giải quyết các vấn đề phức tạp liên quan đến hiệu suất và bảo mật cơ sở dữ liệu. Cần phải chứng minh kiến thức về các mô hình dữ liệu khác nhau và khả năng lựa chọn mô hình phù hợp nhất cho từng ứng dụng cụ thể. Ngoài ra, việc hiểu rõ và áp dụng các nguyên tắc ACID properties database (Atomicity, Consistency, Isolation, Durability) là rất quan trọng.

1.3. Các công cụ và công nghệ hỗ trợ thiết kế và phát triển database

Việc sử dụng các công cụ và công nghệ phù hợp là yếu tố quan trọng để thiết kế và phát triển database hiệu quả. Các hệ quản trị cơ sở dữ liệu (database management system - DBMS) phổ biến như MySQL, PostgreSQL, MongoDB cung cấp nhiều tính năng và công cụ hỗ trợ cho việc data modeling, database administration, và performance tuning database. Các công cụ data modeling như diagram cơ sở dữ liệuUML diagram database giúp trực quan hóa cấu trúc cơ sở dữ liệu và cải thiện giao tiếp giữa các thành viên trong nhóm phát triển. Ngoài ra, các ngôn ngữ truy vấn dữ liệu như SQL cho phép người dùng tương tác với cơ sở dữ liệu và thực hiện các thao tác như truy vấn, cập nhật, và xóa dữ liệu.

II. Thách Thức Thiết Kế Database Vấn Đề Cần Giải Quyết 50 60

Mặc dù thiết kế database mang lại nhiều lợi ích, nhưng cũng đi kèm với những thách thức nhất định. Một trong những thách thức lớn nhất là việc đảm bảo tính toàn vẹn dữ liệu và tránh dư thừa dữ liệu. Điều này đòi hỏi người thiết kế phải có kiến thức sâu rộng về normalization database và các nguyên tắc data integrity. Một thách thức khác là việc đảm bảo hiệu suất cơ sở dữ liệu, đặc biệt là khi xử lý lượng dữ liệu lớn. Performance tuning databasedatabase optimization là những kỹ năng quan trọng để giải quyết vấn đề này. Ngoài ra, bảo mật cơ sở dữ liệu cũng là một vấn đề quan trọng cần được quan tâm. Các biện pháp database security cần được triển khai để bảo vệ dữ liệu khỏi các cuộc tấn công và truy cập trái phép. Theo tài liệu, các bảng excel có nhiều hạn chế về bảo mật, khó kiểm soát ai chỉnh sửa, có nhiều phiên bản khác nhau, khó trực quan hóa dữ liệu và không tích hợp với các hệ thống kinh doanh khác.

2.1. Các vấn đề về tính toàn vẹn và dư thừa dữ liệu

Tính toàn vẹn dữ liệu (data integrity) là một trong những yếu tố quan trọng nhất của một cơ sở dữ liệu quan hệ. Dữ liệu không chính xác hoặc 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 của doanh nghiệp. Dư thừa dữ liệu cũng là một vấn đề nghiêm trọng, vì nó có thể dẫn đến sự không nhất quán và gây khó khăn cho việc cập nhật dữ liệu. Để giải quyết các vấn đề này, người thiết kế cần áp dụng các nguyên tắc normalization database và sử dụng các ràng buộc (constraint) để đảm bảo tính hợp lệ của dữ liệu.

2.2. Các vấn đề về hiệu suất và khả năng mở rộng database scaling

Hiệu suất cơ sở dữ liệu 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ả hoạt động của ứng dụng. Khi lượng dữ liệu tăng lên, hiệu suất cơ sở dữ liệu có thể bị suy giảm đáng kể. Để giải quyết vấn đề này, người thiết kế cần áp dụng các kỹ thuật performance tuning database, chẳng hạn như tối ưu hóa truy vấn (query optimization), sử dụng chỉ mục (index), và phân vùng dữ liệu (data partitioning). Database scaling cũng là một giải pháp quan trọng để đáp ứng nhu cầu tăng trưởng của doanh nghiệp. Điều này có thể được thực hiện bằng cách mở rộng phần cứng (scaling up) hoặc phân tán dữ liệu trên nhiều máy chủ (scaling out).

2.3. Rủi ro về bảo mật và các biện pháp phòng ngừa

Bảo mật cơ sở dữ liệu là một vấn đề ngày càng trở nên quan trọng trong bối cảnh các cuộc tấn công mạng ngày càng tinh vi. Dữ liệu trong cơ sở dữ liệu có thể chứa thông tin nhạy cảm, chẳng hạn như thông tin cá nhân của khách hàng, thông tin tài chính, và bí mật kinh doanh. Để bảo vệ dữ liệu khỏi các cuộc tấn công và truy cập trái phép, người thiết kế cần triển khai các biện pháp database security, chẳng hạn như kiểm soát truy cập (access control), mã hóa dữ liệu (data encryption), và giám sát hoạt động (monitoring).

III. Phương Pháp Thiết Kế Database Tiếp Cận Hiệu Quả Nhất 50 60

Có nhiều phương pháp tiếp cận khác nhau để thiết kế database, mỗi phương pháp có những ưu điểm và nhược điểm riêng. Một trong những phương pháp phổ biến nhất là phương pháp thiết kế cơ sở dữ liệu hướng đối tượng. Phương pháp này tập trung vào việc mô hình hóa dữ liệu như các đối tượng, với các thuộc tính và phương thức. Một phương pháp khác là phương pháp data warehousing, được sử dụng để xây dựng các kho dữ liệu cho mục đích phân tích và báo cáo. 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 ứng dụng và kiến thức của người thiết kế.

3.1. Thiết kế cơ sở dữ liệu hướng đối tượng Ưu và nhược điểm

Thiết kế cơ sở dữ liệu hướng đối tượng là một phương pháp tiếp cận tập trung vào việc mô hình hóa dữ liệu như các đối tượng, với các thuộc tính và phương thức. Phương pháp này có nhiều ưu điểm, chẳng hạn như tính linh hoạt cao, khả năng tái sử dụng mã, và khả năng xử lý các kiểu dữ liệu phức tạp. Tuy nhiên, phương pháp này cũng có những nhược điểm, chẳng hạn như độ phức tạp cao, khó khăn trong việc đảm bảo tính toàn vẹn dữ liệu, và hiệu suất truy vấn có thể không cao bằng các phương pháp khác.

3.2. Data warehousing Ứng dụng trong phân tích và báo cáo

Data warehousing là một phương pháp tiếp cận được sử dụng để xây dựng các kho dữ liệu cho mục đích phân tích và báo cáo. Kho dữ liệu là một hệ thống lưu trữ dữ liệu tích hợp từ nhiều nguồn khác nhau, được tổ chức theo một cấu trúc nhất quán. Data warehousing cho phép người dùng thực hiện các truy vấn phức tạp và tạo ra các báo cáo chi tiết về hoạt động của doanh nghiệp.

3.3. Normalization database Các bước và lợi ích đạt được

Normalization database là một quá trình tổ chức dữ liệu trong cơ sở dữ liệu để giảm thiểu dư thừa dữ liệu và cải thiện tính toàn vẹn dữ liệu. Quá trình này bao gồm nhiều bước, chẳng hạn như xác định các phụ thuộc hàm (functional dependency), phân tách các bảng, và tạo các khóa ngoại (foreign key). Normalization database mang lại nhiều lợi ích, chẳng hạn như giảm kích thước cơ sở dữ liệu, cải thiện hiệu suất truy vấn, và dễ dàng bảo trì và cập nhật dữ liệu.

IV. Ứng Dụng Thực Tế Thiết Kế Database cho FPT Shop 50 60

Việc áp dụng các nguyên tắc thiết kế database vào thực tế có thể giúp FPT Shop giải quyết các vấn đề quản lý dữ liệu và cải thiện hiệu quả hoạt động. Theo tài liệu, FPT Shop hiện đang sử dụng các bảng excel để lưu trữ dữ liệu, điều này gây ra nhiều hạn chế về bảo mật, tính nhất quán, và hiệu suất. Bằng cách xây dựng một cơ sở dữ liệu quan hệ được thiết kế tốt, FPT Shop có thể giải quyết các vấn đề này và tận dụng tối đa tiềm năng của dữ liệu. Cơ sở dữ liệu này có thể được sử dụng để quản lý thông tin sản phẩm, thông tin khách hàng, thông tin đơn hàng, và thông tin nhân viên.

4.1. Mô hình hóa dữ liệu sản phẩm khách hàng và đơn hàng

Để xây dựng một cơ sở dữ liệu quan hệ cho FPT Shop, cần phải mô hình hóa dữ liệu sản phẩm, khách hàng, và đơn hàng. Dữ liệu sản phẩm có thể bao gồm các thông tin như tên sản phẩm, giá, số lượng, và nhà cung cấp. Dữ liệu khách hàng có thể bao gồm các thông tin như tên khách hàng, địa chỉ, số điện thoại, và lịch sử mua hàng. Dữ liệu đơn hàng có thể bao gồm các thông tin như mã đơn hàng, ngày đặt hàng, khách hàng, nhân viên xử lý, và danh sách sản phẩm. ERD Diagram (Entity Relationship Diagram) có thể được sử dụng để trực quan hóa các mối quan hệ giữa các thực thể này.

4.2. Thiết kế lược đồ cơ sở dữ liệu và các ràng buộc

Sau khi mô hình hóa dữ liệu, cần phải thiết kế lược đồ cơ sở dữ liệu, bao gồm việc xác định các bảng, các cột, các kiểu dữ liệu, và các khóa. Các ràng buộc (constraint) cần được sử dụng để đảm bảo tính toàn vẹn dữ liệu. Ví dụ, có thể sử dụng ràng buộc khóa chính (primary key constraint) để đảm bảo rằng mỗi sản phẩm, khách hàng, và đơn hàng có một mã duy nhất. Có thể sử dụng ràng buộc khóa ngoại (foreign key constraint) để thiết lập các mối quan hệ giữa các bảng.

4.3. Các truy vấn SQL để khai thác dữ liệu và tạo báo cáo

Sau khi xây dựng cơ sở dữ liệu, có thể sử dụng các truy vấn SQL để khai thác dữ liệu và tạo báo cáo. Ví dụ, có thể sử dụng truy vấn SQL để tìm kiếm các sản phẩm theo tên, để tìm kiếm các khách hàng theo địa chỉ, để tính tổng doanh thu bán hàng, hoặc để tạo báo cáo về các sản phẩm bán chạy nhất. Các truy vấn SQL có thể được tối ưu hóa để cải thiện hiệu suất truy vấn.

V. Tối Ưu và Bảo Mật Hướng Dẫn Nâng Cao Hiệu Suất Database 50 60

Sau khi thiết kế và phát triển database, việc tối ưu và bảo mật là vô cùng quan trọng. Điều này đảm bảo performance tuning database, database optimization và ngăn chặn các nguy cơ bảo mật. Việc database testing và triển khai các biện pháp bảo mật sẽ đảm bảo hệ thống hoạt động ổn định và an toàn. Chúng ta cần xem xét các yếu tố như tối ưu truy vấn, chỉ mục, và transaction management database. Ngoài ra, các biện pháp bảo mật như kiểm soát truy cập, mã hóa dữ liệu, và giám sát hoạt động cũng cần được triển khai.

5.1. Tối ưu hóa truy vấn và sử dụng chỉ mục hiệu quả

Để cải thiện hiệu suất truy vấn, cần phải tối ưu hóa các truy vấn SQL. Điều này có thể được thực hiện bằng cách sử dụng các chỉ mục (index), tránh sử dụng các hàm trong mệnh đề WHERE, và sử dụng các toán tử thích hợp. Các chỉ mục giúp cơ sở dữ liệu tìm kiếm dữ liệu nhanh hơn, nhưng cũng có thể làm chậm quá trình cập nhật dữ liệu. Do đó, cần phải sử dụng chỉ mục một cách cẩn thận và chỉ tạo các chỉ mục cho các cột được sử dụng thường xuyên trong các truy vấn.

5.2. Các chiến lược bảo mật dữ liệu Kiểm soát truy cập và mã hóa

Để bảo vệ dữ liệu khỏi các cuộc tấn công và truy cập trái phép, cần phải triển khai các biện pháp bảo mật dữ liệu. Các biện pháp này có thể bao gồm kiểm soát truy cập (access control), mã hóa dữ liệu (data encryption), và giám sát hoạt động (monitoring). Kiểm soát truy cập cho phép giới hạn quyền truy cập của người dùng vào cơ sở dữ liệu. Mã hóa dữ liệu giúp bảo vệ dữ liệu ngay cả khi bị đánh cắp hoặc truy cập trái phép. Giám sát hoạt động giúp phát hiện các hoạt động đáng ngờ và ngăn chặn các cuộc tấn công.

5.3. Test database và database deployment sau khi hoàn thiện

Sau khi hoàn thiện thiết kế và phát triển database, cần phải kiểm tra kỹ lưỡng để đảm bảo rằng hệ thống hoạt động đúng như mong đợi và không có lỗi. Database testing có thể bao gồm kiểm tra tính toàn vẹn dữ liệu, kiểm tra hiệu suất truy vấn, và kiểm tra bảo mật. Sau khi kiểm tra thành công, có thể triển khai cơ sở dữ liệu (database deployment) vào môi trường sản xuất. Quá trình triển khai cần được thực hiện cẩn thận để tránh gây ra gián đoạn cho hoạt động của doanh nghiệp.

VI. Kết Luận Tương Lai và Phát Triển của Thiết Kế Database 50 60

Thiết kế database là một lĩnh vực không ngừng phát triển, với nhiều xu hướng mới nổi lên. NoSQL database, database scaling, database architecture, transaction management database, acid properties database, data integrity, báo cáo thiết kế cơ sở dữ liệu, ví dụ thiết kế database, mô hình dữ liệu, diagram cơ sở dữ liệu, UML diagram database, database testing, database deployment, database migration Trong tương lai, chúng ta có thể thấy sự gia tăng của các cơ sở dữ liệu NoSQL, sự phát triển của các công nghệ data warehousingdata analytics, và sự quan tâm ngày càng tăng đến bảo mật cơ sở dữ liệu. Việc nắm vững các kiến thức và kỹ năng về thiết kế database là vô cùng quan trọng đối với các chuyên gia công nghệ thông tin.

6.1. Xu hướng phát triển của NoSQL database và ứng dụng

NoSQL database là một loại cơ sở dữ liệu không tuân theo mô hình quan hệ truyền thống. Các cơ sở dữ liệu NoSQL thường được sử dụng để lưu trữ dữ liệu phi cấu trúc hoặc bán cấu trúc, và có thể mở rộng quy mô dễ dàng hơn so với các cơ sở dữ liệu quan hệ. Các ứng dụng của NoSQL database bao gồm lưu trữ dữ liệu lớn, quản lý nội dung, và phân tích dữ liệu thời gian thực.

6.2. Tích hợp AI và Machine Learning vào thiết kế database

Trong tương lai, chúng ta có thể thấy sự tích hợp của AI (Artificial Intelligence) và Machine Learning vào thiết kế database. AIMachine Learning có thể được sử dụng để tự động hóa các tác vụ thiết kế cơ sở dữ liệu, tối ưu hóa hiệu suất truy vấn, và phát hiện các mối đe dọa bảo mật. Ví dụ, Machine Learning có thể được sử dụng để dự đoán nhu cầu lưu trữ dữ liệu và tự động điều chỉnh quy mô cơ sở dữ liệu.

6.3. Các kỹ năng cần thiết để trở thành chuyên gia thiết kế database

Để trở thành một chuyên gia thiết kế database giỏi, cần phải có kiến thức sâu rộng về các khái niệm cơ bản về cơ sở dữ liệu, các phương pháp thiết kế database, và các công nghệ cơ sở dữ liệu. Ngoài ra, cần phải có kỹ năng phân tích yêu cầu cơ sở dữ liệu, kỹ năng thiết kế lược đồ cơ sở dữ liệu, kỹ năng tối ưu hóa hiệu suất, và kỹ năng bảo mật dữ liệu. Các chuyên gia thiết kế database cũng cần phải có khả năng giao tiếp tốt, làm việc nhóm, và giải quyết vấn đề.

20/09/2025

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

ASSIGNMENT 2 FRONT SHEET Qualification TEC Level 5 HND Diploma in Computing Unit number and title Unit 04: Database Design & Development Submission date Date Received 1st submission Re-submission Date Date Received 2nd submission Student Name Bui Quang Minh Student ID GCD210325 Class GCD1104 Assessor name Ho Van Phi 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 Minh Grading grid P2 P3 P4 P5 M2 M3 M4 M5 D2 D3  Summative Feedback:  Resubmission Feedback: Grade: Assessor Signature: Date: Signature & Date: Table of Contents CHAPTER 1: STATEMENTS OF USER AND SYSTEM REQUIREMENTS (P1). Introduction of proposed system.

Analysing current system. Evaluating current system. Proposal of new system. 10 CHAPTER 2: DESIGN THE RELATIONAL DATABASE SYSTEM (P1-D1).

DATABASE DESING with EXPLAINATIONS. REVIEW IF DATABASE IS NORMALIZED. WIREFRAME OF APPLICATION. Creating tables using tool.

Creating tables using command .1 Sample data of CUSTOMERS table …….2 Sample data of STAFFS table ……….3 Sample data of PRODUCTS table …….4 Sample data of ORDERS table …….5 Sample data of DETAILS table …….6 Sample data of SUPPLIERS table …….1 Query to show products from 10m to 20m …….2 Query to show income of order at a date ………………………….3 Query to show income of all order …………………………………………………….1 View to managing products …….2 View of available products. Assess the effectiveness of the design. 26 CHAPTER 4: DEVELOP DATABASE SYSTEM (P2-P3). QUERYING ACROSS MULTIPLE TABLES.

Print orders’ list of customerID ‘0100’. Show income of order at a date. Show income of all orders. 30 CHAPTER 5: PRODUCE QUERIES (P3-M2-M3).

IMPLEMENT QUERY LANGUAGE (P3). IMPLEMENT FULLY FUNCTIONAL DATABASE (M2). View of PRODUCTS table ……. View of CUSTOMERS table …….

View of STAFFS table ……. View of ORDERS table ……. View of DETAILS table ……. View of SUPPLIERS table …….

View of revenue ragarding year. View of revenue ragarding Products. View of revenue made from staffs. View of orders placed by customers.

View of orders number made by staffs. 39 CHAPTER 6: TEST SYSTEM (P4-M4). 41 CHAPTER 1: STATEMENTS OF USER AND SYSTEM REQUIREMENTS (P1) I. Introduction of proposed system FPT Shop has contacted my firm where I am working as a Database developer because the increasing number of stores.

FPT Shop are having many challenges that it has to handle throughout the nation. It has made decision to create a new database with many purposes with different objects such as users can sign in with phone numbers and other data, supervisors can manage their stores and director board can view all information from all stores. Analysing current system The FPT Shop currently stores all data in excel files when a customer purchases an item, a staff will write that item’s information into a particular paper called receipt and give it to the customer. All available items and purchased items also store in excel files.

Product table’s data in excel After a day, month, or year, staff will create a new table to calculate the total amount of money earned and reckon up the quantity, the following table made in excel: Figure 2. Revenue in January 3. Evaluating current system Advantages of Spreadsheets  Spreadsheets require minimal training.  Spreadsheets are customizable.

 Spreadsheets can be more collaborative than other tools.  It’s easy to manipulate and analyze data.  You can integrate spreadsheets with specific tools.  Spreadsheets are quick and easy to add to a workflow.

 Spreadsheets are fantastic tools for financial documents.  You have access to countless spreadsheet templates. Disadvantages of Spreadsheets  Spreadsheets are not secure.  It’s hard to tell who edited the spreadsheet.

 There will be multiple versions of the truth.  Visualizing data is difficult.  Critical customer data is at everyday life's mercy.  There’s no native integration with business systems.

 Spreadsheets make it harder for managers to manage team members. Proposal of new system By creating a relational database system for the shop and organizing the information that has to be maintained into precise and understandable tables, the above issues may be resolved for the following benefits:  Minimum data redundancy  Improved data security  Increased consistency  Lower updating errors  Reduced costs of data entry, data storage, and data retrieval  Improved data access using host and query languages  Higher data integrity from application programs II. Hardware requirement Hard Disk  SQL Server requires a minimum of 6 GB of available hard-disk space. Monitor  SQL Server requires Super-VGA (800x600) or higher resolution monitor Memory: Minimum  Express Editions: 512 MB  All other editions: 1 GB Processor Speed: Minimum  x64 Processor 1.

Software requirement Operating system  Windows 10 TH1 1507 or greater  Windows Server 2016 or greater .NET Framework  Minimum operating systems includes minimum. CHAPTER 2: DESIGN THE RELATIONAL DATABASE SYSTEM (P1 – M1 - D1) I. ANALYSING THE REQUIREMENTS As a client/customer, - I want to view the detail of the product so that I can select that product. - I want to order products so that I can buy those products.

- I want to check my products/items so that I can make sure that products are mine. - I want to log in and log out the system so that I can use all the functions. - I want to follow my order so that I can keep track of it. - I want to know the origin of products so that I can buy it wihout hesitation.

As a staff, - I want to input the products’ data so that I can manage the products. - I want to alter/modify products’ data so that I can update the products. - I want to approve the customers’ order so that the orders can be delivered. - I want to follow clients’ orders so that I can let them know about their orders.

- I want to view the clients’ feedbacks so that I can support or report to the higher position. - I want to supervise the supply so that I can check the quantity of products and ensure the quality of products. As a manager, - I want to manage the staff so that I can supervise the staff. - I want to view the list of products so that I can manage the products.

- I want to view the daily/monthly/weekly revenue so that I can manage the income/money of my shop. - I want to check staff’s attendance so that I can pay their salary. So, I can define all tables what I need. DATABASE DESIGN with EXPLANATIONS Figure 3.

ERD Diagram The picture above shows the relational entity diagram of FPTSHOP system through the ERD diagram, we can see the following relationships:  The Customer entity has a 1-to-many relationship with orders because a customer can place many orders. In contrast, a specific order is placed by just a customer.  The Staff entity has a 1-to-many relationship with orders because a staff can organize many orders. In contrast, a specific order is created by just a staff.

 The Supplier entity has a 1-to-many relationship with Product because a supplier can provide many kinds of items. In contrast, a product is supplied by just a supplier.  The Products entity has a 1-to-many relationship with Details because an item can contain many details. In contrast, a detail is contained by an item.

 The Orders entity has a 1-to-many relationship with Details because an order can contain many separately details. In contrast, a detail is contained in an order. REVIEW IF DATABASE IS NORMALIZED From ERD Diagram shown above, we can see that the Products table contains transitive functional Dependence so that it cannot achieve 3NF (The third normal form): ProductID  SupplierID  SupplierName To achieve 3NF, attribute ‘SupplierName’ needs to split from PRODUCTS in order to combine with SupplierID and then create a new table named SUPPLIERS. As the result, after normalizing, the database system contains the following tables 1.

Products table Products Table: this table is used to store all information about products. It has several columns such as ProductID, ProductName, Price, Quantity… Among these, productID is the primary key. The column productName must be not null and the Price, Quantity must be bigger than zero (>0). The detail of the table Products is shown as follow: Column name Data Tye Allow null Contraint Nvarchar(10) No PK ProductID Nvarchar(100) No Unique ProductName Int Yes Check (Price>0) Price Int Yes Check (quantity>0) Quantity Nvarchar(10) No FK (Suppliers) SupplierID Table 1.

Customers table Customers Table: this table is used to store all information of customers. It has several columns such as CustomerID, CName, Address, PhoneNum… Among these, CustomerID is the primary key. The columns CName and Address must not be null. The detail of the table Customers is shown as follows: Column name Data Tye Allow null Contraint Nvarchar(10) No PK CustomerID Nvarchar(100) No CName Nvarchar(150) No Address Nvarchar(11) Yes PhoneNum Table 2.

Staffs table Staffs Table: this table is used to store all information about staff. It has several columns such as StaffID, SName, Address, Salary… Among these, StaffID is the primary key. The columns SName and Address must not be null and and Salary must be bigger than zero (>0). The detail of the table Staffs is shown as follows: Column name Data Tye Allow null Contraint Nvarchar(10) No PK StaffID Nvarchar(100) No SName Nvarchar(150) No Address Int Yes Check (Salary>0) Salary Table 3.

Orders table Orders Table: this table is used to store all information on orders. It has several columns such as OrderID, OrderDate, CustomerID, StaffID… Among these, StaffID is the primary key. The columns' OrderDate must not be null. The detail of table Orders is shown as follows: Column name Data Tye Allow null Contraint Nvarchar(10) No PK OrderID Date No OrderDate Nvarchar(10) No FK from Customers CustomerID Nvarchar(10) No FK from Staffs StaffID Table 4.

Details table Details Table: this table is used to store all information of all details. It has several columns such as OrderID, ProductID, Price, Quantity… Among these, OrderID and ProductID are the primary keys and the Price, Quantity must be bigger than zero (>0). The detail of table Details is shown as follows: Column name Data Tye Allow null Contraint Nvarchar(10) No PK-FK from Orders OrderID Nvarchar(10) No PK-FK from Products ProductID Int No Check (Price>0) Price Int No Check (quantity>0) Quantity Table 5. Suppliers table Suppliers Table: this table is used to store all information of all suppliers.

It has two columns including SupplierID and SupplierName. Among these, SupplierID is the primary keys. The detail of table Suppliers is shown as follows: Column name Data Tye Allow null Contraint Nvarchar(10) No PK SupplierID Nvarchar(100) No SupplierName Table 6. WIREFRAME OF APPLICATION 1.

Creating Tables using tool Figure 4. Products table Figure 5. Customers table Figure 6. Staffs table Figure 7.

Orders table Figure 8. Details table Figure 9. Creating tables using command CREATE TABLE PRODUCTS ( ProductID NVARCHAR(10) PRIMARY KEY, PName NVARCHAR(50) NOT NULL UNIQUE, Price INT CHECK(Price>0), Quantity INT CHECK(Quantity>0) SupplierID nvarchar(10) REFERENCES SUPPLIERS (SupplierID) ) GO Figure 10. Products table using command CREATE TABLE CUSTOMERS ( CustomerID NVARCHAR(10) PRIMARY KEY, CName NVARCHAR(100) NOT NULL, Address NVARCHAR (150) NOT NULL, PhoneNum NVARCHAR (11) ) GO Figure 11.

Customers table using command CREATE TABLE STAFFS ( StaffID NVARCHAR(10) PRIMARY KEY, SName NVARCHAR(100) NOT NULL, Address NVARCHAR (150) NOT NULL, Salary INT CHECK(Salary>0) ) GO Figure 12. Staffs table using command CREATE TABLE ORDERS ( OrderID NVARCHAR(10) PRIMARY KEY, OrderDate DATE NOT NULL, CustomerID NVARCHAR(10) REFERENCES CUSTOMERS (CustomerID), StaffID NVARCHAR(10) REFERENCES STAFFS (StaffID) ) GO Figure 13.

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