MỤC LỤC
LỜI GIỚI THIỆU
.........................................................................................................
3
1.1 Đặt vấn đề
..........................................................................................................
6
1.2. Mục đích của đề tài
...........................................................................................
6
1.3. Đối tượng ứng dụng và phạm vi nghiên cứu đề tài
..........................................
7
1.4. Ý nghĩa khoa học thực tiễn của đề tài
...............................................................
8
1.5. Ngôn ngữ lập trình PHP là gì?
...........................................................................
8
1.6. Một số khái niệm liên quan đến PHP
..............................................................
10
1.7. Hệ quản trị cơ sở dữ liệu MySQL
..................................................................
10
1.8. Các hàm cơ bản làm việc với MySQL
............................................................
13
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
.................................................
20
2.1 Khảo sát hệ thống của đề tài
............................................................................
20
2.1.1 Sơ đồ quy trình nghiệp vụ
.........................................................................
20
2.1.2 Khảo sát hiện trạng
....................................................................................
20
2.2 Phân tích hệ thống về mặt chức năng
..............................................................
22
2.2.1 Mô tả chức năng
.........................................................................................
22
2.2.2 Biểu đồ luồng dữ liệu
...............................................................................
23
2.3 Phân tích hệ thống về mặt dữ liệu.
..................................................................
34
2.3.1 Xác định thực thể
.......................................................................................
34
2.3.2 Ý nghĩa bảng dữ liệu các trường
...............................................................
35
2.3.3 Các bảng dữ liệu
........................................................................................
39
2.3.4 Sơ đồ thực thể liên kết (E R)
................................................................
42
CHƯƠNG 3: DEMO WEBSITE GIỚI THIỆU SẢN PHẨM THỜI TRANG D&G . 44
3.1. Giao diện người dùng
......................................................................................
44
3.2. Giao diện admin
...............................................................................................
49
KẾT LUẬN
..............................................................................................................
56
1
LỜI CẢM ƠN
Lời đầu tiên, Em xin chân thành cảm ơn trường Đại học Công nghệ thông tin
và truyền thông Đại học Thái Nguyên đã tạo điều kiện cho em được thực hiện đề
tài này.
Em xin chân thành cảm ơn các thầy cô giáo Khoa công nghệ thông tin trường
Đại học Công nghệ thông tin & Truyền thông đã trang bị cho em kiến thức về 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 Thầy giáo Th.S Trịnh Văn Hà em đã 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: Quách Thị Thao
Lớp:
ĐHLTCNK12A
Hòa Bình, tháng 10 năm 2014
2
LỜ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 giới thiệu sản phẩm thời trang D&G Hòa Bình”.
Báo cáo được chia làm 3 phần chính bao gồm:
Chương 1: Tổng quan về ngôn ngữ lập trình PHP và MySQL.
Chương 2: Phân tích thiết kế hệ thống.
Chương 3: Demo website giới thiệu sản phẩm thời trang D&G – Hòa
Bình
3
DANH 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
4
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
Hì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
5
CHƯƠNG 1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH PHP VÀ MYSQL
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:
Tìm kiếm và lựa chọn từ xa các sản phẩm mình cần:
Khách hàng khi 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.
6
Đặ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.
Theo dõi đơn hàng của mình.
Gửi ý kiến đóng góp.
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:
Quản lý sản phẩm một cách dễ dàng.
Thêm, xóa, sửa thông tin sản phẩm vào cơ sở dữ liệu.
Kiểm tra và xử lý đơn đặt hàng.
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.
7
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.
1.5. 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.
8
Tại sao chọn sử dụng PHP?
Mã nguồn mở:
Có lẽ nhiều người cũng biết PHP là một sản phẩm mã nguồn mở (Open
source) nên việc cài đặt và tùy biến PHP là miễn phí và tự do.
Vì có ưu thế nguồn mở nên PHP có thể được cài đặt trên hầu hết các Web
Server thông dụng hiện nay như Apache, IIS…
Tính Cộng đồng của PHP:
Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng
PHP được coi là khá lớn và có chất lượng.
Với cộng đồng phát triển lớn, việc cập nhật các bản vá lỗi phiên bản hiện
tại cũng như thử nghiệm các phiên bản mới khiến PHP rất linh hoạt trong
việc hoàn thiện mình.
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.
9
1.6. 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
1.7. 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
10
mạnh. Với tốc độ và tính bảo mậ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 storageengine 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
11
loại, và hỗ trợ giao dịch đa dạng (multiversion) 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.
Nơi lưu trữ web và data đáng tinh cậy: MySQL là nhà máy chuẩn cho các web
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, ANSIstandard
SQL, và nhiều nữa. Với các ứng dụng nhúng, thư viện plugin 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
12
bộ kết nối như: 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 scaleout, 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.
1.8. 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:
13
Int
mysql_connect(string[hostname[:post]
[:/path_to_socket]],
string[username], string[password]);
Trong đó:
– hostname: tên máy chủ cơ sở dữ liệu, nơi trang web sẽ chứa cơ s ở dữ
liệu. giá trị ngầm định là “localhost”
– post : dịa chỉ cổng, nơi bộ máy cơ sở dữ liệu lắng nghe yêu cầu. giá trị
ngầm định là “:3306”.
– path_to_socket : cũng giống như :post nhưng chỉ cho hệ điều hành
UNIX. Giá trị ngầm định là “:/tmp/mysql.sock”.
– Username: tên của người sử dụng được phép kết nối vào bộ máy cơ
sở dữ liệu.
– Password: mật khẩu của người sử dụng để kết nối vào cơ sở dữ liệu.
Hàm này trả về mã số nhận dạng nếu kết nối thành công, giá trị 0 nếu việc
kết nối có lỗi. mã số nhận dạng này sẽ được sử dụng cho tất cả các yêu cầu tới bộ
máy cơ sở dữ liệu này.
Sự kết nối này sẽ đóng lại khi gọi hàm mysql_close() hoặc kết thúc đoạn
PHP Script.
mysql_pconnect(): hàm này tạo ra một liên kết bền vững với máy chủ
MySQL.
Cú pháp:
Int mysql_pconnect (string [hostname [:post] [:/path_to_socket]],
string[username], string [password]);
Tham số và giá trị trả về của hàm này cũng giống hàm mysql_connect(). Sự
khác biệt giữa 2 hàm này là liên kết tới máy chủ MySQL không bị đóng lại kể cả
khi kết thúc kịch bản PHP hay gọi hàm mysql_close(). Mục đích của hàm này là
luôn luôn duy trì liên kết tới máy chủ MySQL do luôn có sự yêu cầu tới máy chủ,
tránh cho máy chủ phải tìm kiếm mã số nhận dạng mới từ đó giảm thời gian truy
cập.
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.
14
Cú pháp:
Int 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.
Các hàm thao tác trên CSDL
mysql_create_db(): hàm tạo cơ sở dữ liệu
Cú pháp:
Int mysql_create_db(string name, int [link_identifier]);
Trong đó:
–
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.
Cú pháp:
Int mysql_select_db(string database_name, int [link_identifier]);
Trong đó:
–
database_name: tên của cơ sở dữ liệu mà sau này các hàm API khác của
PHP sẽ thực hiện trên đó.
–
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.
15
–
Link_identifier: mã số nhận dạng được cấp bởi hàm mysql_connect()
Hà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();
mysql_insert_id():
Hàm lấy giá trị được sinh ra từ câu truy vấn INSERT trước.
Cú pháp:
Int mysql_insert_id([link_identifier]);
Trong đó:
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().
mysql_fetch_array():
Hàm trả về một mảng là giá trị của một bản ghi hiện tạ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.
Cú pháp:
Array mysql_fetch_array(int result_identifier,[int result_type]);
16
Trong đó: 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()
17
Di 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
18
bởi biến result_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ớ.
19
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Khảo sát hệ thống của đề tài
2.1.1 Sơ đồ quy trình nghiệp vụ
Phân
tích
và
thiết
kế
hệ
Cài đặt
và kiểm
thử
chương
trình
Xây
dựng
và thiết
kế
chươn
g trình
Hướng
dẫn sử
dụng và
quản trị
website
Hình 2.1: Sơ đồ quy trình nghiệp vụ của đề tài
2.1.2 Khảo sát hiện trạng
Địa chỉ: Thị Trấn Vụ Bản – Huyện Lạc Sơn – Tỉnh Hòa Bình
Di động: 01649751536.
D&G Hòa Bình Thời trang của mọi nhà.
Dòng sản phẩm D&G Hòa Bình đượ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ụ D&G Hòa Bình 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, D&G Hòa Bình 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
Các mặt hàng sản phẩm D&G Hòa Bình
Áo sơ mi Nữ
Áo Khoác Nữ
20
Váy Đầm
Giày dép Nữ
Phụ Kiện Nữ
Juyp
Áo sơ mi Nam
Á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.
Quá trình đặt hàng của khách hàng: khách hàng xem và lựa chọn mặt hàng
cần 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.
Khách hàng: là những người có nhu cầu mua sắm hàng hóa. Trên mạng, các
mặt 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.
21
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 hó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.
2.2 Phân tích hệ thống về mặt chức năng
2.2.1 Mô tả chức năng
Hệ thống quản lý website bán hàng và giới thiệu sản phẩm thời trang D&G
Hòa Bình gồm các chức năng sau:
Đăng nhập.
Tìm kiếm.
Kiểm tra.
Đặt hàng.
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.
22
2.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.
Các chức năng xử lý:
Diễn đạt các thao tác, các nhiệm vụ hay tiến trình xử lý. Có tính chất là biến
đổi thông tin đầu vào để sản xuất ra thông tin đầu ra.
Chức năng này được biểu diễn bằng hình tròn hoặc hình ôvan có ghi tên của
chức năng đó.
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 D&G Hòa
Bình.
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.
23
Luồng dữ liệu:
Là 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.
24
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.
25