Với việc tích hợp sẵn nhiều Database Client trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng... Hệ quản trị cơ sở dữ liệu MySQL MySQL là hệ quản trị
Trang 1TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
WEBSITE BÁN QUẦN ÁO
Sinh viên thực hiện : Trần Hoàng
Lớp : 19I1
Giảng viên hướng dẫn: ThS Hà Thị Minh Phương
Đà Nẵng, tháng 11 năm 2021
i
Trang 2TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
WEBSITE BÁN QUẦN ÁO
Sinh viên: Trần Hoàng
Mã SV: 191C900018 Giảng viên hướng dẫn: ThS Hà Thị Minh Phương
Đà Nẵng, tháng 11 năm 2021
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
MỤC LỤC
LỜI CẢM ƠN 5
LỜI GIỚI THIỆU 6
CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI 9
1.1 Đặt vấn đề 9
1.2 Mục đích của đề tài 9
1.3 Đối tượng ứng dụng và phạm vi nghiên cứu đề tài 10
1.4 Ý nghĩa khoa học thực tiễn của đề tài 11
CHƯƠNG II TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH PHP VÀ MYSQL 9
2.1 Ngôn ngữ lập trình PHP là gì? 12
2.2 Một số khái niệm liên quan đến PHP 14
2.3 Hệ quản trị cơ sở dữ liệu MySQL 14
2.4 Các hàm cơ bản làm việc với MySQL 17
CHƯƠNG III PHÂN TÍCH THIẾT KẾ HỆ THỐNG 24
3.1 Khảo sát hệ thống của đề tài 24
3.1.1 Sơ đồ quy trình nghiệp vụ 24
3.1.2 Khảo sát hiện trạng 24
3.2 Phân tích hệ thống về mặt chức năng 26
3.2.1 Mô tả chức năng 26
3.2.2 Biểu đồ luồng dữ liệu 27
3.2.3 Biểu đồ use case 27
3.2.4 Biểu đồ hoạt động 27
3.2.5 Biểu đồ trình tự 27
3.3 Phân tích hệ thống về mặt dữ liệu 46
3.3.1 Xác định thực thể 46
3.3.2 Ý nghĩa bảng dữ liệu các trường 47
3.3.3 Các bảng dữ liệu 51
3.3.4 Sơ đồ thực thể - liên kết (E - R) 54
CHƯƠNG IV: DEMO WEBSITE GIỚI THIỆU SẢN PHẨM THỜI TRANG 56
4.1 Giao diện người dùng 56
4.2 Giao diện admin 60
KẾT LUẬN 65
TÀI LIỆU THAM KHẢO 67
Trang 5về công nghệ thông tin trong suốt thời gian em học tập tại trường
Với sự hướng dẫn tận tình của Cô giáo Th.S Hà Thị Minh Phươngem đã hoàn thành cuốn báo cáo đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng do thời gian và khả năng có hạn nên bài đồ án của
em không tránh khỏi những thiếu sót Kính mong nhận được sự góp ý, phê bình của quý thầy cô và các bạn để em có thể hoàn thiện tốt hơn đề tài của mình
Em xin chân thành cảm ơn !
SV thực hiện: Trần Hoàng Lớp: 19I1
Đà Nẵng, tháng 11 năm 2021
Trang 6LỜI GIỚI THIỆU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng điện tử, công nghệ thông tin cũng được những công nghệ có đẳng cấp cao và lần lượt chinh phục hết đỉnh cao này đến đỉnh cao khác Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên một công cụ không thể thiếu, là nền tảng chính cho sự truyền tải, trao đổi thông tin trên toàn cầu Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng: chỉ cần có một máy tính kết nối internet và một dòng dữ liệu truy tìm thì gần như lập tức cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủ thông tin, hình ảnh và thậm chí đôi lúc có cả những âm thanh nếu bạn cần Bằng internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn và chi phí thấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúc đẩy sự khai sinh và phát riển của thương mại điện tử và chính phủ điện tử trên khắp thế giới, làm biến đổi đáng kể bộ mặt văn hóa, nâng cao chất lượng cuộc sống con người Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mại điện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng sẽ là cần thiết
Nắm bắt được thực tế đó, em đã tìm hiểu và thực hiện đề tài “Xây dựng website bán quần áo ”
Báo cáo được chia làm 4 phần chính bao gồm:
Chương 1: Tổng quan về đề tài
Chương 2: Tổng quan về ngôn ngữ lập trình PHP và MySQL
Chương 3: Phân tích thiết kế hệ thống
Chương 4: Demo website bán quần áo
Trang 7DANH MỤC HÌNH VẼ
Hình 2.1: Sơ đồ quy trình nghiệp vụ của đề tài… 19
Hình 2.2: Biểu đồ luồng dữ liệu mức ngữ cảnh………24
Hình 2.3: Biểu đồ phân cấp chức năng……… 26
Hình 2.4: Biểu đồ luồng dữ liệu mức đỉnh………27
Hình 2.5: Biểu đồ chức năng Quản lý hệ thống………28
Hình 2.6: Biểu đồ chức năng Mua hàng………29
Hình 2.7: Biểu đồ chức năng Thống kê……… 30
Hình 2.8: Biểu đồ chức năng Tìm kiếm……… 31
Hình 2.9: Sơ đồ thực thể liên kết E – R……… 41
Hình 3.1: Giao diện chính của website……… 42
Hình 3.2: Giao diện trang đăng ký khách hàng……….42
Hình 3.3: Giao diện trang bộ sưu tập………43
Hình 3.4: Giao diện trang tin tức……… 43
Hình 3.5: Giao diện trang liên hệ……… 44
Hình 3.6: Giao diện trang giỏ hàng khách hàng………44
Hình 3.7: Giao diện trang thông tin khách hàng……… 45
Hình 3.8: Giao diện trang đổi mật khẩu cá nhân khách hàng………45
Hình 3.9: Giao diện trang cập nhật thông tin khách hàng……….46
Hình 3.10: Giao diện trang đặt hàng……….46
Hình 3.11: Giao diện trang đăng nhập admin……… 47
Hình 3.12: Giao diện trang quản lý danh sách loại sản phẩm……… 48
Hình 3.13: Giao diện trang quản lý danh sách nhà sản xuất………48
Hình 3.14: Giao diện trang quản lý danh sách đơn hàng……….49
Hình 3.15: Giao diện trang quản lý danh sách khách hàng……… 49
Hình 3.16: Giao diện trang quản lý chi tiết thông tin khách hàng………50
Hình 3.17: Giao diện trang quản lý danh sách bộ sưu tập………50
Hình 3.18: Giao diện trang quản lý danh sách liên hệ……… 51
Hình 3.19: Giao diện trang thêm sản phẩm……… 51
Hình 3.20: Giao diện trang quản lý chi tiết đơn hàng……… 52
Trang 8Hình 3.21: Giao diện trang sửa thông tin bộ sưu tập……… 52 Hình 3.22: Giao diện trang quản lý chi tiết bộ sưu tập……… 53
Trang 9CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI
1.1 Đặt vấn đề
Như chúng ta đã thấy trong thị trường hiện nay thì việc cạnh tranh về kinh doanh ngày càng trở nên quyết liệt và hầu hết những nhà kinh doanh, những công ty lớn đều rất chú tâm đến việc làm thỏa mãn khách hàng một cách tốt nhất
Hiện nay càng nhiều doanh nghiệp phát triển hệ thống bán hàng theo loại hình thương mại điện tử Theo kết quả khảo sát của Công ty nghiên cứu thị trường Việt, khoảng 90% các công ty kinh doanh, dịch vụ ở Việt Nam có hệ thống bán hàng qua Internet và điện thoại
So với kinh doanh truyền thống thì thương mại điện tử chi phí thấp hơn, hiệu quả đạt cao hơn Hơn thế nữa, với lợi ích của công nghệ Internet nên việc truyền tải thông tin về sản phẩm nhanh chóng, thuận tiện Kết hợp với bộ phận giao hàng tận nơi, là thông qua bưu điện và ngân hàng để thanh toán tiền, càng tăng thêm thuận lợi để loại hình này phát triển
1.2 Mục đích của đề tài
Đây là một website nhằm bán và giới thiệu rộng rãi các mặt hàng của công ty đến người tiêu dùng với các chi tiết mặt hàng cũng như giá cả một cách chính xác nhất
Website sau khi xây dựng xong sẽ đáp ứng được các yêu cầu cơ bản sau:
Giúp cho khách hàng:
Khách hàng là những người có nhu cầu mua sắm hàng hóa Họ sẽ tìm kiếm các mặt hàng cần thiết từ hệ thống và đặt mua các mặt hàng này Vậy nên website phải giúp cho khách hàng:
truy cập vào website thương mại điện tử thường tìm kiếm các mặt hàng hay các sản phẩm mà họ cần và muốn mua Nhưng đôi khi cũng có nhiều khách hàng vào website mà không có ý định mua hay không biết mua gì, thì yêu cầu đặt ra cho hệ thống là làm thế nào để khách hàng dễ bị bắt mắt và hấp dẫn bởi các sản phẩm đó, đồng thời có thể tìm kiếm nhanh và hiệu quả các sản phẩm mà họ cần tìm
Trang 10 Đặt mua hàng: Sau khi khách hàng lựa chọn xong các mặt hàng cần
mua thì đơn đặt hàng sẽ được hiển thị để khách hàng nhập vào những thông tin cần thiết, tránh những đòi hỏi hay những thông tin yêu cầu quá nhiều từ phía khách hàng, tạo cảm giác thoải mái, riêng tư cho khách hàng
Giúp nhà quản lý:
Là người có quyền đăng nhập, quản lý và làm chủ mọi hoạt động của hệ thống website Người quản lý có một username và password để truy cập vào hệ thống nhằm thực hiện các chức năng sau:
Báo cáo doanh thu
Bên cạnh các chức năng nêu trên thì website phải trông thật đẹp mắt và dễ truy cập Giao diện đẹp là yếu tố quan trọng góp phần tăng lượng khách hàng, và website phải làm sao cho khách hàng thấy được những thông tin cần tìm, cung cấp những thông tin quảng cáo thật hấp dẫn, nhằm thu hút sự quan tâm về công ty mình và có cơ hội sẽ có nhiều người tham khảo hơn
Điều quan trọng trong website mua bán hàng trên mạng là phải đảm bảo an toàn tuyệt đối những thông tin liên quan đến người dùng trong quá trình đặt mua hay thanh toán
Đồng thời website còn phải có tính dễ nâng cấp, bảo trì, sửa chữa khi cần bổ sung cập nhật những tính năng mới
1.3 Đối tượng ứng dụng và phạm vi nghiên cứu đề tài
Đối tượng ứng dụng của đề tài:
Mọi người tiêu dùng trên toàn quốc có nhu cầu đặt mua hàng qua mạng
Các công ty, các doanh nghiệp có nhu cầu đặt hàng
Trang 11 Phạm vi nghiên cứu của đề tài:
Tìm hiểu kỹ thuật lập trình, các thức hoạt động và các đối tượng trong PHP
Hiểu được cách thức hoạt động của Client – Server
Hiểu được cách lưu trữ dữ liệu của hệ quản trị cơ sở dữ liệu MySQL
Sử dụng ngôn ngữ PHP và hệ quản trị CSDL MySQL để xây
dựng website.
1.4 Ý nghĩa khoa học thực tiễn của đề tài
Trong thời đại thương mại điện tử đang ngày càng phát triển, việc ứng dụng vào hoạt động “Xây dựng Website giới thiệu sản phẩm và bán hàng thời trang D&G” đã mang lại nhiều ý nghĩa sau:
- Đỡ tốn thời gian cho người tiêu dùng cũng như nhà quản lý trong việc tham gia vào hoạt động mua bán hàng
- Giúp người tiêu dùng có được giá cả và hình ảnh mặt hàng một cách chính xác
- Giúp nhà quản lý dễ dàng hơn trong việc quản lý sản phẩm
Trang 12CHƯƠNG II TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH PHP VÀ MYSQL
2.1 Ngôn ngữ lập trình PHP là gì?
PHP (viết tắt quy hồi: “PHP: Hypertext Preprocesssor”) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với viết web và có thể dễ dàng nhúng vào HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có
sự đóng góp rất lớn của Zen Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp
Trang 13 Cộng đồng hỗ trợ, chia sẽ kinh nghiệm của PHP cũng rất dồi dào Với rất nhiều diễn đàn, blog trong và ngoài nước nói về PHP đã khiến cho quá trình tiếp cận của người tìm hiểu PHP được rút ngắn nhanh chóng
Thư viện phong phú:
Ngoài sự hỗ trợ của cộng đồng, thư viện script PHP cũng rất phong phú và đa dạng Từ những cái rất nhỏ như chỉ là 1 đoạn code, 1 hàm (PHP.net…) cho tới những cái lớn hơn như Framework (Zend, CakePHP, CogeIgniter, Symfony…) ,ứng dụng hoàn chỉnh (Joomla, Wordpress, PhpBB…)
Với thư viện code phong phú, việc học tập và ứng dụng PHP trở nên rất dễ dàng và nhanh chóng Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web
Hỗ trợ kết nối nhiều hệ cơ sở dữ liệu:
Nhu cầu xây dựng web có sử dụng cơ sở dữ liệu là một nhu cầu tất yếu và PHP cũng đáp ứng rất tốt nhu cầu này Với việc tích hợp sẵn nhiều Database Client trong PHP đã làm cho ứng dụng PHP dễ dàng kết nối tới các hệ cơ sở dữ liệu thông dụng
Trang 142.2 Một số khái niệm liên quan đến PHP
Script: là một dãy các lệnh đặc tả (Script) Một script có thể:
- Gán một giá trị cho một biến Một biến là một tên xác định để lưu giữ dữ
liệu, như một giá trị
- Chỉ thị cho Web Server gửi trả lại cho trình duyệt web một giá trị nào đó,
như giá trị cho một biến Một chỉ thị trả cho trình duyệt một giá trị là một biểu thức đầu ra (output expression)
- Tổ hợp của các lệnh được đặt trong các thủ tục Một số thủ tục là tên gọi
tuần tự của các lệnh và khai báo cho phép hoạt động như một ngôn ngữ (unit)
Ngôn ngữ script:
- Là ngôn ngữ trung gian giữa HTML và ngôn ngữ lập trình C++, Java…nói
chung được sử dụng để tạo và kết nối các trang text
- Ngôn ngữ Scripting nằm giữa chúng mặc dù chức năng của nó giống ngôn
ngữ lập trình hơn là các trang HTML đơn giản
- Sự khác nhau cơ bản của ngôn ngữ Scripting và ngôn ngữ lập trình là các
nguyên tắc của nó ít cứng nhắc và ít rắc rối khó hiểu hơn Do vậy, các đoạn chương trình script gọn nhẹ hơn có thể lồng ngay vào trang Web
Công cụ đặc tả (Scripting engine):
- Để chạy được các loại chương trình Script thì phải có máy script engine
Máy này có nhiệm vụ đọc mã nguồn của chương trình và thực hiện các câu lệnh đó
- Mỗi ngôn ngữ script có một loại máy script engine riêng
- Ngôn ngữ được PHP hỗ trợ mặc định là JavaScript
2.3 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ
sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều
hệ điều hành cung cấp một hệ thống lớn các tiện ích rất mạnh Với tốc độ và tính bảo
Trang 15mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL có nhiều phiên bản cho các hệ điều hành khác nhau
Điểm mạnh của MySQL là chạy trên mọi ngôn ngữ như ASP, PHP, Net, JSP… khi chạy nó không đòi hỏi tài nguyên máy quá lớn
Nhược điểm là độ bảo mật chưa cao bằng MSSQL hay Oracle… và quá trình Restore có phần chậm chạp
Tuy nhiên những nhược điểm đó không đáng kể cho các lập trình cỡ trung bình khá, vì chỉ có những hệ thống lớn đến rất lớn mới có những yêu cầu phức tạp hơn
10 lý do nên chọn MySQL cho ứng dụng của mình:
Tính linh hoạt: Máy chủ CSDL MySQL cung cấp đặc tính linh hoạt, có sức chứa
để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin Sự linh hoạt về flatform là một đặc tính lớn của MySQL với tất cả các phiên bản của Window đang được hỗ trợ Và dĩ nhiên, tính chất mã nguồn mở của MySQL cho phép sự tùy biến hoàn toàn theo ý muốn để thêm vào các yêu cầu thích hợp cho database server
Tính thực thi cao: Kiến trúc storage-engine cho phép các chuyên gia CSDL cấu
hình máy chủ CSDL MySQL đặc trưng cho các ứng dụng đặc thù Dù ứng dụng là một
hệ thống xử lý giao dịch tốc độ cao hay web site dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các
cơ chế xử lý nâng cao khác, MySQL đưa ra tất cả các vũ khí cần phải có cho các hệ thống doanh nghiệp khó tính ngày nay
Có thể sử dụng ngay: Sự đáng tin cậy cao và tính “mì ăn liền” là những tiêu chuẩn
đảm bảo của MySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL
Hỗ trợ giao dịch mạnh: MySQL đưa ra một trong số những engine giao dịch cơ sở
dữ liệu mạnh nhất trên thị trường Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ
Trang 16giao dịch đa dạng (multi-version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại Tính toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức
sites phải trao đổi thường xuyên vì nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh ghê gớm, và hỗ trợ mạnh cho các chức năng chuyên dụng của web như tìm kiếm văn bản nhanh Những tính năng này cũng được áp dụng cho môi trường lưu trữ
dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Các tính năng khác như bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảm các yêu cầu lưu trữ đến 80% làm cho MySQL trở thành lựa chọn tốt nhất cho cả ứng dụng web và các ứng dụng doanh nghiệp
Chế độ bảo mật dữ liệu mạnh: Vì bảo mật dữ liệu cho một công ty là công việc
số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được SSH và SSL cũng được hỗ trợ để chắc chắn các kết nối được an toàn và bảo mật Một đối tượng framework đặc quyền được đưa ra mà người sử dụng chỉ có thể nhìn thấy dữ liệu, các hàm mã hóa và giải mã dữ liệu mạnh chắc chắn rằng dữ liệu sẽ được bảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý hoàn thiện cũng như recovery toàn bộ hoặc tại một thời điểm nào đó
Sự phát triển ứng dụng hỗn hợp: Một trong số các lý do khiến cho MySQL là cơ
sở dữ liệu mã nguồn mở phổ biến nhất thế giới là nó cung cấp hỗ trợ hỗn hợp cho bất
kì sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các stored procedure, trigger, function, view,cursor, ANSI-standard SQL, và nhiều nữa Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệu MySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nối
Trang 17như: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụng MySQL như một server quản lí dữ liệu được ưu tiên
Dễ dàng quản lý: MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian
ở mức trung bình từ lúc download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút Điều này đúng cho dù flatform là Microsoft Windows,Linux, Macintosh hay Unix Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian,
tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc MySQL cũng cung cấp một bộ hoàn thiện các công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa, và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãng phần mềm thứ 3 cũng có sẵn trong MySQL để điều khiển các tác vụ từ thiết kế dữ liệu và ETL, đến việc quản trị cơ sở dữ liệu hoàn thiện, quản lý công việc, và thực hiện kiểm tra
Mã nguồn mở tự do và hỗ trợ 24/7: Nhiều công ty lưỡng lự trong việc giao phó
toàn bộ cho phần mềm mã nguồn mở vì họ tin họ không thể tìm được một cách hỗ trợ hay mạng lưới an toàn phục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắc chắn về sự thành công toàn diện cho các ứng dụng chủ chốt của họ Những lo lắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lưới MySQL
Tổng chi phí rất thấp: Bằng cách sử dụng MySQL cho các dự án phát triển mới,
các công ty đang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà
họ có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy và
dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu không phải mất nhiều thời gian sửa chữa hay vấn đề thời gian chết
2.4 Các hàm cơ bản làm việc với MySQL
Các hàm kết nối đến MySQL SERVER
PHP cung cấp 2 hàm để kết nối với cơ sở dữ liệu MySQL: mysql_connect và mysql_pconnect
mysql_connect(): hàm này sẽ tạo một kết nối tới máy chủ MySQL
Cú pháp:
Trang 18Int mysql_connect(string[hostname[:post] [:/path_to_socket]], string[username], string[password]);
Chú ý: hàm này chỉ thực hiện được khi PHP được định cấu hình như là một module của web server
mysql_close(): hàm này hủy bỏ sự kết nối tới máy chủ MySQL
Cú pháp:
Trang 19Int mysql_close(int [link_identifier]);
Tham số link_ identifier là mã số nhận dạng tạo ra bởi hàm mysql_connect() Hàm trả về là true nếu thành công, ngược lại là false
– string name: tên của cơ sở dữ liệu cần tạo
– link_identifier: mã số nhận dạng được cấp bởi hàm mysql_connect()
Ta hoàn toàn có thể gửi câu lệnh SQL để tạo cơ sở dữ liệu thông qua hàm mysql_query()
mysql_drop_db():hàm xóa cơ sở dữ liệu
Cú pháp:
Int mysql_drop_db(string name, int [link_identifier]);
Trong đó:
– string name: tên cơ sở dữ liệu cần xóa
– link_identifier: mã số nhận dạng được cấp bởi hàm mysql_connect()
Ta hoàn toàn có thể gửi câu lệnh SQL để xóa cơ sở dữ liệu thông qua hàm mysql_query()
mysql_select_db():hàm cho cơ sở dữ liệu hoạt động
– link_identifier: mã nhận dạng được cấp bởi mysql_connect()
Câu lệnh này sẽ gắn tên cơ sở dữ liệu với mã nhận dạng, sau này khi làm việc với link_identifier sẽ bao gồm cả cơ sở dữ liệu được chọn
– Link_identifier: mã số nhận dạng được cấp bởi hàm mysql_connect()
Trang 20Hàm này chỉ rõ câu lệnh được thực hiện trên cơ sở dữ liệu nào nên trước đó không cần thực hiện hàm mysql_select_db();
- link_identifier: mã số nhận dạng được cấp bởi hàm mysql_connect()
- Hàm này trả về giá trị id được sinh ra trong cột AUTO_INCREMENT bởi câu truy vấn trước đó Điều này chỉ có tác dụng trên link_identifier được chỉ ra trong hàm, nếu gọi hàm trên mà không chỉ định tham số link_identifier thì lien kết được mở cuối cùng
sẽ được chỉ định
Hàm mysql_insert_id() trả về giá trị 0 nếu câu truy vấn trước đó không sinh ra một giá trị AUTO_INCREMENT Nếu ta muốn giữ lại giá trị cho lần sau, thì phải gọi hàm này ngay sau câu truy vấn sinh ra giá trị
mysql_fetch_row():
Hàm trả về một mảng là giá trị của một bản ghi hiện tại với chỉ số là thứ tự của các trường (chỉ số bắt đầu từ 0) Sau đó hàm sẽ trỏ tới bản ghi tiếp theo cho tới khi gặp bản ghi cuối cùng hàm trả về giá trị false Để truy xuất tới các giá trị của cột ta viết : tên_mảng[số thứ t]
Cú pháp:
Array mysql_fetch_row(int result_identifier);
Trong đó : result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query()
Trang 21Trong đó: result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query()
Để truy xuất đến các thành phần của cột:
Tên_biến_mảng[“tên trường”];
Result_type là một hằng số có thể nhận các giá trị sau:
- MYSQL_NUM: chỉ trả lại một mảng chứa các chỉ số là số (giống như hàm mysql_fetch_row())
- MYSQL_ASSOC: chỉ trả lại một mảng liên kết
- MYSQL_BOTH : trả lại mảng chứa đựng các chỉ số gồm cả các con số và chỉ số liên kết
Hàm này là sự mở rộng của hàm mysql_fetch_row() Nó cho phép truy cập trường dữ liệu của mảng kết quả không chỉ thông qua các chỉ số là các số mà chúng có thể là tên của các trường dữ liệu
mysql_fetch_object(): hàm trả về nột đối tượng là giá trị của một bản ghi hiện thời sau đó hàm sẽ trỏ tới bản ghi tiếp theo cho tới khi gặp bản ghi cuối cùng hàm trả về giá trị false Để truy xuất tới các giá trị của cột ta viết tên_object->tên_cột
Cú pháp:
Object mysql_fetch_object(int result_identifier);
Trong đó: result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query()
mysql_fetch_assoc(int result_identifier): lấy về một dòng kết quả như là một mảng liên kết
Cú pháp: array mysql_fetch_row(int result_identifier)
Trong đó: result_identifier là mã số trả về của hàm mysql_query() hoặc mysql_db_query()
Hàm trả về một mảng tương ứng với một bản ghi được lấy về và trả lại FALSE, nếu không có bản ghi nào Hàm này tương đương với hàm Array mysql_fetch_array() với tham số result_type là : MYSQL_ASSOC
mysql_data_seek()
Trang 22Di chuyển con trỏ bên trong “tập kết quả” (có được sau khi câu truy vấn SELECT được thực hiện)
Cú pháp: bool mysql_data_seek(int result_identifier, int row_number);
Trong đó: result_identifier là mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs()
Row_number là chỉ số của bản ghi mà cần đặt con trỏ vào
Hàm trả về true nếu thành công, false nếu lỗi
Hàm này sẽ di chuyển con trỏ bên trong “tập kết quả” (được chỉ rõ bởi tham số result_identifier) đến dòng có mã bằng tham đối row_number
Các dòng trong tập kết quả được bắt đầu bằng 0
mysql_num_rows(): trả lại số dòng trong result_identifier (nơi chứa kết quả của câu lệnh SQL đã được thực hiện)
Cú pháp: mysql_num_rows(result_identifier);
Trong đó: result_identifier là mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs()
mysql_affected_row()
Cú pháp: int link_ affected_row(int [link_identifier]);
Trong đó: int link_identifier là mã số nhận dạng, nó phải được thực hiện trong hàm mysql_select_db() trước đó
Hàm trả về số dòng đã bị tác động bởi một câu truy vấn SQL : INSERT, UPDATE, DELETE trước đó theo tham số link_ identifier Nếu link_ identifier không được chỉ định thì mã kết nối trước đó sẽ được chỉ định
mysql_result() : lấy dữ liệu từ result_identifier
Cú pháp: mixed mysql_result(int result_identifier, int row, mixed [field]);
Trong đó: result_identifier la mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs()
Row là bản ghi mà ta sẽ lấy dữ liệu
Field là trường trong dòng row mà ta sẽ lấy dữ liệu
Các tham số result_identifier và row phải có, còn tham số field là tùy chọn hàm
sẽ trả lại các nội dung của dòng row và cột field rừ tập kết quả được chỉ định bởi biến
Trang 23result_identifier Nếu đối số field không được chỉ định rõ thì trường tiếp theo sẽ được trả về
mysql_free_result() : hàm giải phóng bộ nhớ được lien kết với result_identifier
Cú pháp: mysql_free_result(int result_identifier);
Trong đó: result_identifier là mã số trả về của hàm mysql_query(), mysql_db_query(), mysql_list_tables(), mysql_list_dbs()
Hàm này chỉ được dùng nếu như ta đánh giá thấy kịch bản sử dụng quá nhiều
bộ nhớ khi đang chạy gọi hàm này trên một trình xử lý kết quả sẽ giải phóng toàn bộ
dữ liệu liên kết trong bộ nhớ
Trang 24CHƯƠNG III PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Khảo sát hệ thống của đề tài
3.1.1 Sơ đồ quy trình nghiệp vụ
Hình 2.1: Sơ đồ quy trình nghiệp vụ của đề tài
3.1.2 Khảo sát hiện trạng
Dòng sản phẩm được thiết kế dựa trên sự kết hợp giữa ý tưởng chủ đạo là phong cách hiện đại, sang trọng, trẻ trung, năng động, với những điểm nhấn, họa tiết tinh tế phù hợp với bản sắc, văn hóa Việt Trên nền chất liệu ngoại nhập cao cấp, các sản phẩm được thiết kế với mẫu mã đa dạng, kiểu dáng phong phú, sang trọng có tính ứng dụng cao luôn đáp ứng được sự mong mỏi của những người yêu thích thời trang khó tính nhất Nhờ sự hoàn hảo của sản phẩm cũng như chất lượng trong dịch vụ nhanh chóng khẳng định chỗ đứng vững chắc trong làng thời trang
Trên con đường khẳng định thương hiệu, luôn lấy sự hài lòng của khách hàng làm kim chỉ nam cho mọi hoạt động, lấy việc tôn vinh vẻ đẹp nữ giới công sở Việt Nam là
sứ mệnh hoạt động Với kế hoạch phát triển mang tính chiến lược, D&G sẽ là thương thiệu thời trang lớn mạnh được yêu thích trên toàn quốc
kế hệ
thống
Xây dựng
và thiết
kế chương trình
Cài đặt
và kiểm thử chương trình
Hướng dẫn sử dụng và quản trị website
Trang 25- Áo khoác Nam
- Quần Nam
- Giày dép Nam
Sau khi khảo sát hiện trạng, em nắm bắt được các thông tin sau:
Quản lý mặt hàng: mỗi mặt hàng được quản lý những thông tin sau: Tên mặt hàng, đơn giá, số lượng, hình ảnh và chi tiết mặt hàng
mua Trong quá trình lựa chọn, bộ phận bán hàng sẽ trực tiếp trao đổi thông tin cùng khách hàng qua tư vấn trực tuyến bằng yahoo và skype Sau khi lựa chọn xong, khách hàng sẽ tiến hành cho vào giỏ hàng
Trong trường hợp nhiều công ty, trường học, các doanh nghiệp… có yêu cầu đặt hàng với số lượng lớn, thì cửa hàng sẽ nhanh chóng làm phiếu đặt hàng, phiếu thu có ghi thuế cho từng sản phẩm và giao hàng theo yêu cầu
hàng được sắp xếp và phân theo từng loại mặt hàng giúp cho khách hàng dễ dàng tìm kiếm Trong hoạt động này, khách hàng chỉ cần chọn một mặt hàng nào đó từ danh mục các mặt hàng thì những thông tin về mặt hàng đó sẽ hiển thị lên màn hình như: hình ảnh, đơn giá, mô tả… và bên cạnh là liên kết thêm hàng hóa vào giỏ hàng Đây là giỏ hàng điện tử mà trong đó chứa các thông tin về hàng hóa lẫn số lượng hàng hóa còn lại trong kho và hoàn toàn cập nhật được giỏ hàng
Khi khách hàng muốn đặt hàng thì cho sản phẩm cần mua vào giỏ hàng khi khách hàng thanh toán thì sẽ cần phải nhập các thông tin cần thiết vào đơn hàng Cuối cùng khách hàng xác nhận đơn hàng
Nhà quản lý: là người làm chủ hệ thống, có quyền kiểm soát mọi hoạt động của hệ thống Nhà quản lý được cấp một username và password để đăng nhập vào hệ thống thực hiện những chức năng của mình
Nếu như quá trình đăng nhập thành công thì nhà quản lý có thể thực hiện những công việc: quản lý cập nhật thông tin các mặt hàng, tiếp nhận đơn hàng, kiểm tra đơn hàng và xử lý đơn hàng Thống kê các mặt hàng bán trong tháng, năm, thống kê khách hàng, nhà cung cấp, thống kê tồn kho, thống kê doanh thu Khi có nhu cầu nhập hàng
Trang 26hóa từ nhà cung cấp thì tiến hành liên lạc với nhà cung cấp để đặt hàng và cập nhật các mặt hàng này vào cơ sở dữ liệu
Chức năng đặt hàng được phân thành các chức năng nhỏ như: Kiểm tra khách
hàng, ghi nhận khách hàng, tra cứu mặt hàng, xử lý mặt hàng, kiểm tra đặt hàng
Chức năng cập nhật bao gồm: cập nhật mặt hàng, cập nhật nhà cung cấp và cập
nhật đơn hàng
Trang 273.2.2 Biểu đồ luồng dữ liệu
Trong một hệ thống thông tin bao gồm hai thành phần chính: dữ liệu và xử lý
dữ liệu Dữ liệu mang sắc thái tĩnh còn xử lý dữ liệu mang sắc thái động của hệ thống
Một biểu đồ dữ liệu gồm có 5 thành phần:
- Các chức năng xử lý
- Luồng dữ liệu
- Kho dữ liệu
- Tác nhân bên ngoài
- Tác nhân bên trong
Trong biểu đồ luồng dữ liệu của một đề tài bao gồm 1 chức năng xử lý có tên:
Hệ thống website bán hàng và giới thiệu sản phẩm thời trang
Tác nhân ngoài:
Hay còn gọi là đối tác: một người, một nhóm người hay một tổ chức ở bên ngoài các lĩnh vực nghiên cứu của hệ thống Sự có mặt của các tác nhân bên ngoài trên biểu đồ luồng dữ liệu chỉ ra mối quan hệ của hệ thống, chỉ ra giới hạn của hệ thống, và chỉ rõ quan hệ của hệ thống với bên ngoài
Tác nhân bên ngoài được biểu diễn bằng hình chữ nhật, bên trong ghi tác nhân bên ngoài
Trong biểu đồ luồng dữ liệu này có 2 tác nhân bên ngoài: Khách hàng và Nhà quản lý
Hai tác nhân bên ngoài này không trao đổi thông tin với nhau mà trao đổi, cung cấp thông tin với chức năng xử lý website bán hàng và giới thiêu sản phẩm thời trang qua mạng thông tin các luồng dữ liệu
Luồng dữ liệu:
Trang 28Là luồng thông tin vào/ra của một chức năng xử lý với các tác nhân bên ngoài, giữa các thành phần khách của biểu đồ luồng dữ liệu
Luồng dữ liệu được biểu diễn bằng mũi tên có hướng, có ghi tên nhãn, tên luồng
dữ liệu
Kho dữ liệu:
Các thông tin cần lưu giữ lại trong một khoảng thời gian cần sử dụng sau này để thực hiện vài chức năng xử lý Người sử dụng là tác nhân bên trong của hệ thống Kho dữ liệu được biểu hiện dưới nhiều dạng khác nhau: tài liệu lưu trữ, các file thông tin
Kho dữ liệu được biểu diễn là 2 đường thẳng song song và có mũi tên đi vào và đi
ra
Tác nhân bên trong:
Tác nhân bên trong là một chức năng hay hệ thống con của hệ thống
Tác nhân trong được biểu diễn là hình chữ nhật hở một phía, bên trong ghi tên tác nhân trong
Để xây dựng một biểu đồ luồng dữ liệu ta cần đưa ra được các bước cụ thể, khoa học để từ đó có thể tiến hành lập biểu đồ luồng dữ liệu một cách tốt nhất Sau đây là
10 bước chính để xây dựng 1 biểu đồ luồng dữ liệu
Bước 1: Xác định tư liệu và cách trình bày hệ thống
Bước 2: Xác định miền biên, miền giới hạn của hệ thống
Bước 3: Sử dụng và trình bày nguồn thông tin vào và nguồn thông tin ra
Bước 4: Sử dụng nguồn cung cấp thông tin vào ra, nguồn cung cấp thông tin vào và
nguồn sử dụng thông tin ra
Bước 5: Xác định các kho dữ liệu
Bước 6: Vẽ biểu đồ mức đỉnh của hệ thống
Bước 7: Phân rã và làm mịn luồng dữ liệu mức đỉnh thành mức 2 và 3
Bước 8: Xây dựng từ điển phụ trợ để xây dựng biểu đồ luồng dữ liệu
Bước 9: Đánh giá kiểm tra biểu đồ luồng dữ liệu, dựa vào đánh giá này để tiến
hành làm mịn hơn nữa biểu đồ
Bước 10: Duyệt lại toàn bộ sơ đồ và biểu đồ phát hiện sai sót
Trang 29Biểu đồ luồng dữ liệu mức ngữ cảnh
Hình 2.2: Biểu đồ luồng dữ liệu mức ngữ cảnh
Trong biểu đồ dữ liệu mức ngữ cảnh, các thành phần của biểu đồ dữ liệu được
tổ chức như sau:
+ Chức năng xử lý: có chức năng xử lý hệ thống website bán bàng và giới thiệu sản phẩn thời trang D&G
+ Tác nhân ngoài: có 2 tác nhân ngoài: Khách hàng và Nhà quản lý
Hai tác nhân ngoài này không trao đổi thông tin với nhau mà trao đổi, cung cấp thông tin với chức năng xử lý của hệ thống qua các luồng dữ liệu
+ Có nhiều luồng dữ liệu như:
Trang 30- Trao đổi giữa các chức năng xử lý và tác nhân bên ngoài KHÁCH HÀNG: yêu cầu thống kê các loại sản phẩm, bảng thống kê các loại sản phẩm, ý kiến đóng góp, trả lời ý kiến đóng góp, yêu cầu tìm kiếm sản phẩm, hiển thị sản phẩm tìm kiếm, yêu cầu đặt hàng, đơn hàng
Trao đổi giữa các chức năng xử lý và tác nhân bên ngoài NHÀ QUẢN LÝ: xem các đơn hàng, danh sách các đơn hàng, yêu cầu tra cứu sản phẩm, hiển thị sản phẩm tra cứu, yêu cầu sản phẩm, bảng thống kê sản phẩm, yêu cầu thống kê các đơn hàng, bảng thống kê các đơn hàng, yêu cầu tra cứu thành viên, bảng các thành viên , yêu cầu cật nhật sản phẩm, kết quả cập nhật sản phẩm
Trang 31 Biểu đồ phân cấp chức năng
Hình 2.3: Biểu đồ phân cấp chức năng
Gửi đơn hàng
Tìm kiếm theo sảnphẩm
Tìm kiếm loại sản phẩm
Tìm kiếm theo từ khóa
Website bán hàng và giới thiệu sản phẩm thời trang
Thống kê
Thống kê khách hàng
Thống kê admin
Thống kê đơn hàng
QL nhập thông
tin sản phẩm
Trang 32 Biểu đồ luồng dữ liệu mức đỉnh
Hình 2.4: Biểu đồ luồng dữ liệu mức đỉnh
Trang 33 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng Quản lý hệ thống
Hình 2.5: Biểu đồ chức năng Quản lý hệ thống