Cơ sở dữ liệuCơ sở dữ liệu database là một hệ thống các thông tin có cấu trúc được lưu trữ trên bộ nhớ ngoài, nhằm thoả mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐÀO TẠO LIÊN TỤC
──────── * ───────
BÁO CÁO
MÔN PROJECT 1
NGÀNH CÔNG NGHỆ THÔNG TIN
WEBSITE BÁN LINH KIỆN MÁY TÍNH
Nhóm sinh viên thực hiện : Trần Thanh Sơn
Lớp CNTTVB2 - K67Giáo viên hướng dẫn: Ths Trần Thị Dung
HÀ NỘI 5-2023
Trang 2Mục Lục
Mục Lục 2
Mở đầu: Mục tiêu và nội dung của project 3
Phần 1: Cơ sở lý thuyết chọn đề tài 3
1.1 Các cơ sở lý thuyết liên quan đến nội dung mà đồ án cần giải quyết 3
1.1.1 Cơ sở dữ liệu 3
1.1.2 Lập trình hướng đối tượng 4
1.2 Phân tích các hướng tiếp cận khác nhau 5
1.2.1 Mô hình MVC 5
1.2.2 Mô hình MVP 5
1.2.3 Mô hình MVVM 6
1.3 Phương pháp sử dụng trong dự án 6
1.4 Mô tả yêu cầu 7
Phần 2: Công nghệ và thuật toán sử dụng 8
2.1 Công cụ: 8
2.2 Công nghệ 8
Phần 3: Phân tích thiết kế bài toán 8
3.1 Thiết kế cơ sở dữ liệu: 8
3.1.1 Mô tả nghiệp vụ 8
3.1.2 Biểu đồ Use-Case 10
a Biểu đồ Use-case tổng quát 10
b Biểu đồ Use-case phân rã mức 2 10
3.1.3 Mô hình thực thể liên kết – ER 14
a Phân tích mô hình 15
b Vẽ mô hình thực thể liên kết (ER) 16
3.2 Biểu đồ trình tự 17
3.2.1 Biểu đồ trình tự chức năng login 17
3.2.2 Biểu đồ trình tự chức năng thêm sản phẩm 17
3.3 Biểu đồ lớp 18
3.4 Thiết kế chi tiết một số lớp 19
3.4.1 Lớp SanPham 19
3.4.2 Lớp LoaiSanPham 19
3.4.3 Lớp NhaSanXuat 20
TÀI LIỆU THAM KHẢO 20
Trang 3Mở đầu: Mục tiêu và nội dung của project
1 Mục tiêu:
Xây dựng website bán linh kiện máy tính trực tuyến có tên là “SG-Shop” đểcung cấp cho người dùng lựa chọn và mua sắm các sản phẩm các linh kiện máytính hoặc có thể mua luôn những bộ máy tính mà cửa hàng đã lắp đặt sẵn vớichất lượng và giá cả phù hợp
2 Nội dung:
Chức năng của website:
Cho phép người dùng đăng nhập, đăng ký tài khoản để thực hiện cácthao tác thêm đồ vào giỏ hàng, thanh toán
Hiển thị danh sách các sản phẩm các thành phần của máy tính (nhưCPU, Mainboard, Ram, SSD, …), cho phép tìm kiếm và lọc sản phẩmtheo các tiêu chí khác nhau như giá, thương hiệu, tên,
Cho phép người dùng đặt hàng và thanh toán khi nhận hàng Chức năng xây dựng cấu hình PC cho phép người dùng tự tạo một bộ
PC và xem trước giá của nó
Tính năng của website:
Phần 1: Cơ sở lý thuyết chọn đề tài
1.1 Các cơ sở lý thuyết liên quan đến nội dung mà đồ án cần giải quyết
1.1.1 Cơ sở dữ liệu
Cơ sở dữ liệu (database) là một hệ thống các thông tin có cấu trúc được lưu trữ trên bộ nhớ ngoài, nhằm thoả mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau CSDL bao gồm các loại dữ liệu: âm thanh, văn bản, hình ảnh,
… được mã hóa và lưu trữ dưới dạng file cụ thể
Phân Loại:
Cơ sở dữ liệu dạng file: dữ liệu được lưu trữ dưới dạng các file có thể
là text, ascii, dbf Tiêu biểu cho cơ sở dữ liệu dạng file là.mdb Foxpro
Cơ sở dữ liệu hướng đối tượng: dữ liệu cũng được lưu trữ trong các bảng dữ liệu nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đốitượng
Trang 4Cơ sở dữ liệu bán cấu trúc: dữ liệu được lưu dưới dạng XML.
Hiệu quả của CSDL:
Phản ánh trung thực thực tế
Tính an toàn - bảo mật
Tính không dư thừa
Hiệu suất sử dụng cao
1.1.2 Lập trình hướng đối tượng
Lập trình hướng đối tượng (Object-oriented programming - OOP) làmột phương pháp lập trình phổ biến trong việc phát triển phần mềm,trong đó chương trình được thiết kế và triển khai dựa trên các đốitượng Mỗi đối tượng có thể bao gồm các thuộc tính (properties) vàphương thức (methods), và có thể tương tác với các đối tượng khácthông qua việc gọi phương thức của chúng
Các đối tượng được tạo ra bằng cách định nghĩa các lớp (classes),trong đó mỗi lớp đại diện cho một loại đối tượng cụ thể Mỗi lớp cóthể định nghĩa các thuộc tính và phương thức của đối tượng tươngứng, và các đối tượng được tạo ra bằng cách khởi tạo các lớp
Lập trình hướng đối tượng giúp giảm độ phức tạp của các chươngtrình lớn bằng cách phân chia chúng thành các đối tượng nhỏ hơn và
dễ quản lý hơn Nó cũng giúp tăng tính tái sử dụng của mã nguồn, vìcác đối tượng có thể được sử dụng lại trong nhiều chương trình khácnhau
Các ngôn ngữ lập trình phổ biến sử dụng lập trình hướng đối tượngbao gồm Java, C++, Python, C#, Ruby, và Swift
Trang 51.2 Phân tích các hướng tiếp cận khác nhau
1.2.1 Mô hình MVC
MVC là viết tắt của Model-View-Controller, là một mô hình phát triểnphần mềm được sử dụng rộng rãi trong việc phát triển các ứng dụngweb Mô hình này chia ứng dụng thành 3 phần chính:
Model: Đây là phần dữ liệu của ứng dụng Nó chịu trách nhiệmcho việc lấy và lưu trữ dữ liệu, và cung cấp các phương thức đểtruy xuất và cập nhật dữ liệu
View: Đây là phần giao diện người dùng của ứng dụng Nóhiển thị dữ liệu cho người dùng dưới dạng các trang web, biểumẫu và các thành phần giao diện khác
Controller: Đây là phần xử lý logic của ứng dụng Nó nhậnthông tin từ người dùng qua giao diện View, sau đó điều chỉnh
dữ liệu trong Model và cập nhật lại View để hiển thị kết quảcho người dùng
Mô hình MVC cho phép phát triển ứng dụng web một cách dễ dàng
và đơn giản hơn, vì nó chia ứng dụng thành các phần độc lập và dễdàng quản lý Nó cũng cho phép tái sử dụng các thành phần của ứngdụng và dễ dàng thay đổi giao diện người dùng mà không ảnh hưởngđến phần xử lý logic của ứng dụng
Model: Là phần dữ liệu và logic của ứng dụng
View: Là phần hiển thị dữ liệu, tương tác với người dùng Presenter: Là bộ điều khiển, xử lý logic, nhận các sự kiện từView và tương tác với Model
Tuy nhiên, trong MVP, Presenter có nhiệm vụ trung gian giữa View vàModel Presenter nhận các tương tác từ người dùng thông qua View,
xử lý các yêu cầu, truy xuất dữ liệu từ Model và cập nhật lại View
Điểm khác biệt lớn nhất giữa MVP và MVC là quan hệ giữa View vàModel Trong MVC, View và Model giao tiếp trực tiếp, trong khi đótrong MVP, Presenter làm trung gian giữa hai phần này Presenter
Trang 6giúp cho View không cần biết Model và làm cho việc kiểm thử, bảo trì
và mở rộng ứng dụng trở nên dễ dàng hơn
MVP được sử dụng rộng rãi trong các dự án phần mềm đòi hỏi tínhtương tác cao với người dùng, ví dụ như các ứng dụng di động, ứngdụng web, và các dự án về game
1.2.3 Mô hình MVVM
MVVM (Model-View-ViewModel) là một mô hình kiến trúcphần mềm được sử dụng trong lập trình ứng dụng Mô hìnhnày tương tự như mô hình MVC và MVP với việc chia ứngdụng thành 3 phần chính: Model (mô hình), View (giao diện)
và ViewModel
Model: Là phần dữ liệu và logic của ứng dụng
View: Là phần hiển thị dữ liệu, tương tác với người dùng ViewModel: Là phần trung gian giữa View và Model, chịutrách nhiệm xử lý dữ liệu, thực hiện các nghiệp vụ, truyền dữliệu giữa View và Model
Điểm khác biệt lớn nhất của MVVM so với MVC và MVP làViewModel được thiết kế để làm cho việc liên kết dữ liệu giữa View
và Model trở nên dễ dàng hơn ViewModel có thể kết hợp nhiềuModel để cung cấp dữ liệu cho View và đồng thời xử lý các yêu cầu
từ View, chuyển đổi dữ liệu để hiển thị trên View
MVVM được sử dụng rộng rãi trong các dự án phần mềm yêu cầutính tương tác cao với người dùng, ví dụ như các ứng dụng di động,ứng dụng web, và các dự án về game MVVM giúp cho việc phát triểnứng dụng trở nên dễ dàng, dễ quản lý hơn và giúp cho quá trình kiểmthử, bảo trì và mở rộng ứng dụng trở nên đơn giản hơn
1.3 Phương pháp sử dụng trong dự án
Trong dự án ta sẽ xử dụng mô hình MVC gần tương tự với mô hình MVC đó là
mô hình 3 layer để tạo trang web bán linh kiện máy tính
Presentation Layer: Tầng giao diện người dùng, nơi người dùng tươngtác trực tiếp với ứng dụng thông qua giao diện Tầng này thường baogồm các thành phần giao diện như forms, buttons, menus, grids, và chịutrách nhiệm hiển thị dữ liệu cho người dùng
Business Layer: Tầng xử lý logic kinh doanh, nơi xử lý các nghiệp vụ,quy định logic, xử lý dữ liệu Tầng này là nơi thực hiện các tính toán,kiểm tra dữ liệu và xác thực người dùng trước khi truy cập vào dữ liệu Data Layer: Tầng dữ liệu, nơi lưu trữ dữ liệu của ứng dụng Tầng nàychứa cơ sở dữ liệu, các truy vấn và thao tác trên dữ liệu Tầng này cũng
có thể bao gồm các thư viện dữ liệu để truy xuất dữ liệu từ cơ sở dữ liệu
Trang 71.4 Mô tả yêu cầu
Tạo một website bán linh kiện máy tính có các tính năng:
Danh mục sản phẩm: Hiển thị tất cả các sản phẩm linh kiện máy tínhđang được bán trên website, bao gồm tên sản phẩm, hình ảnh, giá cả
và mô tả sản phẩm
Tìm kiếm sản phẩm: Cho phép khách hàng tìm kiếm sản phẩm mộtcách nhanh chóng và dễ dàng bằng cách nhập từ khóa hoặc chọn cáctiêu chí như loại sản phẩm, hãng sản xuất, giá cả,
Giỏ hàng: Cho phép khách hàng thêm sản phẩm vào giỏ hàng và xemthông tin chi tiết của giỏ hàng, bao gồm tên sản phẩm, số lượng, giá
cả và tổng số tiền
Thanh toán: Cung cấp nhiều phương thức thanh toán cho khách hàng,bao gồm thanh toán qua thẻ tín dụng, chuyển khoản ngân hàng, thanhtoán khi nhận hàng
Đăng ký tài khoản: Cho phép khách hàng đăng ký tài khoản để có thểđặt hàng, quản lý thông tin cá nhân, đăng ký nhận thông tin khuyếnmãi và các chương trình ưu đãi khác
Chính sách giao hàng: Cung cấp thông tin chi tiết về các chính sáchgiao hàng, bao gồm địa chỉ giao hàng, thời gian giao hàng, phí vậnchuyển,
Đánh giá sản phẩm: Cho phép khách hàng đánh giá và nhận xét về sảnphẩm đã mua, giúp người dùng khác có thêm thông tin để quyết địnhmua sản phẩm
Hỗ trợ khách hàng: Cung cấp kênh hỗ trợ khách hàng để giải đáp cácthắc mắc và hỗ trợ khi gặp sự cố khi mua hàng
Thông tin liên hệ: Cung cấp thông tin liên hệ của cửa hàng, bao gồmđịa chỉ, số điện thoại, email, để khách hàng có thể liên hệ khi cần Quản lý đơn hàng: Cho phép chủ sở hữu website quản lý các đơnhàng, theo dõi trạng thái đơn hàng và xử lý các yêu cầu của kháchhàng
Trang 8Phần 2: Công nghệ và thuật toán sử dụng
Trang 9Phần 3: Phân tích thiết kế bài toán
3.1 Thiết kế cơ sở dữ liệu:
3.1.1 Mô tả nghiệp vụ
Tài khoản có 2 loại: một là tài khoản của khách hàng và tài khoản của admin
- Tài khoản của khách hàng có quyền như sau:
+ Đầu tiên khách hàng sẽ truy cập vào website :
+ Tại trang chính khách hàng có thể được xem danh sách liệt
kê tất cả các mặt hàng của cửa hàng, xem tất cả các sản phẩmmới nhất theo loại sản phẩm nào đó (CPU, Mainboard, Ram,SSD, …)
+ Khách hàng có thể thực hiện tìm kiếm một sản phẩm thôngqua tên món hàng, tìm kiếm nhà sản xuất
+ Khách hàng có thể chọn xem chi tiết một sản phẩm :Tên đầy đủ, loại, nhà sản xuất, thông số kỹ thuật,giá, số lượng còn, số sao đánh giá và bình luận sản phẩm đó
+ Khi đã muốn mua một sản phẩm, khách hàng có thể chọn sản phẩm kèm với số lượng cần lấy vào “giỏ hàng” Giỏ hàng là một bản chi tiết hóa đơn tạm thời lưu thông tin về các sản phẩm khác hàng đã chọn cùng với số lượng và tổng tiền cho mỗi chi tiết ấy, giỏ hàng có thể được thêm, bớt, chỉnh sửa như : thêm một sản
phẩm (bằng cách quay lại trang chính chọn món hàng và “thêm vào giỏ hàng”),loại đi một món hàng (khi khách xem giỏ hàng và không còn muốn mua món hàng đó nữa),chỉnh sửa tăng,giảm số lượng của một sản phẩm (khi khác hàng muốn mua thêm hoặc
không một lượng sản phẩm đó )
+ Khi đã muốn hoàn thành quá trình mua hàng khách hàng có thể kiểm tra lại giỏ hàng, xem lại các thông tin về giá cả,số lượng, khi đã ưng ý, khác hàng có thể chốt lại hóa đơn và thực hiện mua hàng
+ Lúc này khách hàng được yêu cầu đăng nhập vào tài khoản giao dịch
để thực hiện xác nhận thanh toán Ở đây ta giả sử cửa hàng của ta có cho thanh toán COD ( nhận hàng rồi mới thanh toán tiền)
+ Tài khoản của khánh hàng bao gồm tên tài khoản, mật khẩu đăng nhập tài khoản, tên chủ tài khoản, thời điểm tạo tài khoản,thời điểm thực hiện giao dịch cuối cùng, email, số điện thoại chủ tài khoản
Trang 10+ Tiếp tục,khách hàng đăng nhập thành công sẽ được kiểm tra đơn hàng,nếu đã được khách hàng sẽ phải điền địa điểm thực hiện vận chuyển hàng,nếu không khách hàng khách hàng có thể chỉnh lại giỏ hàng hoặc hủy giao dịch.Khách hàng đồng ý thực hiện giao dịch, hóa đơn sẽ được lưu lại.
+Khách hàng có thể xem trạng thái đơn hàng của mình Cuối cùng khi nhận được hàng, khách hàng sẽ xác nhận việc đã nhận đầy đủ hàng và thanh toán cho shipper
- Thứ hai là tài khoản của admin:
+ Admin có một trang riêng để quản lý tất cả khách hàng và cácsản phẩm ở trên webite
+ Admin có quyền thêm, sửa, xóa, cập nhật các sản phẩm trênwebsite,
+ Admin có thể xem thống kế lượng hàng bán ra, mặt hàng đượcbán nhiều nhất, tổng doanh thu, …
3.1.2 Biểu đồ Use-Case
a Biểu đồ Use-case tổng quát
Trang 11b Biểu đồ Use-case phân rã mức 2Use-case đăng ký tài khoản
Trang 12Use-case đăng nhập
Trang 13Use-case tìm kiếm sản phẩm
Use-case quản lý sản phẩm
c Đặc tả Use-case
Trang 14Use-case đăng ký tài khoản
Tên của Use-case Đăng ký tài khoản
Mô tả Khách hàng chưa có tài khoản có thể đăng
ký trở thành user để hưởng một số ưu đãiLuồng sự kiện Use-case bắt đầu khi tác nhân click
vào nút đăng ký tại trang chủTác nhân sẽ phải điền tất cả thôngtin vào các form như (email, mậtkhẩu, tên, số điện thoại, …)
Hệ thống sẽ trả về người dùng cóđăng ký thành công hay khôngLuồng thay thế và
các ngoại lệ
Người dùng không nhập đầy đủ thông tin
sẽ hiện thông báo không nhập đủĐiều kiện bắt buộc Không có
Điều kiện mở rộng Không có
vào nút đăng nhập tại trang chủ
Hệ thống kiểm tra email và mậtkhẩu có trong hệ thống khôngThông báo đăng nhập thành cônghoặc thất bại
Luồng thay thế và
các ngoại lệ
Điều kiện bắt buộc Không có
Trang 15Điều kiện mở rộng Không có
vào nút thêm sản phẩm tại trangCMS của riêng admin
Admin điền các thông tin sản phẩm
và bấm lưu
Hệ thống sẽ trả về thông báo cóthêm sản phẩm thành công haykhông
Luồng thay thế và
các ngoại lệ
Điều kiện bắt buộc Không có
Điều kiện mở rộng Không có
+) Thực thể 2: BinhLuan ( Bình Luận )
Trang 193.2 Biểu đồ trình tự
3.2.1 Biểu đồ trình tự chức năng login
3.2.2 Biểu đồ trình tự chức năng thêm sản phẩm
Trang 203.2.3 Biểu đồ trình tự chức năng đặt hàng
3.3 Biểu đồ lớp
Trang 213.4 Thiết kế chi tiết một số lớp
3.4.1 Lớp SanPham
Bảng sản phẩm
Tên thuộc tính Kiểu dữ liệu Mô tả
maLoaiSanPham int Mã loại sản phẩm
tenSanPham VARCHAR(100) Tên sản phẩm
moTa VARCHAR(100), Mô tả
soLuong INT Số lượng
maNhaSanxuat INT Mã nhà sản xuất
CREATE TABLE SanPham (
maSanPham INT PRIMARY KEY AUTO_INCREMENT,
Tên thuộc tính Kiểu dữ liệu Mô tả
maLoaiSanPham INT Mã loại sản phẩm
tenLoaiSanPham VARCHAR(20) Tên loại sản phẩm
CREATE TABLE LoaiSanPham(
maLoaiSanPham INT PRIMARY KEY AUTO_INCREMENT,tenLoaiSanPham VARCHAR(20)
) ;
3.4.3 Lớp NhaSanXuat
Tên thuộc tính Kiểu dữ liệu Mô tả
maNhaSanxuat INT Mã nhà sản xuất
tenNhaSanXuat VARCHAR(100) Mã nhà sản xuất
Trang 22diaChi VARCHAR(200) Địa chỉ
email VARCHAR(100), Email
CREATE TABLE NhaSanXuat(
maNhaSanXuat INT PRIMARY KEY AUTO_INCREMENT,tenNhaSanXuat VARCHAR(100) ,