Tải bản đầy đủ (.pdf) (65 trang)

Xây dựng ứng dụng đăng kí mua vé online cho rạp chiếu phim beta – thái nguyên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.43 MB, 65 trang )

LỜI CẢM ƠN
Trong thời gian thực hiện đề tài với sự giúp đỡ tạo điều kiện của Trường Đại
Học Công Nghệ Thông Tin và Truyền Thông, sự góp ý của các bạn và đặc biệt là sự
hướng dẫn trực tiếp, chỉ bảo tận tình của thầy giáo ThS. Trịnh Văn Hà em đã hoàn
thành đề tài cùng với bản báo cáo đúng thời gian quy định.
Em xin gửi lời cảm ơn đến các thầy, cô trong Bộ môn Mạng & Truyền thông
- Khoa Công Nghệ Thông Tin - Đại Học Công Nghệ Thông Tin Và Truyền Thông
đã trang bị kiến thức và tạo điều kiện hết sức thuận lợi để em có thể hoàn thành đề
tài này một cách tốt nhất.
Với những kiến thức thực tế có được, nó đã giúp ích cho em rất nhiều trong
việc phân tích thiết kế hệ thống và hoàn thành tốt đề tài này.

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

i


LỜI CAM ĐOAN
Trong quá trình làm đồ án, em có tham khảo một số tài liệu trên mạng và các
tài liệu thực tế thu được khi làm việc. Em đã sử dụng kiến thức của bản thân mình,
tự tìm hiểu, tiếp thu và tổng hợp kiến thức để xây dựng nên đồ án này. Bản thân em
cũng đã cố gắng nghiên cứu, học tập và làm việc trong thời gian vừa qua để hoàn
thành đồ án đúng thời gian quy định.
Em xin cam đoan nội dung đồ án này không hề được sao chép từ đồ án hay
luận văn nào khác, mọi thông tin sai lệch em xin chịu hoàn toàn trách nhiệm trước
pháp luật và trường Đại học Công nghệ Thông tin và Truyền thông.
Thái Nguyên, tháng 6 năm 2016
Sinh viên

Vũ Đức Mạnh


ii


MỤC LỤC
LỜI CẢM ƠN ..........................................................................................................i
LỜI CAM ĐOAN....................................................................................................ii
MỤC LỤC .............................................................................................................iii
DANH MỤC HÌNH ................................................................................................ v
LỜI NÓI ĐẦU ........................................................................................................ 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT ........................................................................ 2
1.1. Tìm hiểu về ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MySQL ..................... 2
1.1.1. Giới thiệu và sử dụng PHP .................................................................... 2
1.1.2. Giới thiệu MySQL............................................................................... 10
1.2. Tìm hiểu về thương mại điện tử.................................................................. 14
1.2.1. Giới thiệu về thương mại điện tử ......................................................... 14
1.2.2. Một số ứng dụng của thương mại điện tử............................................. 15
1.3. Sử dụng WebServer.................................................................................... 17
1.4. Lý thuyết UML ( Unified Modelling Language )........................................ 18
1.4.1. Tại sao chúng ta phải xây dựng mô hình cho hệ thống? ....................... 18
1.4.2. Lịch sử phát triển của UML................................................................. 20
1.4.3.Unified Modeling Language là gì? ....................................................... 22
1.4.4. Các biểu đồ (Diagrams) ....................................................................... 23
CHƯƠNG 2. KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG .................. 25
2.1. Phân tích yêu cầu đề tài .............................................................................. 26
2.1.1. Tóm tắt hoạt động của hệ thống sẽ được ứng dụng: ............................. 26
2.1.2. Phạm vi dự án được ứng dụng ............................................................. 27
2.1.3. Đối tượng sử dụng............................................................................... 27
2.1.4. Mục đích của dự án ............................................................................. 28
2.2. Xác định yêu cầu của khách hàng ............................................................... 28
2.2.1. Hệ thống hiện hành của cửa hàng ........................................................ 28

2.2.2. Hệ thống đề nghị ................................................................................. 28
2.3. Yêu cầu giao diện của website.................................................................... 30
2.3.1. Giao diện người dùng .......................................................................... 30
2.3.2. Giao diện người quản trị:..................................................................... 30
iii


2.4. Phân tích các chức năng của hệ thống......................................................... 31
2.4.1. Các chức năng của đối tượng Customer (Khách vãng lai).................... 32
2.4.2. Các chức năng của đối tượng Member................................................. 33
2.4.3. Chức năng của Administrator .............................................................. 34
2.4.4. Biểu đồ hoạt động................................................................................ 37
2.4.5. Biểu đồ tuần tự .................................................................................... 42
CHƯƠNG 3. XÂY DỰNG & KIỂM THỬ WEBSITE .......................................... 48
3.1. Giới thiệu chương trình .............................................................................. 48
3.2. Giao diện chương trình ............................................................................... 49
KẾT LUẬN........................................................................................................... 58
TÀI LIỆU THAM KHẢO ..................................................................................... 59
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN.................................................... 60

iv


DANH MỤC HÌNH
Hình 1.1: Lịch sư phát triển của UML ................................................................... 21
Hình 1.2 Sự hợp nhất của UML............................................................................. 22
Hình 2.1: Usecase tổng quát .................................................................................. 31
Hình 2.2: Biểu đồ hoạt động đăng nhập ................................................................. 37
Hình 2.3: Biểu đồ hoạt động đăng nhập ................................................................. 37
Hình 2.4: Biểu đồ tuần tự quản lý thành viên......................................................... 37

Hình 2.5: Biểu đồ tuần tự quản lý lịch chiếu.......................................................... 38
Hình 2.6: Quản lý phim ......................................................................................... 39
Hình 2.7: Quản lý đặt vé........................................................................................ 39
Hình 2.8: Quản lý thành viên................................................................................. 40
Hình 2.9: Biểu đồ hoạt động tìm kiếm ................................................................... 40
Hình 2.10: Biểu đồ hoạt động đặt vé...................................................................... 41
Hình 2.11 Biểu đồ tuần tự đăng nhập..................................................................... 42
Hình 2.12: Biểu đồ tuần tự thêm nội dung ............................................................. 43
Hình 2.13: Biểu đồ tuần tự cập nhật thông tin........................................................ 44
Hình 2.14: Biểu đồ tuần tự tìm kiếm...................................................................... 45
Hình 2.15: Biểu đồ tuần tự đặt vé .......................................................................... 46
Hình 2.16: Sơ đồ lớp ............................................................................................. 47
Hình 3.1: Giao diện trang chủ................................................................................ 49
Hình 3.2: Giao diện hướng dẫn thanh toán............................................................. 50
Hình 3.3: Giao diện chi tiết bộ phim...................................................................... 51
Hình 3.4: Giao diện thông tin đặt vé ...................................................................... 52
Hình 3.5: Giao diện xác nhận đặt vé ...................................................................... 53
Hình 3.6: Giao diện lịch chiếu .............................................................................. 54
Hình 3.7: Giao diện quản lý phim.......................................................................... 55
Hình 3.8: Giao diện quả ví danh sách vé chưa thanh toán ...................................... 55
Hình 3.9: Giao diện vé đã thanh toán..................................................................... 56
Hình 3.10: Giao diện quản lý thành viên................................................................ 56
Hình 3.11: Giao diện quản lý lịch chiếu................................................................. 57

v


LỜI NÓI ĐẦU
Trong thời đại ngày nay công nghệ thông tin đóng vai trò quan trọng trong
sự phát triển của xã hội. Công nghệ thông tin đã trở thành nhân tố quan trọng, là cầu

nối trao đổi giữa các thành phần của xã hội toàn cầu, của mọi vấn đề .
Những năm gần đây với sự phát triển mạnh mẽ công nghệ thông tin các
website tin tức được hình thành ngày càng nhiều, phổ biến rất rộng rãi trên toàn thế
giới. Đây là một lĩnh vực không hề mới và lĩnh này cũng mang lại được những hiệu
quả nhất định cho nền kinh tế và phát triển. Các công ty, doanh nghiêp, trường học
cửa hàng, thậm chí là cá nhân đều có website riêng cho mình nhằm quảng bá tuyên
truyền và giới thiệu đến với mọi người.
Với mục đích chính là tìm hiểu về ngôn ngữ lập trình PHP, hệ quản trị CSDL
MySQL và ứng dụng “Xây dựng ứng dụng đăng kí mua vé online cho rạp chiếu
phim Beta – Thái nguyên”, nhằm đáp ứng nhu cầu giới thiệu thông tin, đặt vé
online tới khách hàng.

1


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Tìm hiểu về ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu MySQL
1.1.1. Giới thiệu và sử dụng PHP
a) Giới thiệu
 Lịch sử ra đời:
Năm 1995, Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp lại
cùng đoạn mã khi tạo các trang. Ban đầu tác giả chỉ có ý định tạo bộ phân giải đơn
giản để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viết bằng C.
 PHP là gì?
Vì tính hữu dụng, khả năng phát triển, PHP đã bắt đầu được sử dụng trong
môi trường chuyên nghiệp và nó đã trở thành “PHP: Hypertext Preprocessor”. Đây
là một ngôn ngữ kịch bản mã nguồn mở sử dụng cho mục đích chung, đặc biệt thích
hợp cho phát triển Web và có thể nhúng vào HTML. “PHP nhúng trong HTML”, có
nghĩa là PHP có thể được rải rác trong HTML, giúp cho việc phát triển các website
động được dễ dàng. PHP là một ngôn ngữ kịch bản (scripting language). Khác với

ngôn ngữ lập lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự
kiện xảy ra (ví dụ, khi người dùng gửi một biểu mẫu hoặc chuyển tới một URL).
PHP là một công nghệ phía máy chủ (server – side) và không phụ thuộc môi
trường (cross-platfom). Cả hai yếu tố này đều rất quan trọng. Khái niệm công nghệ
phía máy chủ nói đến việc mọi thứ trong PHP đều xảy ra trên máy chủ (ngược với
máy khách là máy của người dùng). Tính chất không phụ thuộc môi trường cho
phép PHP chạy trên hầu hết các hệ điều hành như windows, Unix (và nhiều biến thể
của nó), Macintosh…Một điều cũng rất quan trọng là các mã kịch bản PHP viết trên
máy chủ này sẽ làm việc bình thường trên các máy chủ khác mà không cần chỉnh
sửa hoặc chỉnh sửa rất ít.
Mã PHP được thực thi ở phía Server, khi trình duyệt của người dùng truy cập
một trang web có chứa một đoạn mã PHP thì trình duyệt nhận được trang kết quả đã
xử lý từ Web server, người dùng sẽ không thể biết được đoạn mã viết gì. Mã PHP
được bao trong cặp dấu <?php ?> hoặc <? ?>. Tập tin PHP có phần mở rộng là .php
hoặc .php3
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML. Điểm đặc
2


biệt là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy, mà các ứng
dụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP. Đây cũng chính là điểm
mạnh của PHP so với Perl.
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl... PHP có thể
giao tiếp với nhiều hệ CSDL như MySQL, MS Access, Sybase, Oracle và cả
Microsoft SQL. Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khả năng
khác như IMAP, SNMP, LDAP, XML... PHP chạy trên hầu hết các nền tảng hệ
thống. Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web
chính thức của PHP.
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí. Với máy tính
cấu hình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy chủ

có thể phục vụ được nhiều ứng dụng web tương đối. Toàn bộ chi phí hầu như chỉ là
thời gian bạn bỏ ra để cài đặt các phần mềm.
PHP được xem là một thay thế cho Perl. PHP không thể làm được nhiều như
Perl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng.
Nhiều nhà phát triển dùng kết hợp cả hai: Perl dùng cho những tác vụ chạy
bên dưới còn PHP dùng cho việc xử lý bề mặt. Komodo của Active State Corp là
công cụ miễn phí dùng để phát triển trang PHP.
 Tại sao cần dùng PHP?
PHP được sử dụng để phát triển website động vì nó tốt, nhanh và dễ dàng
nghiên cứu hơn các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ
với hầu hết các cơ sở dữ liệu có sẵn, tính năng bền vững linh động và khả năng phát
triển không giới hạn. Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở.
PHP vừa dễ với người mới sử dụng và vừa có khả năng làm được mọi thứ, đáp ứng
yêu cầu của lập trình viên chuyên nghiệp.
PHP được sử dụng càng ngày càng nhiều và mới đây đã bắt kịp ASP (vốn
được xem là ngôn ngữ kịch bản phổ biến nhất hiện nay). PHP là modun thông dụng
cho Apache (máy chủ Web phổ biến nhất) và nó đã có mặt trên 12 triệu website

3


b) Sử dụng PHP
 Thẻ PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
<? echo “Đây là kiểu Short”; ?>
- Kiểu định dạng XML: thẻ này có thể sử dụng với văn bản dạng XML.
<?php echo “Đây là kiểu định dạng với XML”; ?>
- Kiểu Script: trong trường hợp muốn sử dụng PHP như một script tương tự
như khai báo Javascript hay VBScript

<script language = ‘php’>
echo “PHP script”;
</script>
- Kiểu ASP:
<% echo “Đây là kiểu ASP”; %>
 Gọi hàm trong PHP
Để gọi hàm trong PHP, khai báo tương tự như gọi hàm trong các ngôn ngữ
lập trình khác, hầu hết các hàm khi gọi cần truyền tham số và giá trị trả về.
VD: Gọi hàm date()S
<? echo “Hôm nay là: ”.date(“d/m/Y”); ?>
Truy cập biến Form
Thông thường khi cần lấy dữ liệu của người dùng nhập, chúng ta sẽ dùng thẻ
form trong trang web nhằm ràng buộc tất cả các thẻ input, selec, textarea...
Dữ liệu đến từ script đều là biến PHP, chúng ta có thể nhận biết chúng bằng
cách sử dụng dấu $ trước tên biến. Có hai cách để truy cập dữ liệu trên form thông
qua biến.
- Để lấy giá trị của các thẻ trong form theo dạng POST: $_POST[‘ tên_thẻ’].
- Để lấy giá trị của các thẻ trong form theo dạng GET: $_GET[‘tên_thẻ’]
 Khai báo biến
PHP Engine không cần yêu cầu khai báo biến trước khi sử dụng, tuy nhiên nên
tập thói quen khai báo và khởi tạo giá trị ban đầu cho biến trước khi sử dụng chúng.

4


 Gán giá trị cho biến
Để gán giá trị cho biến, nếu biến đó chưa khai báo trước đó, biến này được
coi như vừa khai báo và khởi tạo. Trong trường hợp biến đã khai báo, biến này chỉ
thay đổi giá trị.
VD:

$qtty=20;
$price=10;
$total=$qtty*$price;
echo “Total: $total”;
?>
 Kiểu dữ liệu của biến trong PHP
PHP hỗ trợ 5 kiểu dữ liệu
- Interger: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số.
- Double: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số thực.
- String: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là chuỗi, ký tự.
- Array: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là mảng có các phần tử
cùng kiểu dữ liệu.
- Object: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là đối tượng của lớp.
 Toán tử trong PHP
* Các phép toán số học
Toán tử

Tên

Ví dụ

+

Cộng

$a + $b;

-

Trừ


$a - $b;

*

Nhân

$a*$b;

/

Chia

$a/$b;

%

Modulo

$a%$b;

5


* Các phép toán so sánh
Phép toán

Sử dụng

Ý nghĩa so sánh


==

$a= =$b

$a bằng $b

===

$a = = = $b

$a bằng và cùng kiểu dữ liệu với $b

!=

$a!=$b

$a không bằng $b

<>

$a<>$b

$a không bằng $b

<

$a<$b

$a nhỏ hơn $b


<=

$a<=$b

$a nhỏ hơn hoặc bằng $b

>

$a>$b

$a lớn hơn $b

>=

$a>=$b

$a lớn hơn hoặc bằng $b

* Các phép logic
Phép toán Ký hiệu

Sử dụng

Ý nghĩa
Phép toán phủ định

!

NOT


!$a

&&

AND

$a && $b

||

OR

$a || $b

And

AND

$a and $b

Or

OR

$a or $b

Trả về true nếu cả hai biến có giá trị
true. Ngược lại là false.
Trả về true nếu $a hay $b hay cả hai biến

có giá trị true
Trả về true nếu cả hai biến có giá trị
true. Ngược lại là false.
Trả về true nếu $a hay $b hay cả hai biến
có giá trị true.

 Kiểm tra biến trong PHP
- is_array(): Kiểm tra biến là array hay không.
- is_double(): Kiểm tra biến là double hay không.
- is_float(): Kiểm tra biến là float hay không.
- is_real(): Kiểm tra biến là real hay không.
- is_long(): Kiểm tra biến là long hay không.
- is_int(): Kiểm tra biến là int hay không.
6


- is_interger(): Kiểm tra biến là integer hay không.
- is_string(): Kiểm tra biến là string hay không.
- is_object(): Kiểm tra biến là object hay không.
- isset(): Nếu biến tồn tại hàm trả về giá trị true, ngược lại trả về false.
- empty(): Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0
trả về true, ngược lại là false.
Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP
dưới dạng tham số.
 Phát biểu có điều khiển
- Phát biểu If: Phát biểu if với một điều kiện, nếu điều kiện là true thì khối
lệnh trong phát biểu If sẽ được thực hiện, điều kiện được khai báo trong dấu ()
VD: $a = 10;
$b=6;
if($a>$b)

echo $a+$b;
Khối lệnh trong bất kỳ phát biểu điều khiển nào cũng có thể sử dụng dấu { và
}. Có nghĩa là nếu khối lệnh trong phát biểu lớn hơn 1 thì phải sử dụng hai dấu trên.
- Phát biểu Else: phát biểu else luôn là trường hợp ngược lại của phát biểu if
với một điều kiện, nếu điều kiện là true thì khối lệnh trong
phát biểu if sẽ được thực hiện, ngược lại khối lệnh trong phát biểu
else sẽ được thực hiện.
VD: $a = 10;
$b=6;
if($a>$b) echo $a+$b;
else
$b=$a+1;
Tương tự như trong trường hợp phát biểu if, nếu khối lệnh trong phát biểu
điều khiển else có hơn 1 dòng lệnh thì sẽ phải khai báo sử dụng dấu { và }.
- Phát biểu Switch: tương tự như phát biểu if, nhưng trong trường hợpcó
nhiều hơn hai tùy chọn cụ thể cho phép quyết định. VD: switch($diem)
{
7


case “5”: echo “Điểm trung bình”;
break;
case “7”: echo “Điểm khá”;
break;
case “10”: echo “Điểm giỏi”;
break;
deafault: echo “Nhập lại”;
}
Nếu đúng điều kiện case, cần khai báo phát biểu break nhằm thoát ra khỏi
phát biểu switch. Trong trường hợp không khai báo break trong mỗi phát biểu case,

nếu thỏa mãn điều kiện trong case nhưng PHP vẫn tiếp tục thực hiện tiếp các phát
biểu case sau đó.
- Phát biểu While: phát biểu vòng lặp đơn giản nhất trong PHP là vòng lặp
while cho phép bạn thực thi khối lệnh trong while cho đến khi điều kiện của while
là true như cú pháp
While (điều kiện)
{
câu lệnh thực hiện;
}
- Phát biểu do ... while: tương tự như while nhưng kiểm tra điều kiện sau khi
thực hiện khối lệnh.
do
{
câu lệnh thực hiện;
}
while (điều kiện)
- Phát biểu vòng lặp for: tương tự như trong phát biểu while, có thể sử dụng
vòng lặp for với 1 giới hạn chỉ định.
for (giá trị khởi đầu; điều kiện giới hạn; giá trị lặp của vòng lặp for)
{
khối lệnh thực hiện;
8


}
 Lưu trữ và truy vấn dữ liệu bằng PHP
- Mở file bằng PHP:
+ fopen(tên file, chế độ mở): mở file
+ puts(), fwrite(): ghi file
+ close(): Đóng file

+ feof(): Nhận giá trị true nếu con trỏ ở cuối file
+ file_exists(): Kiểm tra file có tồn tại
+ filesize(): kiểm tra dung lượng của file
Chế độ mở file:
Mode

Diễn giải

R

Mở dưới dạng Read-Only

R+

Mở dưới dạng Read-Write

W

Mở dưới dạng Write-Only

W+

Mở dưới dạng Write-Read. Nếu file này tồn tại, nội dung sẽ bị xóa,
nếu không tồn tại chúng sẽ được tạo ra.
Mở dưới dạng append dữ liệu (write), nếu nội dung tồn tại, bắt đầu

A

cuối cùng của nội dung, dữ liệu sẽ được ghi tiếp phần cuối,
trong trường hợp file không tồn tại chúng sẽ được tạo ra.

Mở dưới dạng append dữ liệu (write & read), nếu nội dung tồn tại, bắt

A+

đầu phần đầu của nội dung, dữ liệu sẽ được ghi tiếp phần đầu, trong
trường hợp file không tồn tại chúng sẽ được tạo ra.

- Thiết lập kết nối cơ sở dữ liệu
Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể là
localhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng
nhập làm việc trên cơ sở dữ liệu được mở.
9


Thiết lập kết nối:
Int mysql_pcconnect(“serverbname”, “username”, “password”);
if(!$db)
{ echo “Không kết nối được với CSDL”); }
hoặc
$link = mysql_connect(“servername”, “username”, “password”)
or die(“Không kết nối được với CSDL”);
-

Mở

một

CSDL:

mysql_select_db(“database


name”);

hoặc

mysql_select_db(“database name”, $link);
- Đóng kết nối cơ sở dữ liệu: mysql_close(database_connection);
- Truy vấn cơ sở dữ liệu:
Int mysql_query(string sql);
Int mysql_query(string sql, [int db_connect]);
Int mysql_query(string database, string sql, [int db_connect]);
Số lượng mẩu tin: mysql_num_rows(); Cho biết số lượng mẩu tin câu
truy vấn trả về
- Truy vấn dữ liệu:
Int mysql_fetch_array($result); Mysql_fetch_object($result);
- Dung lượng của tập mẩu tin: int mysql_free_result(int $result);
1.1.2. Giới thiệu MySQL
a) MySQL là gì?
MySQL là cơ sở dữ liệu phổ biến nhất thế giới, một số người còn cho rằng
đây là cơ sở dữ liệu mã nguồn mở tốt nhất. Thật vậy, từ khi phiên bản 4 bổ sung thêm
một vài đặc điểm mới thì MySQL đã trở thành đối thủ của những người khổng lồ đắt giá
như Oracle và SQL Server của Microsoft. Giống như PHP, MySQL có một khả năng
thực thi hoàn hảo, rất linh động, đáng tin cậy, dễ nắm bắt và ít chi phí hoặc miễn phí.
MySQL được phát triển và hỗ trợ bởi công ty MySQL AB của Thụy Điển. Nó là
hệ thống quản trị cơ sở dữ liệu (DBMS) cho các cơ sở dữ liệu quan hệ (vì vậy, MySQL
là một RDBMS). Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, có thể
là văn bản, số hoặc các tập tin nhị phân được lưu trữ có tổ chức bởi DBMS.
Có nhiều loại cơ sở dữ liệu, từ các tập tin đơn giản đến các tập tin quan hệ và
10



hướng đối tượng. Một cơ sở dữ liệu quan hệ sử dụng nhiều bảng để lưu trữ thông tin
trong những phần riêng biệt. Trước 1970, cơ sở dữ liệu trông giống như các bảng
tính lớn, đơn giản và lưu trữ mọi thứ. Các cơ sở dữ liệu quan hệ đòi hỏi phải tập
trung suy nghĩ nhiều hơn trong giai đoạn thiết kế và lập trình, nhưng chúng có độ
tin cậy và tính toán vẹn toàn dữ liệu tốt hơn. Ngoài ra, các cơ sở dữ liệu có thể thực
hiện việc tìm kiếm và cho phép nhiều người sử dụng cùng một lúc.
Có thể download tại website www.mysql.com qua mạng internet.
b) Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
 Loại dữ liệu numeric
Loại

Range

Bytes

Diễn giải

Tinyint

-127 ->128 hay 0..255

1

Số nguyên rất nhỏ

Smallint

-32768 -> 32767 hay 0..65535


2

Số nguyên nhỏ

3

Số nguyên vừa

Mediumint

-8388608 -> 838860 hay
0..16777215

Int

-231 -> 231 hay 0..232-1

4

Số nguyên

Bigint

-263 -> 263 hay 0..264-1

8

Số nguyên lớn

Float


Phụ thuộc số thập phân

Float(M,D)

Double(M,D)

±1.175494351E-38
±3.40282346638
±1.7976931348623157308
±2.2250738585072014E-308

Số thập phân dạng
Single hay Double
4

8

Số thập phân dạng
Single
Số thập phân dạng
Double
Số chấm động lưu

Float(M[,D])

dưới dạng char

11



 Loại dữ liệu Date and Time
Loại

Range

Date

1000-01-01

Time

00:00:00
23:59:59

Diễn giải
Date trình bày dưới dạng YYYY-mmdd
Time trình bày dưới dạng hh:mm:ss

1000-01-01
DateTime

00:00:00
9999-12-31

Date và Time trình bày dưới dạng
YYY-mm-dd hh:mm:ss

23:59:59
TimeStamp[(M)]


Year[(2|4)]

1970-01-01
00:00:00
1970-2069
1901-2155

TimeStamp

trình

bày

dưới

dạng

YYYY-mm-dd hh:mm:ss
Year trình bày dưới dạng 2 số hay 4 số

 Trình bày đại diện của TimeStamp
Loại

Hiển thị

TimeStamp

YYYYMMDDHHMMSS


TimeStamp(14)

YYYYMMDDHHMMSS

TimeStamp(12)

YYMMDDHHMMSS

TimeStamp(10)

YYMMDDHHMM

TimeStamp(8)

YYYYMMDD

TimeStamp(6)

YYMMDD

TimeStamp(4)

YYMM

TimeStamp(2)

YY

(y = năm, m = tháng, d = ngày)


12


 Loại dữ liệu String
Loại

Range

Diễn giải

Char

1-255 ký tự

Chiều dài của chuỗi lớn nhất 255 ký tự

Varchar

1-255 ký tự

Chiều dài của chuỗi lớn nhất 255 ký tự

Tinyblob

28-1

Khai báo cho Field chứa kiểu đối tượng
nhị phân cỡ 255 ký tự

Tinytext

Blob

28-1

Khai báo cho Field chứa kiểu chuỗi cỡ 255 ký
tự
Khai báo cho Field chứa kiểu blob cỡ

216-1

65535 ký tự.
Text

216-1

Mediumblob

224-1

Khai báo cho Field chứa kiểu chuỗi dạng văn
bản cỡ 65535 ký tự.
Khai báo cho Field chứa kiểu blob.
vừa khoảng 16777215 ký tự.

Mediumtext

224-1

Longblob


232-1

Longtext

232-1

Khai báo cho Field chứa kiểu chuỗi dạng văn
bản vừa kho ng 16777215 ký tự.
Khai báo cho Field chứa kiểu blob
lớn khoảng 4294967295 ký tự.
Khai báo cho Field chứa kiểu blob vừa
khoảng 4294967295 ký tự.

b) Phát biểu SQL
Tạo cơ sở dữ liệu:
Create Database <database_name> Create <object type>
<object_name>
Phát biểu SQL thao tác dữ liệu
- SELECT (truy vấn mẩu tin)
- INSERT (Thêm mẩu tin)
- UPDATE (Cập nhật dữ liệu)
13


- DELETE (Xóa mẩu tin)
a) Phát biểu Select
Select <danh sách cột> From <danh sách bảng>
Where <các điều kiện ràng buộc>
[Group by <tên cột/biểu thức trong Select>]
[Having <điều kiện bắt buộc của Group by>]

[Order by <danh sách cột>]
[Limit fromNumber | To Number]
b) Phát biểu Insert
Insert into <table_name> [<colum_name list>] Values (data_values)
c) Phát biểu Update
Update <table_name>
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name> Where <condition>
1.2. Tìm hiểu về thương mại điện tử
1.2.1. Giới thiệu về thương mại điện tử
E-commerce (Electronic commerce - thương mại điện tử) là hình thái hoạt
động thương mại bằng phương pháp điện tử; là việc trao đổi thông tin thương mại
thông qua các phương tiện công nghệ điện tử mà nói chung là không cần phải in ra
giấy trong bất cứ công đoạn nào của quá trình giao dịch. (nên còn được gọi là
“thương mại không giấy tờ”)
Các công đoạn của một giao dịch mua bán trên mạng?
Khách hàng, từ một máy tính tại một nơi nào đó, điền những thông tin thanh
toán và điạ chỉ liên hệ vào đơn đặt hàng (Order Form) của Website bán hàng (còn
gọi là Website thương mại điện tử). Doanh nghiệp nhận được yêu cầu mua hàng hoá
hay dịch vụ của khách hàng và phản hồi xác nhận tóm tắt lại những thông tin cần
thiết nh mặt hàng đã chọn, địa chỉ giao nhận và số phiếu đặt hàng...

14


Khách hàng kiểm tra lại các thông tin và kích (click) vào nút (button) "đặt
hàng", từ bàn phím hay chuột (mouse) của máy tính, để gởi thông tin trả về cho
doanh nghiệp.

Doanh nghiệp nhận và lưu trữ thông tin đặt hàng đồng thời chuyển tiếp thông
tin thanh toán (số thẻ tín dụng, ngày đáo hạn, chủ thẻ ...) đã được mã hoá đến máy
chủ (Server, thiết bị xử lý dữ liệu) của Trung tâm cung cấp dịch vụ xử lý thẻ trên
mạng Internet. Với quá trình mã hóa các thông tin thanh toán của khách hàng được
bảo mật an toàn nhằm chống gian lận trong các giao dịch (chẳng hạn doanh nghiệp
sẽ không biết được thông tin về thẻ tín dụng của khách hàng).
Khi Trung tâm Xử lý thẻ tín dụng nhận được thông tin thanh toán, sẽ giải mã
thông tin và xử lý giao dịch đằng sau bức tường lửa (FireWall) và tách rời mạng
Internet (off the Internet), nhằm mục đích bảo mật tuyệt đối cho các giao dịch
thương mại, định dạng lại giao dịch và chuyển tiếp thông tin thanh toán đến ngân
hàng của doanh nghiệp (Acquirer) theo một đường dây thuê bao riêng (một đường
truyền số liệu riêng biệt).
Ngân hàng của doanh nghiệp gởi thông điệp điện tử yêu cầu thanh toán
(authorization request) đến ngân hàng hoặc công ty cung cấp thẻ tín dụng của khách
hàng (Issuer). Và tổ chức tài chính này sẽ phản hồi là đồng ý hoặc từ chối thanh
toán đến trung tâm xử lý thẻ tín dụng trên mạng Internet.
Trung tâm xử lý thẻ tín dụng trên Internet sẽ tiếp tục chuyển tiếp những
thông tin phản hồi trên đến doanh nghiệp, và tùy theo đó doanh nghiệp thông báo
cho khách hàng được rõ là đơn đặt hàng sẽ được thực hiện hay không.
Toàn bộ thời gian thực hiện một giao dịch qua mạng từ bước 1 -> bước 6
được xử lý trong khoảng 15 - 20 giây.
1.2.2. Một số ứng dụng của thương mại điện tử
Thương mại điện tử đã bắt đầu có được chỗ đứng của mình, dù rất khiêm tốn.
Ðây mới chỉ là điểm khởi đầu, những kết quả đạt được dù rất nhỏ nhưng sẽ là nền
tảng cho một sự phát triển mạnh mẽ trong những năm tới. Sự nỗ lực của các nhà cung
cấp dịch vụ Internet, sự nhạy bén của các tổ chức, doanh nghiệp tiên phong đã góp
phần đưa đến những thành công ban đầu cho thương mại điện tử Việt nam. Có thể kể
ra một số ứng dụng thương mại điện tử phổ biến hiện nay ở Việt nam.
15



a) Quảng cáo trên mạng
Cho đến nay, khoảng 500 doanh nghiệp Việt nam có trang web trên Internet
(chiếm 1%). So với các nước phát triển, thì đây là một tỷ lệ quá thấp (ở Mỹ tỷ lệ
này là 70%) nhưng với chúng ta, đó là một con số rất có ý nghĩa. Những doanh
nghiệp có trang web thường là những doanh nghiệp lớn. Tuy chưa trực tiếp bán
hàng nhưng với việc xây dựng trang web, các doanh nghiệp Việt nam đã tạo cho
mình một văn phòng giao dịch trên mạng, chuẩn bị sẵn sàng cho các giao dịch
thương mại điện tử trong thời gian tới
Các nhà cung cấp dịch vụ Internet cũng đưa ra những hình thức quảng cáo
rất đa dạng để thu hút các doanh nghiệp tham gia. Ngoài web, đặt logo, banner còn
tổ chức các chuyên trang như Top 100, Best Ten (trên trang
kinh doanh business.vnn.vn, tổ chức các hội chợ thương mại trên Internet. Các mục
rao vặt trên Internet cũng rất phát triển, bạn có thể tìm mua các mặt hàng đơn lẻ trên
mục rao vặt của www.fpt.vn(Trở lại đầu trang)
b) Thông tin
Hiện nay, có rất nhiều thông tin thương mại được cung cấp bởi các nhà cung
cấp thông tin Internet của Việt nam tạo điều kiện thuận lợi cho hoạt động sản xuất
kinh doanh các doanh nghiệp.
c) Xuất bản
Hiện nay, xu thế xuất bản điện tử đang diễn ra phổ biến trên thế giới và đem
lại nguồn doanh thu lớn cho các nhà xuất bản. ở nước ta, ngày càng có nhiều tờ báo
điện tử xuất hiện trên mạng. Các toà soạn cuối cùng cũng đã nhận ra xu thế phát
triển tất yếu của loại hình này. Hiện nay, việc xuất bản điện tử đơn thuần là để cung
cấp thông tin, quảng bá thông tin ra nước ngoài, chưa hề có chuyện bán báo điện tử
ở Việt nam, nhưng các Báo đều hy vọng rằng điều đó sẽ diễn ra cùng với sự phổ cập
của Internet trong thời gian tới.
Các Báo đi đầu trong lĩnh vực này có: Nhân Dân, Thông tấn xã Việt nam,
Thời báo kinh tế, Lao động, Quê hương, Thế giới...
d) Thanh toán

Ðây là lĩnh vực ứng dụng công nghệ Internet nhiều nhất ở nước ta cho nên có
thể nói hoạt động thương mại điện tử hiện nay chủ yếu là trong lĩnh vực thanh toán
16


và các lĩnh vực khác của ngân hàng. Ðiều đó thể hiện qua việc hệ thống ngân hàng
của Việt nam đã tham gia thanh toán quốc tế thông qua việc nối mạng SWIFT.
Từ năm 1993, hệ thống ngân hàng đã bắt đầu ứng dụng công nghệ tin học vào
công tác thanh toán chuyển tiền nhưng mới ở trình độ bán cơ giới bằng việc hoán
chuyển chứng từ bằng giấy sang dữ liệu máy tính , để chuyển tới ngân hàng có đơn vị
thụ hưởng. Kể từ khi thực hiện thanh toán qua mạng máy tính, công việc thanh toán
được thực hiện nhanh, chính xác, tăng nhanh vòng quay vốn, tạo cho doanh nghiệp
giảm chi phí và chủ động trong sử dụng đồng vốn. Ðối với hệ thống ngân hàng đã giảm
được đáng kể lượng tiền mặt trong lưu thông kéo theo nhiều lợi ích kinh tế khác như
tiết kiệm chi phí in ấn, kiểm đếm, đóng gói, vận chuyển, bảo quản,..
e) Bán hàng trên mạng
Ngày 19/12/1998, Trung tâm Dịch vụ Gia tăng Giá trị (VASC) khai trương
siêu thị điện tử đầu tiên tại địa chỉ http://203.162.5.45/cybermall/ . Trên Cybermall
bày bán khá nhiều mặt hàng và người xem có thể tự do dạo chơi trên siêu thị, chọn
mua mặt hàng mà mình thích rồi đặt mua hàng. Siêu thị được thiết kế với đầy đủ
các tính năng cần thiết để việc mua, bán hàng được thuận tiện, duy chỉ có chức năng
thanh toán bằng tiền điện tử là không thực hiện được không phải vì khả năng kĩ
thuật không cho phép mà đơn giản là hệ thống Ngân hàng Việt nam chưa áp dụng
loại hình thanh toán này. Ban đầu, mọi người vào siêu thị vì tò mò, sau thấy đơn giản
tiện lợi, một số đã đặt mua hàng. Mọi chuyện diễn ra thuận lợi và một số nhà cung
cấp đã đăng kí bán hàng trên siêu thị khiến cho hàng hoá ngày càng trở lên phong
phú. Sau Cybermall, một số Siêu thị điện tử khác của Việt nam cũng đã ra đời như
Siêu thị máy tính tại . Doanh số bán hàng qua mạng còn
rất khiêm tốn vì nhiều lý do nhưng điều quan trọng là người dân Việt nam đã làm
quen được với một phương thức bán hàng hoàn toàn mới. Nếu như phương thức ấy

được phổ biến, trở thành một thói quen, một tập quán mua bán thì thương mại điện tử
sẽ hứa hẹn một tiềm năng phát triển mạnh mẽ trong những năm tới.
1.3. Sử dụng WebServer
Để chạy được các file PHP ta cần phải có một WebServer với Apache,
MySQL, PHP and Perl, việc cấu hình và cài đặt WebServer gặp nhiều khó khăn và
tốn kém thời gian. Hiện nay có nhiều phần mềm cấu hình sẳn và ứng dụng như một
17


WebServer như Xampp, Wamp,…Trong phần này tôi sử dụng WebServer Xampp
để phục vụ cho quá trình chạy thử chương trình.
- Cài đặt WebServer - Cài đặt XAMPP
Nếu muốn một trang web viết bằng ngôn ngữ PHP có thể chạy được trên
máy tính cục bộ và trên máy chủ thì cần phải có một web server là Apache, bộ
thông dịch ngôn ngữ PHP, ngôn ngữ truy vấn cơ sở dữ liệu là mySQL.
Đây là ba thành phần độc lập với nhau nhưng là bộ tam không thể thiếu
nhau. Với người bình thường nếu muốn 3 thàng này chạy với nhau một cách tốt đẹp
thì bạn phải có nhiều kiến thức sâu rộng về chúng vì thế sẽ gây khó khăn cho người
mới học.
Từ nhu cầu đó mà một gói phần mềm tích hợp 3 thành phần trên đã ra đời.
Có nhiều phần mềm tích hợp 3 thành phần này. Nhưng hiện nay, gói phần mềm
chạy ổn định nhất đó là XAMPP.
XAMPP tích hợp các gói phần mềm: Apache (web server), PHP (Ngôn ngữ
lập trình web), mySQL (hệ quản trị cơ sở dữ liệu dành cho PHP)…
1.4. Lý thuyết UML ( Unified Modelling Language )
1.4.1. Tại sao chúng ta phải xây dựng mô hình cho hệ thống?
Mô hình hóa là cách xem xét một bài toán thông qua việc sử dụng các mô
hình. Mô hình dùng để hiểu rõ bài toán, trao đổi thông tin giữa những người liên
quan như khách hàng, chuyên gia, người phân tích, người thiết kế... Mô hình giúp
cho việc xác định các yêu cầu tốt hơn, thiết kế rõ ràng hơn và khả năng bảo trì hệ

thống cao hơn.
Mô hình là sự trừu tượng hóa, mô tả mặt bản chất của một vấn đề hoặc một
cấu trúc phức tạp bằng cách loại bỏ những chi tiết không quan trọng, khiến cho bài
toán trở nên dễ hiểu và dễ nắm bắt hơn. Trừu tượng hóa là một khả năng cơ bản của
con người trong việc giải quyết các vấn đề phức tạp. Các kỹ sư, kiến trúc sư, các
nghệ sĩ đã từng xây dựng những mô hình từ hàng nghìn năm nay để thử các thiết kế
của họ trước khi thực hiện chúng. Việc phát triển các hệ thống phần mềm cũng
không ngoại lệ. Để xây dựng một hệ thống phức tạp, những người phát triển phải
trừu tượng hóa những khía cạnh (View) khác nhau của hệ thống, xây dựng các mô
hình bằng cách sử dụng các kí hiệu một cách rõ ràng, cẩn thận, kiểm tra xem các
18


mô hình đã thoả mãn các yêu cầu của hệ thống chưa và dần dần thêm vào các chi
tiết để có thể chuyển đổi từ mô hình sang một cài đặt cụ thể.
Chúng ta xây dựng mô hình của những hệ thống phức tạp bởi vì chúng ta
không thể lĩnh hội một lúc toàn bộ hệ thống đó. Ví dụ như khi xây một nhà kho
chúng ta có thể bắt tay vào xây ngay, khi xây một ngôi nhà chúng ta có thể cần bản
thiết kế của ngôi nhà đó. Khi cần xây môt tòa nhà cao tầng, chúng ta chắc chắn cần
bản thiết kế của toà nhà đó. Điều này cũng đúng trong lĩnh vực phần mềm. Hệ
thống càng phức tạp thì việc xây dựng mô hình càng quan trọng. Xây dựng mô hình
cho phép người thiết kế thấy được bức tranh tổng quan của hệ thống, thấy được các
thành phần của hệ thống tương tác với nhau như thế nào hơn là việc sa lầy vào chi
tiết bên trong của các thành phần đó.
Trong thế giới luôn biến động của các ứng dụng hướng đối tượng thì việc
phát triển và bảo trì các ứng dụng có chất lượng cao trong một khoảng thời gian hợp
lý ngày càng trở nên khó khăn hơn. Một tổ chức phát triển phần mềm thành công là
tổ chức xây dựng được các phần mềm có chất lượng, thoả mãn được mọi yêu cầu
của khách hàng.
Mô hình hóa là phần trung tâm trong các công việc, các hoạt động để dẫn tới

một phần mềm tốt. Chúng ta xây dựng mô hình để trao đổi, bàn bạc về cấu trúc và
ứng xử(behavior) mong muốn của hệ thống. Chúng ta xây dựng mô hình để trực
quan hóa và kiểm
Mô hình có thể mô tả các cấu trúc, nhấn mạnh về mặt tổ chức của hệ thống
hoặc nó có thể mô tả các hành vi, tập trung vào mặt động của hệ thống.
Chúng ta xây dựng mô hình để hiểu rõ hơn về hệ thống mà chúng ta đang
xây dựng, tạo ra cơ hội để có thể đơn giản hóa và tái sử dụng. Chúng ta xây dựng
mô hình để kiểm soát rủi ro.
Việc lập mô hình không chỉ dành cho các hệ thống lớn. Khi xây dựng mô
hình chúng ta sẽ đạt được 4 mục đích sau:


Mô hình giúp chúng ta trực quan hóa hệ thống như là nó vốn có hay theo

cách mà chúng ta muốn nó sẽ như vậy.


Mô hình cho phép chúng ta chỉ rõ cấu trúc và ứng xử của hệ thống

19




Mô hình cho chúng ta một khuôn mẫu để hướng dẫn chúng ta trong quá

trình xây dựng hệ thống.


Mô hình đưa ra các dẫn chứng bằng tài liệu về các quyết định mà chúng ta


đã đưa ra trong quá trình thiết kế hệ thống.
Thông qua việc mô hình hóa, chúng ta thu hẹp bài toán mà chúng ta đang
nghiên cứu bằng cách chỉ tập trung vào một khía cạnh tại một thời điểm. Điều này
cũng giống như phương pháp “chia để trị” mà Edsger Diskstra đã đưa ra: “Giải
quyết một vấn đề khó bằng cách chia nó thành những bài toán nhỏ hơn mà bạn có
thể giải quyết được.”
Mô hình hóa là việc đơn giản hóa thực tế, loại bỏ những điểm thứ yếu, tuy
nhiên ta phải chắc chắn rằng không bỏ sót một chi tiết quan trọng nào.
Tùy thuộc vào đặc điểm tự nhiên của hệ thống, mỗi mô hình có thể tập trung
vào những mặt khác nhau của hệ thống. Như hệ thống tập trung vào dữ liệu thì các mô
hình về phần thiết kế tĩnh của hệ thống sẽ được chú ý hơn. Trong hệ thống giao diện
người dùng thì phần tĩnh và động của Use case sẽ là quan trọng. Trong hệ thống thời
gian thực, các tiến trình động là quan trọng. Cuối cùng, trong hệ thống phân tán dựa
trên cở sở Web thì các mô hình về thực thi và triển khai là quan trọng nhất.
1.4.2. Lịch sử phát triển của UML
Những năm đầu của thập kỷ 90 có rất nhiều phương pháp phân tích, thiết kế
hệ thống hướng đối tượng và cùng với chúng là các ký hiệu riêng cho từng phương
pháp. Số lượng các phương pháp trong khoảng từ 10 đã lên đến gần 50 trong những
năm từ 1989 đến 1994. Ba phương pháp phổ biến nhất là OMT (Object Modeling
Technique)[James Rumbaugh], Booch91 [Grady Booch] và OOSE (ObjectOriented Software Enginering)[Ivar Jacobson]. Mỗi phương pháp đều có những
điểm mạnh và yếu. Như OMT mạnh trong phân tích và yếu ở khâu thiết kế,
Booch91 thì mạnh ở thiết kế và yếu ở phân tích. OOSE mạnh ở phân tích các ứng
xử, đáp ứng của hệ thống mà yếu trong các khâu khác.
Do các phương pháp chưa hoàn thiện nên người dùng rất phân vân trong việc
chọn ra một phương pháp phù hợp nhất để giải quyết bài toán của họ. Hơn nữa, việc
các ký hiệu khác nhau của các phương pháp đã gây ra những sự mập mờ, nhầm lẫn
khi mà một ký hiệu có thể mang những ý nghĩa khác nhau trong mỗi phương pháp.
20



×