1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khoa học máy tính xây dựng website bán hàng Điện tử qua mạng

85 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 85
Dung lượng 7,22 MB

Nội dung

Nghiên cứu tổng quan về cách tạo lập nên một trang website bán hàngonline hoàn chỉnh cùng với một số công nghệ mới có thể áp dụng vào cho trangweb.Với mục tiêu đặt ra như vậy, những nội

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

Giảng viên hướng dẫn : TS Nguyễn Thị Mỹ Bình

Hà Nội – 2023

MỤC LỤC

Trang 2

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẲT iiDANH MỤC CÁC BẢNG iiiDANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ iv

MỞ ĐẦU _viiCHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI _11.1 Giới thiệu về hệ thống _11.2 Lựa chọn công nghệ cho hệ thống. _11.2.1 Angular 11.2.2 ASP NET CORE 31.2.3 Typescript 71.2.4 MySql _81.3 Các lý thuyết liên quan đến hệ thống 101.3.1 Lập trình hướng đối tượng (Object Oriented Programming – OOP)10

1.3.2 HTTP và HTTPS 121.3.3 Mô hình khách hàng với khách hàng (Consumer to Consumer E-Commerce) 131.3.4 Hệ thống quản lý cơ sở dữ liệu quan hệ (Relational database management system) _15CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG _182.1 Khảo sát hệ thống _182.1.1 Mục đích 182.1.2 Mô tả hệ thống _182.1.3 Nhóm các chức năng chính 192.2 Phân tích hệ thống _202.2.1 Mô hình hoá chức năng _202.2.2 Phân tích hệ thống _212.2.3 Xây dựng biểu đồ Use Case _292.2.4 Mô tả use case 302.2.5 Xây dựng cơ sở quan hệ dữ liệu 50

Trang 3

CHƯƠNG 3: CÀI ĐẶT MÔI TRƯỜNG VÀ KẾT QUẢ _593.1 Cài đặt môi trường _593.1.1 Cài đặt visual code _593.1.2 Cài đặt NodeJS 593.1.3 Cài đặt git-scm 593.1.4 Cài đặt Angular CLI 603.1.5 Cài đặt Visual Studio 2022 trên Windows _603.2 Kết quả 623.3 Kiểm thử 69KẾT LUẬN VÀ KIẾN NGHỊ 73TÀI LIỆU THAM KHẢO _74

Trang 4

LỜI CẢM ƠN

Với sự giúp đỡ từ cô giáo hướng dẫn TS Nguyễn Thị Mỹ Bình do nhàtrường Đại học Công nghiệp Hà Nội phân công với mục đích giúp đỡ em trongquá trình hoàn thành đồ án tốt nghiệp của mình “Website bán hàng online”

Để hoàn thành khóa luận này, em xin chân thành cảm ơn tới các thầy côgiáo đã tận tình hướng dẫn, giảng dạy trong suốt quá trình học tập, nghiên cứu vàrèn luyện ở Trường Đại Học Công nghiệp Hà Nội cùng với bạn bè trên trườnglớp và sự đồng hành của bố mẹ trong suốt quá trình em học tập tại nhà trường.Đặc biệt xin gửi lời cảm ơn chân thành tới cô giáo hướng dẫn TS Nguyễn Thị

Mỹ Bình đã tận tình, chu đáo hướng dẫn em thực hiện khoá luận này

Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất.Song do thời gian có hạn, trình độ hiểu biết và nhận thức còn hạn chế cho nêntrong đồ án này không thể tránh khỏi những thiếu sót, em rất mong nhận được sựđóng góp ý kiến của các thầy cô và bạn bè để em có thể hoàn thiện đồ án này tốthơn

Em xin chân thành cảm ơn!

Hà Nội, ngày 01 tháng 05 năm 2023Sinh viên thực hiện

Tạ Quang Huy

Trang 5

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẲT

ST

T

Viết tắt Đầy đủ

2 RDBMS Relational database management system

3 SQL Structured Query Language

4 HTTP Hypertext Transfer Protocol

5 HTTPS Hypertext Transfer Protocol Sercure

7 HTML The HyperText Markup Language

8 CSS Cascading Style Sheets

9 C2C Customer to customer

10 OOP Object Oriented Programming

Trang 6

DANH MỤC CÁC BẢNG

Bảng 1: Bảng phân tích chức năng 19Bảng 2: Xác định các thực thể 27Bảng 3: Kiểm thử 71

Trang 7

DANH MỤC CÁC HÌNH VẼ,

Hình 1.1 Angular 2

Hình 1.2 Phương thức hoạt động của Angular 2

Hình 1.3 Component trong Angular 3

Hình 1.4 ASP.NET Core 4

Hình 1.5 Typescript 7

Hình 1.6 MySQL 8

Hình 1.7 HTTP 12

Hình 1.8 HTTPS 12

Hình 1.9 Database demo 15

YHình 2.1: Sơ đồ phân tích chức năng mức gộp 20

Hình 2.2: Hình Sơ đồ phân rã chức năng 20

Hình 2.3: Sơ đồ luồng dữ liệu mức đỉnh 21

Hình 2.4: Sơ đồ phân ra “Quản lý sản phẩm” 21

Hình 2.5: Sơ đồ phân ra “Quản lý báo cáo thống kê” 22

Hình 2.6: Sơ đồ phân ra “Quản lý đơn hàng” 22

Hình 2.7: Sơ đồ phân ra “Quản lý người dùng” 23

Hình 2.8: Mô hình khái niệm dữ liệu 27

Hình 2.9: Hình Mô hình liên kết thực thể 28

Hình 2.10: Biểu đồ use case tổng quát 29

Hình 2.11: Biểu đồ trình tự phần tìm kiếm 31

Hình 2.12: Biểu đồ trình tự phần đăng nhập 32

Hình 2.13: Biểu đồ trình tự phần đăng ký 34

Hình 2.14: Biểu đồ trình tự phần đánh giá 35

Hình 2.15: Biểu đồ trình tự phần đánh giá 37

Hình 2.16: Biểu đồ trình tự phần thêm vào giỏ hàng 38

Hình 2.17: Biểu đồ trình tự phần xem giỏ hàng 40

Hình 2.18: Biểu đồ trình tự phần xem thủ tục 41

Trang 8

Hình 2.19: Biểu đồ trình tự phần xem thêm đơn hàng 43

Hình 2.20: Biểu đồ trình tự phần xem xoá đơn hàng 45

Hình 2.21: Biểu đồ trình tự phần xem xoá đơn hàng 47

Hình 2.22: Biểu đồ trình tự phần xem danh sách đơn hàng 48

Hình 2.23: Biểu đồ trình tự phần xem danh sách người dùng 49

Hình 2.24: Sơ đồ liên kết cho CSDL website bán hàng linh kiện 50

Hình 2.25: Bảng address 51

Hình 2.26: Bảng category 51

Hình 2.27: Bảng OrderDetail 52

Hình 2.28: Bảng comment 52

Hình 2.29: Bảng order 53

Hình 2.30: Bảng product 53

Hình 2.31: Bảng rating 53

Hình 2.32: Bảng refreshtoken 54

Hình 2.33: Bảng user 54

Hình 2.34: Bảng tổng quan api thứ nhất 55

Hình 2.35: Bảng tổng quan api thứ 2 56

Hình 2.36: Bảng tổng quan api thứ 3 57

YHình 3.1: Điều khoản và chính sách Visual Studio 2022 60

Hình 3.2: Cài đặt môi trường Visual Studio 2022 60

Hình 3.3: Giao diện trang chủ 61

Hình 3 4: Sản phẩm theo thể loại 61

Hình 3.5:Chi tiết sản phẩm 62

Hình 3.6: Trang tìm kiếm sản phẩm 62

Hình 3.7: Trang đăng nhập 63

Hình 3 8: Trang đăng ký 63

Hình 3.9: Giỏ hàng 64

Hình 3 10: Thủ tục thanh toán 64

Trang 9

Hình 3.11: Trang xác nhận Thankyou 65

Hình 3.12: Trang thêm mới sản phẩm 65

Hình 3.13: Trang chỉnh sửa sản phẩm 66

Hình 3.14: Trang chỉnh sửa chi tiết sản phẩm 66

Hình 3.15: Trang danh sách người dùng 66

Hình 3.16: Danh sách đơn hàng 67

Hình 3 17: Trang cá nhân người dùng 67

Hình 3.18: Trang sản phẩm mới 68 Y

Trang 10

MỞ ĐẦU

Lý do chọn đề tài: Với sự phát triển như vũ bão của công nghệ thông tinnói chung và công nghệ phần mềm nói riêng, việc phát triển một ứng dụngwebsite ngày càng phổ biến Hầu như đâu đâu ta cũng thấy có sự xuất hiện củanhững trang web với mục đích là quản lý, quảng cáo, tính toán, … của trườnghọc, các công ty, tập đoàn lớn hay thậm chí là những start up nhỏ Bởi vậy khôngthể phủ nhận lợi ích to lớn và website mang lại cho họ

Website còn gọi là trang web (hoặc trang mạng) là tập hợp các trang chứathông tin bao gồm văn bản, hình ảnh, video, dữ liệu, … nằm trên một domain,được lưu trữ trên máy chủ web Website có thể được người dùng truy cập từ xathông qua mạng Internet

Một trang web tồn tại dưới dạng tập tin HTML hoặc XHTML có thể truycập bằng giao thức HTTP hoặc HTTPS Website có thể xây dựng từ các tập tinHTML (website tĩnh) hoặc vận hành với các CMS chạy trên máy chủ (websiteđộng) Bên cạnh đó, website được xây dựng trên nhiều ngôn ngữ lập trình khácnhau như: PHP, JavaScript, Java, …

Đó là lý em chọn đề tài “Xây dựng website bán hàng online” làm đồ án tốtnghiệp

Mục đích của đồ án: Đề tài tìm hiểu cơ sở lý thuyết về website nói chung

và xây dựng một ứng dụng trên trang web nói riêng cũng như cách thiết kế mộttrang web hoàn chỉnh cho các mục đích khác nhau Mục tiêu chính của đề tài lànghiên cứu về thiết kế website bán hàng online hay còn gọi là E-commere

Đối tượng và phạm vi nghiên cứu:

Đồ án nghiên cứu cách tạo lập lên một trang website bán hàng online Bêncạnh đó, nghiên cứu thêm về các công nghệ để ứng dụng thêm vào cho trangweb

Phương pháp nghiên cứu:

Trang 11

Nghiên cứu tổng quan về cách tạo lập nên một trang website bán hàngonline hoàn chỉnh cùng với một số công nghệ mới có thể áp dụng vào cho trangweb.

Với mục tiêu đặt ra như vậy, những nội dung và kết quả nghiên cứu chínhcủa đồ án được trình bày trong ba chương như sau:

Chương 1: Tổng quan về đề tài

Chương 2: Phân tích và thiết kế hệ thông cho trang web bán hàng onlineChương 3: Nội dung và kết quả

Phần kết luận đưa ra những đánh giá về những kết quả đạt được và nhữngkhó khăn gặp phải trong quá trình nghiên cứu thực hiện đồ án

Trang 12

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu về hệ thống

Nhu cầu mua sắm online hiện nay ngày càng phổ biến hơn, một phần là doCOVID-19 đã kéo dài dai dăng trong suốt thời gian gần đây Việc mọi ngườikhông được đi lại tự do cũng như phải tuân thủ biện pháp 5k của chính phủ đãlàm cho việc mua sắm khó khăn hơn

Theo một khảo sát vào cuối năm 2021 của PwC, trong 9.000 người tiêudùng thuộc 26 quốc gia (có Việt Nam), có tới 41% người tiêu dùng toàn cầu đãtăng cường mua sắm trực tuyến qua thiết bị điện tử thay vì trực tiếp tại cửa hàng,

tỷ lệ này là 69% tại Việt Nam Trong tương lai, 50% người mong muốn sẽ muasắm trực tuyến nhiều hơn

Năm 2022, hơn 51 triệu người Việt Nam đã tham gia hoạt động mua sắmtrực tuyến, tổng chi tiêu đạt 12,42 tỷ USD Trong đó, 73% người cho biết họthường xuyên mua hàng trên các nền tảng mua sắm thương mại điện tử và 59%người đã từng đặt hàng hoặc mua sắm trên các website

Từ những yêu cầu thực tế đó và cũng như phân tích từ những trangwebsite bán hàng đi trước, em đã tìm hiểu và nghiên cứu cũng như đánh giá để

đi đến giải pháp là xây dựng một trang web bán hàng online Để người dùng tiệnlợi dễ dàng trong việc mua sắm hàng hoá

Trang web cung cấp đầy đủ thông tin hàng hoá, người dùng dễ dàng trongviệc tìm kiếm thông tin hàng hoá Thông tin cá nhân, giá thành sản phẩm cũng sốlượng hàng hoá mà người dùng đặt

1.2 Lựa chọn công nghệ cho hệ thống.

1.2.1 Angular

Angular là một javascript framework do google phát triển để xây dựng cácSingle Page Application (SPA) bằng JavaScript, HTML và TypeScript Angularcung cấp các tính năng tích hợp cho animation, http service và có các tính năngnhư auto-complete, navigation, toolbar, menus, … Code được viết bằngTypeScript, biên dịch thành JavaScript và hiển thị tương tự trong trình duyệt

Trang 13

Hình 1.1 Angular

Angular có rất nhiều đặc điểm hỗ trợ cho việc tạo trang web ở front end 1cách nhanh chóng và mạnh mẽ Ví dụ SPA, Data Binding, Component, Validate,tương tác Back-End Trong Angular còn có Angular CLI là công cụ giúp tạo vàquản lý project rất nhanh chóng

Hình 1.2 Phương thức hoạt động của Angular

Component

Component được tạo ra để hiện thực 1 chức năng nào đó trong ứng dụngcủa bạn Ví dụ component Liên hệ, component giới thiệu, bình luận, đăng ký, giỏhàng, chi tiết sản phẩm…

Mỗi component gồm 3 phần: Phần view (file html, css) – là nơi codehtml, css và hiện dữ liệu Phần code chính (file ts) – là nơi viết code typescript

để tính toán, xử lý trong component Phần metadata là nơi khai báo các thông tin

bổ sung cho component

Trang 14

Hình 1.3 Component trong Angular

Data binding

DataBinding là tính năng rất được yêu thích của Angular Đây là khả năngtruyền dữ liệu qua các comppnent và từ component ra view Chi tiết hơn đề cậptrong link Data Binding Trong Angular

Module

Angular cung cấp sẵn nhiều module, các module này được gọi làNgModules Ví dụ như Forms Module, RouterModule, HttpClientModule Ngoài

ra có thể tạo mới nhiều module để sử dụng

Mỗi ứng dụng Angular có 1 module đặc biệt, tên là AppModule Đây làmodule gốc, được dùng để khởi chạy ứng dụng

Service

Service là các đoạn code được tạo ra để phục vụ một chức năng nào đó.Chẳng hạn như tính toán, lấy dữ liệu từ server, validate dữ liệu…Service được sửdụng trong component thông qua dependency injection Mỗi service lưu trongfile tênService.service.ts

1.2.2 ASP NET CORE

Trang 15

ASP.NET Core là một framework mới của Microsoft Nó được thiết kế lại

từ đầu để trở nên nhanh chóng, linh hoạt và chạy trên được nhiều nền tảng khácnhau Trong bài viết này, ASP.NET Core là một framework có thể được sử dụng

để phát triển web với NET Nếu bạn có kinh nghiệm làm việc với MVC hoặcWeb API trong một vài năm thì bạn sẽ nhận thấy những tính năng quen thuộc.Kết thúc khóa học ASP.NET Core của NET CORE VN Bạn sẽ có những thứ cầnthiết để bắt đầu làm việc được với ASP.NET Core và viết 1 ứng dụng có thểthêm, sửa hay xem dữ liệu từ database như các môn lập trình khác bạn đã từnghọc

Hình 1.4 ASP.NET Core

Sơ lượt về lịch sử của ASP.NET Core

ASP.NET đã được sử dụng từ nhiều năm để phát triển các ứng dụng web

Kể từ đó, framework này đã trải qua một sự thay đổi tiến hóa đều đặn và cuốicùng đã đưa chúng ta đến với ASP.NET Core 1.0 hậu duệ mới gần đây nhất củanó

ASP.NET Core không phải là phiên bản tiếp theo của ASP.NET 4.6

Đó là một framework hoàn toàn mới, may mắn rằng nó một dự án side-by-sidetương tự với mọi thứ mà chúng ta biết

Nó thực ra được viết lại trên framework ASP.NET 4.6 hiện tại những kích thướcnhỏ hơn và nhiều modular hơn

Trang 16

ASP.NET Core là gì?

ASP.NET Core là một web framework mã nguồn và được tối ưu hóa chocloud để phát triển các ứng dụng web chạy trên nhiều nền tảng nhưWindows, Linux và Mac Hiện tại, nó bao gồm MVC framework được kếthợp các tính năng của MVC và Web API thành một web framework duynhất

Các ứng dụng ASP.NET Core có thể chạy trên NET Core hoặc trên NETFramework hoàn chỉnh

Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng

để triển khai tới cloud hoặc chạy on-premises

Nó bao gồm những modular với các thành phần tối thiểu, do đó bạn giữđược tính linh hoạt trong quá trình xây dựng các giải pháp của mình

Bạn có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET Coretrên Windows, Mac và Linux

Ưu điểm của ASP.NET Core

ASP.NET Core đi kèm với những ưu điểm sau:

ASP.NET Core có một số thay đổi kiến trúc dẫn đến modular frameworknhỏ hơn

ASP.NET Core không còn dựa trên System.Web.dll Nó dựa trên một tậphợp nhiều yếu tố của Nuget packages

Điều này cho phép bạn tối ưu ứng dụng của mình chỉ cần những NuGetpackages cần thiết

Lợi ích của diện tích bề mặt ứng dụng nhỏ hơn thì bảo mật chặt chẽ hơn,giảm dịch vụ, cải thiện hiệu suất và giảm chi phí

Với ASP.NET Core, bạn có thể nhận được các cải tiến sau:

 Xây dựng và chạy các ứng dụng ASP.NET Core đa nền tảng trênWindows, Mac và Linux

 Được xây dựng trên NET Core, hỗ trợ side-by-side app versioning

 Công cụ mới giúp đơn giản hóa việc phát triển web hiện đại

 Liên kết đơn các web stack như Web UI và API Web

 Cấu hình dựa trên môi trường đám mây sẵn có

Trang 17

 Được xây dựng dựa trên cho DI (Dependency Injection).

 Tag Helpers làm cho các Razor makup trở nên tự nhiên hơn với HTML

 Có khả năng host trên IIS hoặc self-host

ASP.NET Core 6

Microsoft Net 6 đã được release vào tháng 11 năm 2021 với rất nhiều cảitiến và features mới cho lập trình viên Điểm nhấn mạnh nhất trong đó là sự rađời của ASP.NET CORE 6, một bản nâng cấp quan trọng của nền tảng xây dựngwebsites mã nguồn mở của Microsoft

ASP.NET core 6 được xây dựng trên nền tảng của Net core runtime, qua

đó cho phép các nhà phát triển xây dựng ứng dụng Web có thể chạy trên nhiềunền tảng khác nhau từ Windows đến Linux hay MacOS

Với đặc thù công việc tại Niteco, việc tìm hiểu và apply các công nghệ mới vàocông việc và xây dựng giải pháp gần như là điều bắt buộc với mỗi lập trình viên.Trong bài này, chúng ta hãy cùng nhau điểm qua những tính năng nổi bật nhấtcủa ASP.NET core

Tăng hiệu năng (performance)

Performance là một phần rất quan trọng khi phát triển ứng dụng hiện đạingày nay Về mặt kỹ thuật, tăng performance đồng nghĩa với việc tối ưu hóa tàinguyên server tốt hơn, giảm được chi phí hosting Mặt khác, performance tốt hơncũng đồng nghĩa với việc SEO cho website cũng tốt hơn Có thể nói, ai cũngmuốn tốc độ website của mình nhanh nhất có thể

Với phiên bản ASP.NET core 6, về hiệu năng chúng ta có:

 Throughput của middleware request tăng ~5%

 MVC trên Linux tăng ~12%

 Kết nối HTTPS sử dụng ít bộ nhớ hơn ~40%

 Protobuf serialization nhanh hơn ~20%

Với các trang CMS và Commerce của Optimzely, vốn build dựa trên nềntảng ASP.NET, khi nâng cấp lên ASP.NET core 6 (Optimizely CMS 12 vàCommerce 14), performance đã nhanh hơn đáng kể Với CMS 12, tốc độ phảnhồi (response time) đã nhanh hơn đến 3 lần, thậm chí có những page có tốc độnhanh hơn đến 10 lần Các server của CMS 12 và Commerce 14 cũng có khảnăng xử lý lượng server request gấp 3 lần so với các phiên bản trước đó ở cùng

Trang 18

cấu hình phần cứng Có thể nói ASP.NET core 6 mang lại một trải nghiệm kháchẳn về performance so với version trước đây.

1.2.3 Typescript

TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, nó

có thể được coi là một phiên bản nâng cao của Javascript bởi việc bổ sung tùychọn kiểu tĩnh và lớp hướng đối tượng mà điều này không có ở Javascript.TypeScript có thể sử dụng để phát triển các ứng dụng chạy ở client-side(Angular2) và server-side (NodeJS)

Hình 1.5 Typescript

TypeScript sử dụng tất cả các tính năng của của ECMAScript 2015 (ES6)như classes, modules Không dừng lại ở đó nếu như ECMAScript 2017 ra đời thìmình tin chắc rằng TypeScript cũng sẽ nâng cấp phiên bản của mình lên để sửdụng mọi kỹ thuật mới nhất từ ECMAScript Thực ra TypeScript không phải rađời đầu tiên mà trước đây cũng có một số thư viện như CoffeScript và Dart đượcphát triển bởi Google, tuy nhiên điểm yếu là hai thư viện này sư dụng cú phápmới hoàn toàn, điều này khác hoàn toàn với TypeScript, vì vậy tuy ra đời saunhưng TypeScript vẫn đang nhận được sự đón nhận từ các lập trình viên

Lợi thế khi sử dụng

JavaScript đã đủ tốt và bạn có khả năng tự hỏi: Liệu tôi có thực sự cần họcTypeScript? Về mặt kỹ thuật, bạn không cần học TypeScript để trở nên một lậptrình viên giỏi, hầu như mọi người đều ổn mà không có nó Tuy vậy, thực hiệncông việc với TypeScript có một số lợi thế sau:

 Với static typing, code viết bằng TypeScript dễ dự đoán hơn, và dễ debughơn

 Đơn giản tổ chức code cho các ứng dụng cực lớn và phức tạp nhờmodules, namespaces và giúp đỡ OOP mạnh mẽ

Trang 19

 TypeScript có một bước biên dịch thành JavaScript, sẽ bắt toàn bộ các loạilỗi trước khi chúng chạy và làm hỏng một vài thứ.

 Framework Angular 2 viết với TypeScript và nó cũng khuyến khích cáclập trình viên dùng ngôn ngữ này trong các dự án của họ

Biên dịch sang Javascript

 TypeScript được viết trong các file ts (hoặc tsx cho JSX), nó chẳng thể sửdụng trực tiếp trong trình duyệt và cần biên dịch thành JavaScript FFiềunày có khả năng hành động với một vài cách:

 Trong terminal dùng lệnh tsc

 Trực tiếp trong Visual Studio hoặc các IDE và trình biên soạn khác

 Dùng các task runner như Gulp

 Bí quyết trước tiên là đơn giản nhất, cho những người mới tiếp tục, vì thếchúng ta sẽ sử dụng nó trong bài đăng này

1.2.4 MySql

MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hìnhclient-server RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các

cơ sở dữ liệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng

Hình 1.6 MySQL

MySQL là một trong số các phần mềm RDBMS RDBMS và MySQLthường được cho là một vì độ phổ biến quá lớn của MySQL Các ứng dụng weblớn nhất như Facebook, Twitter, YouTube, Google, và Yahoo! đều dùng MySQL

Trang 20

cho mục đích lưu trữ dữ liệu Kể cả khi ban đầu nó chỉ được dùng rất hạn chếnhưng giờ nó đã tương thích với nhiều hạ tầng máy tính quan trọng như Linux,macOS, Microsoft Windows, và Ubuntu.

Database là tập hợp dữ liệu theo cùng một cấu trúc Hãy thử nghĩ về việcchụp hình tự sướng: bạn nhấn nút chụp ảnh về chính bản thân bạn Hình ảnh là

dữ liệu, thư viện lưu ảnh là cơ sở dữ liệu Cơ sở dữ liệu, hay database, là nơichứa và sắp đặt dữ liệu Dữ liệu được đặt trong một bộ dữ liệu chung, dataset,được tổ chức sắp xếp giống như một bảng tính vậy Mỗi “bảng” này có liên hệvới nhau theo cách nào đó Vì vậy từ Relational (liên hệ) trong RDBMS có ýnghĩa như vậy Nếu phần mềm không hỗ trợ mô hình dữ liệu quan hệ với nhaunhư vậy thì gọi là DBMS

Open source dịch là mã nguồn mở, có nghĩa là ai cũng có thể dùng vàchỉnh sửa nó Bất kỳ ai cũng có thể cài đặt phần mềmn ày Bạn cũng có thể họccách tùy chỉnh phần mềm theo nhu cầu của bạn Tuy nhiên, giấy phép GPL(GNU Public License) quyết định bạn có thể làm gì tùy vào điều kiện nhất định.Phiên bản thương mại cũng được xuất bản nếu bạn cần thêm chủ quyền linh hoạt

và hỗ trợ cao cấp

Máy tính cài đặt và chạy phần mềm RDBMS được gọi là client (máykhách) Mỗi khi chúng cần truy cập dữ liệu, chúng kết nối tới máy chủ (server)RDBMS Cách thức này chính là mô hình “client-server”

MySQL Server là máy tính hay một hệ các máy tính cài đặt phần mềmMySQL dành cho server để giúp bạn lưu trữ dữ liệu trên đó, để máy khách có thểtruy cập vào quản lý Dữ liệu này được đặt trong các bảng, và các bảng có mốiliên hệ với nhau MySQL server nhanh, an toàn, đáng tin cậy Phần mềm MySQLcũng miễn phí và được phát triển, phân phối và hỗ trợ bởi Oracle Corporation.MySQL client không hẵn phải cài phần mềm MySQL của Oracle mà lànói chung của mọi phần mềm có thể thực hiện truy vấn lên một MySQL server

và nhận kết quả trả về MySQL client điển hình là đoạn mã PHP script trên mộtmáy tính hay trên cùng server dùng để kết nối tới cơ sở dữ liệu MySQL database.Phpmyadmin cũng là một MySQL client có giao diện người dùng Một số công

cụ miễn phí dùng làm MySQL là:

 MySQL Workbench (Mac, Windows, Linux), Miễn phí, mã nguồn mở

 Sequel Pro (Mac), miễn phí, mã nguồn mở

Trang 21

 HeidiSQL (Windows; chạy trên Mac hoặc Linux bằng WINE emulator),miễn phí

 phpMyAdmin (web app), miễn phí, mã nguồn mở

1.3 Các lý thuyết liên quan đến hệ thống

1.3.1 Lập trình hướng đối tượng (Object Oriented Programming – OOP)

Lập trình hướng đối tượng (tiếng Anh: Objectoriented programming OOP) là một mẫu hình lập trình dựa trên khái niệm "đối tượng", mà trong đó, đốitượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính;

-và mã nguồn, được tổ chức thành các phương thức Phương thức giúp cho đốitượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, màđối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this"hoặc "self") Trong lập trình hướng đối tượng, chương trình máy tính được thiết

kế bằng cách tách nó ra khỏi phạm vi các đối tượng tương tác với nhau Ngônngữ lập trình hướng đối tượng khá đa dạng, phần lớn là các ngôn ngữ lập trìnhtheo lớp, nghĩa là các đối tượng trong các ngôn ngữ này được xem như thực thểcủa một lớp, được dùng để định nghĩa một kiểu dữ liệu

OOP được xem là giúp tăng năng suất, đơn giản hóa độ phức tạp khi bảotrì cũng như mở rộng phần mềm bằng cách cho phép lập trình viên tập trung vàocác đối tượng phần mềm ở bậc cao hơn Ngoài ra, nhiều người còn cho rằngOOP dễ tiếp thu hơn cho những người mới học về lập trình hơn là các phươngpháp trước đó Một cách giản lược, đây là khái niệm và là một nỗ lực nhằm giảmnhẹ các thao tác viết mã cho người lập trình, cho phép họ tạo ra các ứng dụng màcác yếu tố bên ngoài có thể tương tác với các chương trình đó giống như làtương tác với các đối tượng vật lý

Những đối tượng trong một ngôn ngữ OOP là các kết hợp giữa mã và dữliệu mà chúng được nhìn nhận như là một đơn vị duy nhất Mỗi đối tượng có mộttên riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua têncủa nó Như vậy, mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữliệu (bên trong của nó), và gửi ra hay trả lời đến các đối tượng khác hay đến môitrường

Lập trình hướng đối tượng là một phương pháp lập trình có 4 tính chấtchính sau:

Trang 22

 Tính trừu tượng (abstraction): Đây là khả năng của chương trình bỏ quahay không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếplàm việc lên, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết.Mỗi đối tượng phục vụ như là một "động tử" có thể hoàn tất các công việcmột cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên lạc với các đốitượng khác mà không cần cho biết làm cách nào đối tượng tiến hành đượccác thao tác Tính chất này thường được gọi là sự trừu tượng của dữ liệu.

 Tính trừu tượng còn thể hiện qua việc một đối tượng ban đầu có thể cómột số đặc điểm chung cho nhiều đối tượng khác như là sự mở rộng của

nó nhưng bản thân đối tượng ban đầu này có thể không có các biện phápthi hành Tính trừu tượng này thường được xác định trong khái niệm gọi làlớp trừu tượng hay lớp cơ sở trừu tượng

 Tính đóng gói (encapsulation) và che giấu thông tin (information hiding):Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạngthái nội tại của một đối tượng Chỉ có các phương thức nội tại của đốitượng cho phép thay đổi trạng thái của nó Việc cho phép môi trường bênngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào làhoàn toàn tùy thuộc vào người viết mã Đây là tính chất đảm bảo sự toànvẹn của đối tượng

 Tính đa hình (polymorphism): Thể hiện thông qua việc gửi các thông điệp(message) Việc gửi các thông điệp này có thể so sánh như việc gọi cáchàm bên trong của một đối tượng Các phương thức dùng trả lời cho mộtthông điệp sẽ tùy theo đối tượng mà thông điệp đó được gửi tới sẽ có phảnứng khác nhau Người lập trình có thể định nghĩa một đặc tính (chẳng hạnthông qua tên của các phương thức) cho một loạt các đối tượng gần nhaunhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đốitượng sẽ tự động xảy ra tương ứng theo đặc tính của từng đối tượng màkhông bị nhầm lẫn

Ví dụ khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì cómột phương thức chung là "chu_vi" Khi gọi phương thức này thì nếu đối tượng

là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là "hinh_tron".Tính kế thừa (inheritance): Đặc tính này cho phép một đối tượng có thể có sẵncác đặc tính mà đối tượng khác đã có thông qua kế thừa Điều này cho phép cácđối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định

Trang 23

nghĩa lại Tuy nhiên, không phải ngôn ngữ định hướng đối tượng nào cũng cótính chất này.

1.3.2 HTTP và HTTPS

1.3.2.1 HTTP

HTTP - HyperText Transfer Protocol (Giao thức truyền tải siêu văn bản),

là một giao thức dùng để truyền tải thông tin qua Internet

Hình 1.7 HTTP

HTTP hoạt động theo mô hình Client - Server

Trong mô hình này, trình duyệt web mà user sử dụng đóng vai trò là Clienttạo request, gửi lên máy chủ Server, server tiếp nhận, xử lý request và phản hồilại cho client Và để Client và Server có thể nói chuyện được với nhau thì phảithông qua các giao thức Một trong những giao thức được sử dụng thường xuyênnhất chính là HTTP

1.3.2.2 HTTPS

Giống như HTTP, HTTPS -HyperText Transfer Protocol Secure cũng làmột giao thức giúp truyền thông tin giữa Client và Server

Hình 1.8 HTTPS

Trang 24

HTTPS bảo mật dữ liệu của bạn bằng cách sử dụng giao thức TSL(Transport Layer Security) hay còn gọi là SSL.

SSL là một dạng chứng thư số

SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn:

Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba Dữliệu phải được mã hoá để không thể bị đọc được bởi những người khác ngoàiclient và server Đây là cách giải quyết đối với bài toán phía trên

Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kiacủa kết nối Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thựccủa người sử dụng Điều này giúp cho người dùng sự tin cậy cần thiết trước khi

họ kết nối với website

Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch Thể hiện chính xácthông tin gốc gửi đến

Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mậtthông tin Xác thực và toàn vẹn dữ liệu đến người dùng SSL được tích hợp sẵnvào các trình duyệt và Web server Cho phép người sử dụng làm việc với cáctrang Web ở chế độ an toàn

1.3.3 Mô hình khách hàng với khách hàng (Consumer to Consumer Commerce)

E-Customer to customer (C2C) là một mô hình kinh doanh theo đó kháchhàng có thể giao dịch với nhau, điển hình là trong môi trường trực tuyến Trong

đó C2C đang ngày càng trở nên phổ biến hơn bởi hiệu quả chi phí mà nó manglại, bên cạnh đó, nó được nhiều chuyên gia dự đoán sẽ còn phát triển hơn trongtương lai

Trong tiếng Việt, C2C (customer-to-customer) được hiểu là Người tiêudùng tới người tiêu dùng Đúng như tên gọi của nó, C2C là một mô hình kinhdoanh mà trong đó, đại diện bên mua và đại diện bên bán đều là những cá nhân.Thông thường, các giao dịch này sẽ được thực hiện trong môi trường trựctuyến, thông qua một bên thứ ba đó là các nền tảng mua bán hàng trực tuyến quatrung gian, hoặc các trang web đấu giá trung gian

C2C sở hữu những đặc điểm như:

Trang 25

 Cạnh tranh về sản phẩm, mặt hàng kinh doanh: C2C là mô hình kinhdoanh giữa các cá nhân nên nó cho phép khách hàng trao đổi mua bán qualại với nhau Các cá nhân này không phải là doanh nghiệp sản xuất, nhữngsản phẩm mà họ bán có thể không còn có mặt trên thị trường nhưng vẫnnhận được nhiều quan tâm và ưa chuộng

 Tỷ suất lợi nhuận cho người bán cao hơn: cá nhân người bán sẽ đượchưởng tỷ suất lợi nhuận cao hơn bởi không còn sự tác động từ phía doanhnghiệp sản xuất hay nhà bán lẻ hoặc nhà bán buôn

 Thiếu kiểm soát trong chất lượng và thanh toán: không có sự can thiệp từphía nhà sản xuất hay phía bán lẻ hoặc bán buôn nên các sản phẩm giaodịch trong mô hình C2C sẽ không qua kiểm soát chặt chẽ về mặt chấtlượng và cả khâu thanh toán

 Lợi nhuận cao, chi phí thấp

 Đăng tin rao bán dễ dàng

1.3.4.1 Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu quan hệ là một tập hợp thông tin tổ chức dữ liệu theo cácmối quan hệ được xác định trước, nơi dữ liệu được lưu trữ trong một hoặc nhiềubảng (hoặc "quan hệ") của các cột và hàng, giúp dễ dàng xem và hiểu các cấutrúc dữ liệu khác nhau liên quan với nhau như thế nào Mối quan hệ là sự kết nối

Trang 26

logic giữa các bảng khác nhau, được thiết lập trên cơ sở tương tác giữa các bảngnày.

1.3.4.2 Mô hình cơ sở dữ liệu quan hệ

Được phát triển bởi EF Codd từ IBM vào những năm 1970, mô hình cơ sở

dữ liệu quan hệ cho phép bất kỳ bảng nào có liên quan đến một bảng khác bằngcách sử dụng một thuộc tính chung Thay vì sử dụng cấu trúc phân cấp để tổchức dữ liệu, Codd đã đề xuất chuyển sang sử dụng mô hình dữ liệu nơi dữ liệuđược lưu trữ, truy cập và liên quan trong các bảng mà không cần tổ chức lại cácbảng chứa chúng

Hãy nghĩ về cơ sở dữ liệu quan hệ như một tập hợp các tệp bảng tính giúpdoanh nghiệp tổ chức, quản lý và liên kết dữ liệu Trong mô hình cơ sở dữ liệuquan hệ, mỗi “bảng tính” là một bảng lưu trữ thông tin, được biểu diễn dướidạng cột (thuộc tính) và hàng (bản ghi hoặc bộ dữ liệu )

Các thuộc tính (cột) chỉ định một loại dữ liệu và mỗi bản ghi (hoặc hàng)chứa giá trị của loại dữ liệu cụ thể đó Tất cả các bảng trong cơ sở dữ liệu quan

hệ đều có một thuộc tính được gọi là khóa chính , là mã định danh duy nhất củamột hàng và mỗi hàng có thể được sử dụng để tạo mối quan hệ giữa các bảngkhác nhau bằng cách sử dụng khóa ngoại —tham chiếu đến khóa chính của bảngkhác bảng hiện có

Chúng ta hãy xem mô hình cơ sở dữ liệu quan hệ hoạt động như thế nàotrong thực tế:

Giả sử bạn có bảng Khách hàng và bảng Đơn hàng

Trang 27

Hình 1.9 Database demo

1.3.4.3 RDBMS

Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) là tập hợp các chươngtrình và khả năng cho phép các nhóm CNTT và những người khác tạo, cập nhật,quản trị và tương tác với cơ sở dữ liệu quan hệ Các RDBMS lưu trữ dữ liệu ởdạng bảng, với hầu hết các hệ thống quản lý cơ sở dữ liệu quan hệ thương mại sửdụng Ngôn ngữ truy vấn có cấu trúc (SQL) để truy cập cơ sở dữ liệu Tuy nhiên,

vì SQL được phát minh sau sự phát triển ban đầu của mô hình quan hệ, nên nókhông cần thiết cho việc sử dụng RDBMS

RDBMS là hệ thống cơ sở dữ liệu phổ biến nhất trong số các tổ chức trêntoàn thế giới Nó cung cấp một phương pháp đáng tin cậy để lưu trữ và truy xuấtlượng lớn dữ liệu đồng thời cung cấp sự kết hợp giữa hiệu năng hệ thống và tính

dễ thực hiện

Hoạt động

RDBMS sẽ lưu trữ dữ liệu dưới dạng bảng Mỗi hệ thống sẽ có số lượngbảng khác nhau với mỗi bảng sở hữu khóa chính duy nhất của riêng mình Khóachính sau đó được sử dụng để xác định từng bảng

Trang 28

Trong bảng có hàng và cột Các hàng được gọi là bản ghi hoặc thực thểngang; chúng chứa thông tin cho từng mục nhập Các cột được gọi là các thựcthể dọc và chứa thông tin về trường cụ thể.

Trước khi tạo các bảng này, RDBMS phải kiểm tra các ràng buộc sau:

 Khóa chính khóa này xác định từng hàng trong bảng Một bảng chỉ cóthể chứa một khóa chính Khóa phải là duy nhất và không có giá trị null

 Khóa ngoại khóa này được sử dụng để liên kết hai bảng Khóa ngoạiđược giữ trong một bảng và đề cập đến khóa chính được liên kết với mộtbảng khác

 Not null điều này đảm bảo rằng mọi cột không có giá trị null, chẳng hạnnhư ô trống

 Kiểm tra điều này xác nhận rằng mỗi mục nhập trong một cột hoặc hàngđáp ứng một điều kiện chính xác và mỗi cột chứa dữ liệu duy nhất

 Tính toàn vẹn của dữ liệu tính toàn vẹn của dữ liệu phải được xác nhậntrước khi dữ liệu được tạo

Trang 29

Bán hàng là yếu tố sống còn đối với mọi doanh nghiệp Đó là cách duynhất để bạn có thể duy trì hoạt động của công ty Nếu không bán được hàng, bạn

sẽ không có tiền để trả các chi phí vận hành doanh nghiệp Cải thiện doanh sốbán hàng là cách tốt nhất gia tăng sự thành công cho doanh nghiệp của bạn.Khi có một trang web, doanh nghiệp của bạn có thể hiện diện trực tuyếntrên internet Điều này giúp doanh nghiệp tiếp cận được nhiều người tiêu dùngtrực tuyến, từ đó có nhiều cơ hội bán hàng Việc phát triển một trang web không

tự động mang khách hàng đến với doanh nghiệp của bạn Tuy nhiên, thông quaviệc tối ưu hóa công cụ tìm kiếm của trang web (SEO), bạn có cơ hội có nhiềunhiều khách hàng tiềm năng, những người có nhiều khả năng mua hàng hơn

Ở đây khách hàng hoặc chủ doanh nghiệp có thể tham gia vào hệ thống

mà phần mềm em cung cấp để có thể đăng tải sản phẩm cũng như người dùngtruy cập trực tiếp vào hệ thống để mua hàng, lựa chọn và tìm đọc

Trang 30

 Người chủ doanh nghiệp truy cập vào hệ thống bằng tài khoản được cấp

để từ đó có thể thay đổi nội dung món hàng như thêm, sửa, xoá các trườngthuộc tính

 Người quản trị viên sẽ quản lý được thông tin người dùng như sửa Vàcũng có thể thay đổi thông tin sản phẩm như thêm, sửa, xoá, …

2.1.3 Nhóm các chức năng chính

2.1.3.1 Chức năng dành cho người dùng

 Đăng nhập bằng tài khoản hệ thống hoặc google

o Thêm thông tin sản phẩm

o Sửa thông tin sản phẩm

o Xoá sản phẩm

2.1.3.3 Chức năng dành cho quản trị viên

 Đăng nhập hệ thống với quyền admin

 Thay đổi thông tin cá nhân

 Quản lý danh sách người dùng

o Cấp quyền (none)

o Cấp lại mật khẩu

 Quản lý sản phẩm

o Thêm thông tin sản phẩm

o Sửa thông tin sản phẩm

o Xoá sản phẩm

Trang 31

 Quản lý thể loại sản phẩm (none)

o Thêm thông tin thể loại

o Sửa thông tin thể loại

2 Quản lý báo cáo thống kê

2.1 Thống kê đơn hàng2.2 Thống kê sản phẩm2.3 Tài khoản ngườidùng

3 Quản lý đơn hàng

3.1 Thêm đơn hàng3.2 Sửa đơn hàng3.3 Xoá đơn hàng

4 Quản lý người dùng

4.1 Thêm người dùng4.2 Sửa người dùng4.3 Xoá người dùng4.4 Phân quyền

Bảng 1: Bảng phân tích chức năng

2.2.1.2 Sơ đồ phân tích chức năng mức gộp

Hình 2.1: Sơ đồ phân tích chức năng mức gộp

Trang 32

2.2.1.3 Sơ đồ phân rã chức năng

Hình 2.2: Hình Sơ đồ phân rã chức năng

2.2.2 Phân tích hệ thống

2.2.2.1 Sơ đồ luồng dữ liệu mức đỉnh

Trang 33

Hình 2.3: Sơ đồ luồng dữ liệu mức đỉnh

2.2.2.2 Sơ đồ dữ liệu mức dưới đỉnh

2.2.2.2.1.Quản lý thông tin sản phẩm

Hình 2.4: Sơ đồ phân ra “Quản lý sản phẩm”

Trang 34

2.2.2.2.2.Quản lý báo cáo thống kế

Hình 2.5: Sơ đồ phân ra “Quản lý báo cáo thống kê”

2.2.2.2.3.Quản lý đơn hàng

Hình 2.6: Sơ đồ phân ra “Quản lý đơn hàng”

2.2.2.2.4.Quản lý người dùng

Trang 35

Hình 2.7: Sơ đồ phân ra “Quản lý người dùng”

2.2.2.3 Mô hình khái niệm dữ liệu

QuyềnNgười xác nhậnNgày tạoNgười tạoNgày tạo

Trang 36

Số điện thoạiCATEGORY

Tên sản phẩmHình ảnh chínhHình ảnh phụ

Mô tảGiá

Số lượng

Mô tả tổng quan

Mã thể loạiNgười xác nhậnNgày tạoNgười tạoNgày tạoXoá mềmCOMMENT

Nội dungTên người bình luậnEmail

Trang 37

Số điện thoại

Mã bưu điện

Mã người dùngNgười xác nhậnNgày tạoNgười tạoNgày tạoXoá mềmRATING

Số điểm đánh giáNgười đánh giáEmail người đánh giá

Mã người đánh giá

Mã sản phẩm đánh giáNgười xác nhậnNgày tạoNgười tạo

Trang 38

IsDeleted

Ngày tạoXoá mềmORDER

Bảng 2: Xác định các thực thể

2.2.2.3.2.Mô hình khái niệm dữ liệu

Trang 39

Hình 2.8: Mô hình khái niệm dữ liệu

2.2.2.3.3.Sơ đồ thực thể liên kết (ERD)

Trang 40

Hình 2.9: Hình Mô hình liên kết thực thể

2.2.3 Xây dựng biểu đồ Use Case

Ngày đăng: 27/12/2024, 11:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w