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

Xây dựng website hỗ trợ đăng ký tuyển sinh trực tuyến của trường cao đẳng xây dựng nam định

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.66 MB, 63 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

──────── * ───────

Phạm Thị Vui

XÂY DỰNG WEBSITE HỖ TRỢ
ĐĂNG KÝ TUYỂN SINH TRỰC TUYẾN CỦA
TRƯỜNG CAO ĐẲNG XÂY DỰNG NAM ĐỊNH

LUẬN VĂN THẠC SĨ KỸ THUẬT
NGÀNH CÔNG NGHỆ THÔNG TIN

Hà Nội - Năm 2016


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

──────── * ───────

Phạm Thị Vui

XÂY DỰNG WEBSITE HỖ TRỢ
ĐĂNG KÝ TUYỂN SINH TRỰC TUYẾN CỦA
TRƯỜNG CAO ĐẲNG XÂY DỰNG NAM ĐỊNH

LUẬN VĂN THẠC SĨ KỸ THUẬT


NGÀNH CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: TS Nguyễn Thanh Hùng

Hà Nội - Năm 2016


MỤC LỤC
Trang
LỜI CẢM ƠN ........................................................................................................... 5
LỜI CAM ĐOAN ..................................................................................................... 6
DANH MỤC CÁC TỪ VIẾT TẮT .......................................................................... 7
DANH MỤC HÌNH ẢNH ....................................................................................... 8
DANH MỤC CÁC BẢNG ....................................................................................... 9
MỞ ĐẦU................................................................................................................. 10
1. Đặt vấn đề ....................................................................................................... 10
2. Đối tượng nghiên cứu ..................................................................................... 11
3. Phạm vi và phương pháp nghiên cứu ............................................................. 11
4. Nội dung luận văn........................................................................................... 11
CHƯƠNG 1 . CƠ SỞ LÝ THUYẾT VÀ CƠNG NGHỆ ỨNG DỤNG ................ 12
1.1 Ngơn ngữ lập trình Web PHP ....................................................................... 12
1.1.1 Khái niệm PHP.................................................................................... 12
1.1.2. Tại sao nên dùng PHP ........................................................................ 12
1.1.3. Hoạt động của PHP ............................................................................ 13
1.1.4. Các loại thẻ PHP ................................................................................ 14
1.1.5. Các kiểu dữ liệu: ................................................................................ 14
1.1.6. Biến giá trị .......................................................................................... 15
1.1.9. Biểu thức ............................................................................................ 15
1.1.10. Các cấu trúc lệnh .............................................................................. 15
1.1.11. Hàm: ................................................................................................. 15

1.1.12. Các toán tử: ...................................................................................... 15
1.1.13. Lớp và đối tượng .............................................................................. 16
1.1.14. Tham chiếu:...................................................................................... 16
1.1.15. MySQL và PHP: .............................................................................. 17
1.2. Cơ sở dữ liệu MYSQL................................................................................. 18
1.2.1. Giới thiệu cơ sở dữ liệu:..................................................................... 18
1.2.2. Mục đích sử dụng cơ sở dữ liệu: ........................................................ 18
1.2.3. Các kiểu dữ liệu trong cơ sở dữ liệu MySQL .................................... 19
1.2.4. Các thao tác cập nhật dữ liệu: ............................................................ 21
1.2. 5. Các hàm thông dụng trong MySQL .................................................. 22

3


1.3. Tìm hiểu về Cloud Computing .................................................................... 23
1.3.1 Khái niệm Cloud Computing .............................................................. 23
1.3.2 Tính chất cơ bản .................................................................................. 25
1.3.2 Các mơ hình Cloud Computing .......................................................... 27
1.3.3 Kiến trúc Cloud Computing ................................................................ 31
1.3.4 Lợi ích và hạn chế của Cloud Computing........................................... 33
1.4 Ứng dụng cloud computing trên nền tảng Google App Engine ................... 37
1.4.1 Tổng quan về Google App Engine...................................................... 37
1.4.2. Mơ hình kiến trúc và các dịch vụ của GAE ....................................... 40
1.4.3. Hạn chế của Google App Engine ....................................................... 44
CHƯƠNG 2. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ...................................... 45
2.1. Phân tích bài tốn ........................................................................................ 45
2.2 Các u cầu đối với bài tốn......................................................................... 45
2.3 Mơ tả hệ thống .............................................................................................. 46
2.4 Đặc tả chức năng .......................................................................................... 48
2.4.1 Chức năng đăng nhập admin:.............................................................. 48

2.4.2 Chức năng đăng ký tuyển sinh ............................................................ 49
2.5 Biểu đồ Use – Case ....................................................................................... 50
2.6 Phân tích chức năng và lập biểu đồ Use – Case .......................................... 50
2.6.1 Nhập dữ liệu đầu vào .......................................................................... 50
2.6.2. Đăng nhập trang admin ...................................................................... 51
2.6.3. Tra cứu thông tin ................................................................................ 51
2.7. Biểu đồ trình tự hoạt động của hệ thống ..................................................... 52
CHƯƠNG 3. CÀI ĐẶT VÀ KẾT QUẢ ĐẠT ĐƯỢC ........................................... 55
3.1. Kết quả website trên server ......................................................................... 55
3.1.1 Trang đăng ký tuyển sinh .................................................................... 55
3.1.2 Trang admin: ....................................................................................... 55
3.2 Một số Modul, mã nguồn Javascrip dùng trong chương trình. .................... 58
3.2.1. Kết nối dữ liệu. ................................................................................... 58
3.2.2. Modul bằng Javascript ....................................................................... 59
3.2. Triển khai trên Google App Engine ............................................................ 59
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................. 61
TÀI LIỆU THAM KHẢO ...................................................................................... 62

4


LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn và lòng biết ơn sâu sắc nhất đến TS Nguyễn
Thanh Hùng đã tận tình hướng dẫn và chỉ bảo em trong suốt quá trình thực hiện luận
văn tốt nghiệp.
Em xin chân thành cảm ơn các thầy, cô trong trường Đại học Bách Khoa đã
tạo mọi điều kiện thuận lợi cho em học tập và nghiên cứu.
Em cũng xin gửi lời cảm ơn các bạn trong lớp CNTT-2014B đã ủng hộ và
khuyến khích em trong suốt q trình học tập tại trường.

Cuối cùng, em xin được gửi lời cảm ơn vơ hạn tới gia đình và bạn bè, những
người đã luôn bên cạnh, giúp đỡ và động viên em trong suốt quá trình học tập cũng
như trong suốt quá trình thực hiện khóa luận này.
Em xin chân thành cảm ơn!

5


LỜI CAM ĐOAN

Tôi xin cam đoan rằng luận văn thạc sĩ kỹ thuật với đề tài “Xây dựng website
hỗ trợ đăng ký tuyển sinh trực tuyến của trường Cao đẳng Xây dựng Nam Định” là
cơng trình nghiên cứu của riêng tơi, khơng sao chép lại của người khác. Trong tồn
bộ nội dung của luận văn, những điều đã trình bày hoặc là của cá nhân tôi hoặc là
được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tại liệu tham khảo đều có
xuất xứ rõ ràng và hợp pháp.
Tơi xin hồn tồn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan này.
Hà Nội, tháng 10 năm 2016
Tác giả luận văn

Phạm Thị Vui

6


DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt


Giải thích

1.

PHP

Personal Home Page

2.

HTML

Hyper Text Markup Language

3.

XML

Extensible Markup Language

4.

CSDL

Cơ sở dữ liệu

5.

SQL


Structured Query Language

6.

CPU

Central Processing Unit

7.

GAE

Google App Engine

8.

SaaS

Software as a Service

9.

PaaS

Platform as a Service

10.

IaaS


Infrastructure as a Service

11.

CSS

Cascading Style Sheet

12.

JDK

Java Development Kit

13.

API

Application Programming Interface

STT

7


DANH MỤC HÌNH ẢNH
Hình 1.1 Sơ đồ hoạt động của PHP .................................................................. 14
Hình 1.2. Mọi thứ đều tập trung vào đám mây ................................................ 23
Hình 1.3. Hình ảnh Cloud Computing ............................................................. 24
Hình 1.4. ĐTĐM “di cư” các nguồn tài nguyên lên mạng Internet ................. 24

Hình 1.5. NIST Visual Model of Cloud Computing Definition....................... 25
Hình 1.6. Các loại dịch vụ Cloud Computing .................................................. 27
Hình 1.7. Mơ hình SPI ...................................................................................... 28
Hình 1.8. Các mơ hình triển khai điện tốn đám mây ...................................... 29
Hình 1.9. Mơ hình Public Cloud ...................................................................... 29
Hình 1.10. Mơ hình Private Cloud ................................................................... 30
Hình 1.11. Kết hợp Public Cloud và Private Cloud ......................................... 30
Hình 1.12. Triển khai ứng dụng trên Hybrid Cloud ......................................... 31
Hình 1.13. Kiến trúc Cloud Computing ........................................................... 32
Hình 1.14: Những ưu điểm và khuyết điểm của ĐTĐM.................................. 36
Hình 1.15 Kiến trúc GAE ................................................................................. 40
Hình 1.17 Sử dụng dịch vụ Memcache ............................................................ 42
Hình 1.18 Sử dụng dịch vụ URL Fetch ............................................................ 43
Hình 2.1 Quá trình hoạt động của hệ thống đối với User ................................ 47
Hình 2.2 Quá trình hoạt động hệ thống đối với Admin ................................... 48
Hình 2.3 Biểu đồ Use - Case ............................................................................ 50
Hình 2.4. Biểu đồ tuần tự của use case đăng ký ............................................... 52
Hình 2.5 Biểu đồ tuần tự của Admin ............................................................... 53
Hình 3.1 Biểu đăng ký tuyển sinh ................................................................... 55
Hình 3.2 Biểu đăng nhập hệ thống .................................................................. 56
Hình 3.3 Biểu cập nhật thơng tin. .................................................................... 56

8


DANH MỤC CÁC BẢNG
Bảng 1.1 Kiểu dữ liệu số nguyên ..................................................................... 19
Bảng 1.2 Kiểu dữ liệu số chấm động ............................................................... 19
Bảng 1.3 Kiểu dữ liệu số nguyên ..................................................................... 20
Bảng 1.4 Kiểu dữ liệu số string ........................................................................ 21


9


MỞ ĐẦU
1. Đặt vấn đề
Với sự phát triển mạnh của công nghệ thông tin hiện nay, Internet ngày càng
giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống. Dĩ nhiên các
bạn đã được nghe nói nhiều về Internet, nói một cách đơn giản, Internet là một tập
hợp máy tính nối kết với nhau, là một mạng máy tính tồn cầu mà bất kì ai cũng có
thể kết nối bằng máy tính của họ. Với mạng Internet, tin học thật sự tạo nên một cuộc
cách mạng trao đổi thông tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế...
Trong thời buổi ngày nay mọi thông tin gần như đều được đưa lên mạng Internet
mọi người có thể xem, cập nhật, trao đổi thơng tin trên đó giúp cho cơng việc nhanh
hơn tiện hơn chính xác hơn. Mọi người cũng có thể giải trí, lưu trữ thơng tin một cách
an tồn dễ dàng …
Trước nhu cầu cấp thiết của Nhà trường (nơi em đang cơng tác) cần có cơng cụ
giao tiếp giữa ban tuyển sinh với học sinh, sinh viên. Ban tuyển sinh có được thơng
chi tiết của thí sinh nhằm tư vấn, giải đáp các mối quan tâm của thí sinh, đồng thời
tiện lợi cho việc quản lý hồ sơ đăng ký tuyển sinh. Bên cạnh đó, tạo con đường nhanh
nhất, dễ dàng nhất, và chính xác nhất khi thí sinh gửi các thông tin đăng ký tuyển sinh
đến nhà trường - thay thế cách gửi qua đường bưu điện thông thường. Đặc biệt, người
đăng ký dễ dàng truy cập cũng như tra cứu các thơng tin của mình.
Bên cạnh đó, cách thức xây dựng một hệ thống web truyền thống đã có thể đáp
ứng tốt cho u cầu của bài tốn tuyển sinh. Tuy nhiên trong q trình phân tích, tìm
hiểu, em có nhìn thấy một số vấn đề sau: việc sử dụng hệ thống tuyển sinh chỉ tập trung
vào một giai đoạn ngắn trong năm, và số lượng truy cập tại thời điểm đó thường rất
cao, điều đó dẫn đến bài toán nâng cấp cơ sở hạ tầng, mà cụ thể là phía máy chủ. Để
đáp ứng tốt được số lượng truy cập lớn thì chi phí cho server là lớn, tuy nhiên thì ngồi
thời gian tuyển sinh, tài ngun server sẽ không được sử dụng hết, dẫn đến lãng phí.


10


Do đó, đáp ứng u cầu của bài tốn thực tế trên và sự phát triển của công nghệ
web đặc biệt là mã nguồn mở PHP; MySQL đồng thời sử dụng nền tảng điện toán
đám mây sẽ làm thuận lợi hơn cho quá trình xây dựng các chương trình, ứng dụng
phục vụ cơng tác sau này. Chính vì vậy, luận văn đã lựa chọn đã lựa chọn tìm hiu về
ngơn ngữ lập trình web PHP, cơ sở dữ liệu MySQL và Cloud Computing với ứng
dụng dịch vụ Google App Engine để xây dựng website hỗ trợ tuyển sinh của trường
Cao đẳng Xây dựng Nam Định.
2. Đối tượng nghiên cứu
- Nghiên cứu quy chế tuyển sinh của Bộ Giáo dục và Đào tạo nói chung và quy
chế, hình thức tuyển sinh cụ thể của trường Cao đẳng Xây dựng Nam Định.
- Nghiên cứu về ngơn ngữ lập trình web PHP
- Nghiên cứu cơ sở dữ liệu My SQL
- Nghiên cứu về Cloud Computer cụ thể về dịch vụ Google App Engine của Google.
3. Phạm vi và phương pháp nghiên cứu
Hiện nay có rất nhiều cơng nghệ hỗ trợ cho việc phát triển Website. Trong phạm
vi luận văn này, tác giả luận văn kết hợp sử dụng các phương pháp nghiên cứu là
“Nghiên cứu lý thuyết” và “Nghiên cứu thực nghiệm” tập trung nghiên cứu các công
nghệ: Google App Engine, PHP và MySQL.
Trong luận văn, tác giả luận văn có xây dựng một Website được viết bằng ngơn
ngữ lập trình PHP; Website đó sử dụng cơ sở dữ liệu MySQL hoặc Google Cloud
SQL; Website đó chạy trên nền tảng web server là Google App Engine.
4. Nội dung luận văn
Luận văn được bố cục như sau:
Mở đầu
Chương 1: Cơ sở lý thuyết và các cơng nghệ sử dụng.
Chương 2: Phân tích và thiết kế hệ thống.

Chương 3: Cài đặt và kết quả đạt được.
Kết luận và hướng phát triển.

11


CHƯƠNG 1. CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ ỨNG DỤNG
1.1 Ngơn ngữ lập trình Web PHP
1.1.1 Khái niệm PHP
PHP là chữ viết tắt của “Personal Home Page” do Ramus Lerdorf tạo ra năm
1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử dụng
trong mơi trường chun nghiệp và nó trở thành “PHP: Hypertext Preprocessor”
Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn
giản đó là một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong
HTML.
PHP là một ngơn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công
nghệ phía máy chủ (Server-Side) và khơng phụ thuộc vào mơi trường (crossplatform). Đây là hai yếu tố rất quan trọng, thứ nhất khi nói cơng nghệ phía máy chủ
tức là nói đến mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính vì 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 trên các hệ điều hành
như Windows, Unix và nhiều biến thể của nó... Đặc biệt 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 máy chủ khác mà không cần phải
chỉnh sửa hoặc chỉnh sửa rất ít.
Khi một trang Web muốn được dùng ngơn ngữ PHP thì phải đáp ứng được tất
cả các quá trình xử lý thơng tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ
HTML.
Khác với ngôn ngữ 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).
1.1.2. Tại sao nên dùng PHP
Để thiết kế Web động có rất nhiều ngơn ngữ lập trình khác nhau để lựa chọn,

mặc dù cấu hình và tính năng khác nhau nhưng chúng vẫn đưa ra những kết quả giống

12


nhau. Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java,... và một
số loại khác nữa. Vậy tại sao chúng ta lại nên chọn PHP. Rất đơn giản, có những lí
do sau mà khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này.
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 linh động, bền vững và khả năng phát triển không giới hạn.
Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí, và
chính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web ln có ý thức
cải tiến, nâng cao để khắc phục các lỗi trong các chương trình này.
PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các
lập trình viên chuyên nghiệp, mọi ý tưởng của các bạn PHP có thể đáp ứng một cách
xuất sắc.
Cách đây không lâu ASP vốn được xem là ngôn ngữ kịch bản phổ biến nhất,
vậy mà bây giờ PHP đã bắt kịp ASP, bằng chứng là nó đã có mặt trên 12 triệu Website.
1.1.3. Hoạt động của PHP
Vì PHP là ngơn ngữ của máy chủ nên mã lệnh của PHP sẽ tập trung trên máy
chủ để phục vụ các trang Web theo u cầu của người dùng thơng qua trình duyệt.

13


Sơ đồ hoạt động của PHP
(Nguồn [B02] trang 15)

Yêu cầu URL


Máy
khách hàng

Máy

chủ Web

HTML

Gọi mã kịch bản
HTML
PHP
Hình 1.1 Sơ đồ hoạt động của PHP
1.1.4. Các loại thẻ PHP
Có 4 loại thẻ khác nhau mà bạn có thể sử dụng khi thiết kế trang PHP:
 Kiểu Short: Thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
 Kiểu đinh dạng XML: Thẻ này có thể sử dụng với văn bản định dạng XML


Kiểu Script: Trong trường hợp bạn sử dụng PHP như một script tương tự
khai báo JavaScipt hay VBScript:

 Kiểu ASP: Trong trường hợp bạn khai báo thẻ PHP như một phần trong
trang ASP.
1.1.5. Các kiểu dữ liệu:
Dữ liệu đến từ Script đều là biến PHP, bạn có thể nhận biết chúng bằng cách sử
dụng dấu $ trước tên biến.
Các kiểu dữ liệu sử dụng trong PHP:
- Số: số nguyên, số thực
- Xâu ký tự

- Mảng.

14


1.1.6. Biến giá trị
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ
cái hoặc dấu gạch dưới. Một biến có thể gắn với một cái tên
Ví dụ:
$a= “chao”;
$$a= “cacban”;
$Chao= “cacban”
Và echo”$a${chao}”;
Kết quả sẽ là “chaocacban”
1.1.9. Biểu thức
Biểu thức là một thành phần quan trọng trong PHP. Một dạng cơ bản nhất của
biểu thức bao gồm các biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản nhất: Số
nguyên, số thực và xâu. Ngồi ra cịn có mảng và đối tượng. Mỗi kiểu giá trị này có
thể gán cho các biến hay làm giá trị ra của các hàm.
1.1.10. Các cấu trúc lệnh
Cũng như các ngơn ngữ lập trình khác, PHP hỗ trợ các cấu trúc phổ biến như:
- Các lệnh tuần tự
- Các lệnh rẽ nhánh: if, if/else, if/elseif/elseif/…/else
- Các lệnh lặp (for, while/do, do/while)
1.1.11. Hàm:
Dùng giống với C++. Ngoại trừ bạn không cần phải khai báo kiểu cho tham
số của hàm.
Ví dụ: function takes_array($input)
{
echo “$input[0] + $input[1] = “, $input[0]+$input[1];

}
1.1.12. Các toán tử:
Các phép số học: +, -, *, /%
Các toán tử logic: And, or, xor: &&, ||, !

15


Tốn tử thao tác với bít: &, |, ^, ~, <<, >>
Toán tử so sánh: ==, !=, <, >, <=, >=, ===
Toán tử điều khiển lỗi: @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức
sẽ bị bỏ qua và lưu trong $PHP_errormsg
$link=mysql_connect(sv, username, pass);
if(!$link)
die("khong ket noi duoc mysql");
?>
Toán tử thực thi:’ ‘PHP sẽ thực hiện nội dung nằm giữa 2 dấu ‘ như 1 lệnh shell.
Trả ra giá trị là kết quả thực hiện lệnh.
Ví dụ:
$output=’Is-al’;//liệt kê các file bằng lệnh Linux
Echo”$output”;
1.1.13. Lớp và đối tượng
Class: là tập hợp các biến và hàm làm việc với các biến này. Một lớp có định
dạng như sau:
Class Cart{
Var $items;
Function add_item($a)
Lớp Cart ở đây là một kiểu dữ liệu

1.1.14. Tham chiếu:
Tham chiếu trong PHP có nghĩa là lấy cùng giá trị bằng nhiều tên biến khác
nhau. Khác với con trỏ C, tham chiếu là một bảng các bí danh. Chú ý: Trong PHP,
tên biến và nội dung của các biến khác nhau. Vì vậy, cùng một nội dung có thể có
nhiều tên khác nhau.
Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nội dung.
Ví dụ:

16


$a=&$b; ==> $a, $b trỏ tới cùng một giá trị
Tham chiếu truyền giá trị bằng tham chiếu. Thực hiện việc này bằng cách tạo
một hàm cục bộ và truyền giá trị được tham chiếu.
Ví dụ:
function f(&$var)
{$var++; }
$a=5;
f($a);
--> Kết quả: $a=6;
Giá trị trả lại của một hàm bằng tham chiếu rất tiện lợi khi bạn muốn sử dụng
hàm để tìm 1 giá trị trong một phạm vi nào đó.
1.1.15. MySQL và PHP:
Để connect tới 1 CSDL trên MySQL Server rất đơn giản. Chỉ cần sử dụng
hàm:mysql_connect (host, user, password) để mở 1 kết nối tới MSQL Server với kết
quả là giá trị trả về của hàm (Giả sử là biến $dbname). Sau đó, dùng hàm
mysql_select_db(dbname, $link)
Để thực hiện một câu lệnh truy vấn, dùng hàm mysql_query(query, link). Giá
trị trả lại của hàm là kết quả của câu truy vấn. Nếu bỏ qua link thì kết nối cuối cùng
tới MySQL server sẽ được thực hiện.

Để lấy kết quả thực hiện, ta có thể dùng hàm mysql_result(),
mysql_fetch_row(), mysql_fetch_array(), mysql_fetch_object().
* mysql_fetch_row():Trả về một mảng các dữ liệu lấy từ 1 dòng trong CSDL.
Nếu đã ở cuối CSDL, giá trị trả về là false. Bạn phải dùng chỉ số của các trường trong
CSDL nếu muốn lấy dữ liệu.
*mysql_fetch_array(int result[, int result_type]): Trả về một mảng chứa dữ liệu
lấy từ một dòng trong CSDL. Tương tự như mysql_fetch_row() nhưng bạn có thể lấy
thêm trường để lấy dữ liệu.
*mysql_fetch_object: Chuyển kết quả thành một đối tượng với các trường là
các trường trong cơ sở dữ liệu.

17


1.2. Cơ sở dữ liệu MYSQL
1.2.1. Giới thiệu cơ sở dữ liệu:
MySQL là ứng dụng cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay (theo
www. mysql. com) và được sử dụng phối hợp với PHP. Trước khi làm việc với
MySQL cần xác định các nhu cầu cho ứng dụng.
MySQL là cơ sở dữ có trình giao diện trên Windows hay Linux, cho phép
người sử dụng có thể thao tác các hành động liên quan đến nó. Việc tìm hiểu từng
cơng nghệ trước khi bắt tay vào việc viết mã kịch bản PHP, việc tích hợp hai cơng
nghệ PHP và MySQL là một công việc cần thiết và rất quan trọng.
1.2.2. Mục đích sử dụng cơ sở dữ liệu:
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: lưu trữ (storage),
truy cập (accessibility), tổ chức (organization) và xử lí (manipulation).
 Lưu trữ: Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này
sang cơ sở dữ liệu khác, nếu bạn sử dụng cho quy mơ nhỏ, bạn có thể chọn cơ sở dữ
liệu nhỏ như: Microsoft Excel, Microsoft Access, MySQL, Microsoft Visual
FoxPro... Nếu ứng dụng có quy mơ lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn

như: Oracle, SQL Server...
 Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử
dụng, ở mức độ mang tính cục bộ, truy cập cơ sỏ dữ liệu ngay trong cơ sở dữ liệu với
nhau, nhằm trao đổi hay xử lí dữ liệu ngay bên trong chính nó, nhưng do mục đích
và yêu cầu người dùng vượt ra ngoài cơ sở dữ liệu, nên bạn cần có các phương thức
truy cập dữ liệu giữa các cơ sở dử liệu với nhau như: Microsoft Access với SQL
Server, hay SQL Server và cơ sở dữ liệu Oracle....
 Tổ chức: Tổ chức cơ sở dữ liệu phụ thuộc vào mo hình cơ sở dữ liệu, phân tích
và thiết kế cơ sở dữ liệu tức là tổ chức cơ sở dữ liệu phụ thuộc vào đặc điểm riêng của
từng ứng dụng. Tuy nhiên khi tổ chức cơ sở dữ liệu cần phải tuân theo một số tiêu
chuẩn của hệ thống cơ sở dữ liệu nhằm tăng tính tối ưu khi truy cập và xử lí.
 Xử lí: Tùy vào nhu cầu tính tốn và truy vấn cơ sở dữ liệu với các mục đích
khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của

18


cơ sở dữ liệu để xuất ra kết quả như yêu cầu. Để thao tác hay xử lí dữ liệu bên trong
chính cơ sở dữ liệu ta sử dụng các ngơn ngữ lập trình như: PHP, C++, Java, Visual
Basic ...
1.2.3. Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
1.2.3.1. Loại dữ liệu numberic: bao gồm kiểu số nguyên và kiểu số chấm động.
Kiểu dữ liệu số nguyên:
Loại

Range

Diễn giải

Bytes


-127->128 hay 0.. 255

1

Số nguyên rất nhỏ

Smallint

-32768->32767 hay 0.. 65535

2

Số nguyên nhỏ

Mediumint

-8388608->838860 hay 0..

3

Số nguyên vừa

Tinyint

16777215
Int

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


4

Số nguyên

Bigint

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

8

Số nguyên lớn

Bảng 1.1 Kiểu dữ liệu số nguyên
Kiểu dữ liệu số chấm động
Loại

Range

Bytes

Diễn giải

Float

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

4

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


Float(M, D)

±1. 175494351E-38

2

±3. 40282346638
Double(M, D)

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

±1. 7976931348623157308
±2. 2250738585072014E-308

8

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

Bảng 1.2 Kiểu dữ liệu số chấm động
1.2.3. 2. Loại dữ liệu kiểu Date and Time
Kiểu dữ liệu Date and Time cho phép bạn nhập dữ liệu dưới dạng chuỗi ngày
tháng hay dạng số.
Dữ liệu kiểu số nguyên

19



Loại
Date

Diễn giải

Range

Date trình bày dưới dạng

1000-01-01

yyyy-mm-dd.
Time

DateTime

TimeStamp[(M)]

Year[(2|4)]

00:00:00

Time trình bày dưới dạng

23:59:59

hh:mm:ss.

1000-01-01


00:00:00 Date và Time trình bày dưới

9999-12-31

03:59:59 dạng yyyy-mm-dd hh:mm:ss.

1970-01-01

TimeStamp trình bày dưới

00:00:00

dạng yyyy-mm-dd hh:mm:ss.

1970-2069

Year trình bày dưới dạng 2 số

1901-2155

hay 4 số

Bảng 1.3 Kiểu dữ liệu số nguyên
1.2.3. 3. Loại dữ liệu String
Kiểu dữ liệu String chia làm 3 loại:loại thứ nhất như char (chiều dài cố định)
và varchar (chiều dài biến thiên); loại thứ hai là Text hay Blob, Text cho phép lưu
chuỗi rất lớn, Blob cho phép lưu đối tượng nhị phân; loại thứ ba là Enum và Set.
Kiểu dữ liệu String
Loại


Diễn giải

Range

Char

1-255 characters

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

Varchar

1-255 characters

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 characters

Tinytext

28-1

Khai báo cho Field chứa kiểu chuỗi cỡ 255
characters.


Blob

216-1

Khai báo cho Field chứa kiểu blob cỡ 65,
535 characters..

Text

216-1

Khai báo cho Field chứa kiểu chuỗi dạng
văn bản cỡ 65, 535 characters.

20


Mediumblob

224-1

Khai báo cho Field chứa kiểu blob vừa
khoảng 16, 777, 215 characters

Mediumtext

224-1

Khai báo cho Field chứa kiểu chuỗi dạng
văn bản vừa khoảng 16, 777, 215

characters

Longblob

232-1

Khai báo cho Field chứa kiểu blob lớn
khoảng 4, 294, 967, 295 characters.

Longtext

232-1

Khai báo cho Field chứa kiểu chuỗi dạng
văn bản lớn khoảng 4, 294, 967, 295
characters.

Bảng 1.4 Kiểu dữ liệu số string
1.2.4. Các thao tác cập nhật dữ liệu:
 SELECT (Truy vấn mẫu tin):Select dùng để truy vấn từ một hay nhiều bảng
khác nhau, kết quả trả về là một tập mẫu tin thỏa mãn các điều kiện cho trước nếu có,
cú pháp của phát biểu SQL dạng SELECT như sau:
SELECT<danh sách các 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ác cột>]
[LIMIT FromNumber |ToNumber]
 INSERT(Thêm mẫu tin):

Cú pháp:INSERT INTO Tên_bảng VALUES(Bộ_giá_trị)
 UPDATE(Cập nhật dữ liệu):
Cú pháp:UPDATE TABLE Tên_bảng
SET Tên_cột=Biểu_thức,...
[WHERE Điều_kiện]
 DELETE(Xóa mẫu tin):

21


Cú pháp:DELETE FROM Tên_bảng
[WHERE Điều_kiện]
1.2. 5. Các hàm thông dụng trong MySQL
1.2.5. 1. Các hàm trong phát biểu GROUP BY
 Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy vấn
 Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy vấn
 Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trường trong câu truy vấn
 Hàm Count: Hàm trả về số lượng mẩu tin trong câu truy vấn
 Hàm Sum: Hàm trả về tổng các giá trị của trường, cột trong câu truy vấn.
1.2.5. 2. Các hàm xử lí chuỗi:
 Hàm ASCII:Hàm trả về giá trị mã ASCII của kí tự bên trái của chuỗi.
 Hàm Char:Hàm này chuyển đổi kkiểu mã ASCII từ số nguyên sang dạng chuỗi.
 Hàm UPPER:Hàm này chuyển đổi chuỗi sang kiểu chữ hoa
 Hàm LOWER:Hàm này chuyển đổi chuỗi sang kiểu chữ thường.
 Hàm Len:Hàm này trả về chiều dài của chuỗi.
 Thủ tục LTRIM:Thủ tục loại bỏ khỏang trắng bên trái của chuỗi
 Thủ tục RTRIM:Thủ tục loại bỏ khỏang trắng bên phải của chuỗi
 Hàm Left(str, n):Hàm trả về chuỗi bên trái tính từ đầu cho đến vị trí n
 Hàm Right(str, n):Hàm trả về chuỗi bên phải tính từ đầu cho đến vị trí n
 Hàm Instrt:Hàm trả về chuỗi vị trí bắt đầu của chuỗi con trong chuỗi xét.

1.2.5. 3. Các hàm xử lí về thời gian
 Hàm CurDate():Hàm trả về ngày, tháng và năm hiện hành của hệ thống.
 Hàm CurTime():Hàm trả về giờ, phút và giây hiện hành của hệ thống.
 Hàm Period_Diff: Hàm trả về số ngày trong khoảng thời gian giữa 2 ngày.
 Hàm dayofmonth: Hàm trả về ngày thứ mấy trong tháng
1.2.5. 4. Các hàm về toán học
 Hàm Sqrt: Hàm trả về là căn bậc hai của một biểu thức.
 Hàm CurDate(): Hàm trả về ngày, tháng và năm hiện hành của hệ thống.

22


1.3. Tìm hiểu về Cloud Computing
Website ( đăng ký tuyển sinh xây dựng trên
PHP đã được triển khai trên host. Tuy nhiên, do website thường hoạt động vào thời
điểm thí sinh đăng ký tuyển sinh các trường cao đẳng, đại học trên cả nước. Do đó,
tác giả xin đề xuất ứng dụng Cloud computing trên nền tảng Google App Engine để
giảm thiểu chi phí cũng như khai thác hiệu quả ứng dụng cloud computing.
1.3.1 Khái niệm Cloud Computing
Theo định nghĩa của Wikipedia thì Cloud Computing là mơi trường tính tốn
dựa trên internet mà ở đó tất cả phần mềm, dữ liệu, tài nguyên được cung cấp cho
máy tính và các thiết bị khác theo nhu cầu (tương tự như mạng điện).

Hình 1.2. Mọi thứ đều tập trung vào đám mây
(Nguồn />Đứng ở góc nhìn khoa học kỹ thuật cũng có nhiều định nghĩa khác nhau, trong
đó có hai định nghĩa của Ian Foster và Rajkumar Buyya được dùng khá phổ biến và
có nhiều điểm tương đồng.
Theo tác giả Ian Foster (2008, Cloud Computing and Grid Computing 360Degree Compared): Cloud Computing là một mơ hình điện tốn phân tán có tính co
giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính tốn,
kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa và co giãn linh động,

sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet.

23


Theo tác giả Rajkumar Buyya (2008, Market-Oriented Cloud Computing): Cloud
là một loại hệ thống phân bố và xử lý song gồm các máy tính ảo kết nối với nhau và
được cung cấp động cho người dùng như một hoặc nhiều tài nguyên đồng nhất dựa
trên sự thỏa thuận dịch vụ giữa nhà cung cấp và người sử dụng.

Hình 1.3. Hình ảnh Cloud Computing
(Nguồn: Sun Microsystems(2009), Sun Cloud Computing)
Cả hai định nghĩa trên đều định nghĩa Cloud Computing là một hệ phân bố,
cung cấp các dạng tài nguyên ảo dưới dạng dịch vụ một cách linh động theo nhu cầu
của người dùng trên mơi trường internet.

Hình 1.4. Cloud Computing “di cư” các nguồn tài nguyên lên mạng Internet
(Nguồn: Sun Microsystems(2009), Sun Cloud Computing)

24


Theo Viện tiêu chuẩn và công nghệ quốc gia Bộ Thương mại Mỹ (NIST):
Điện tốn đám mây là một mơ hình cho phép truy cập mạng thuận tiện, theo nhu
cầu đến một kho tài ngun điện tốn dùng chung, có thể định cấu hình (ví dụ như mạng,
máy chủ, lưu trữ, ứng dụng) có thể được cung cấp và thu hồi một cách nhanh chóng với
yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ.
1.3.2 Tính chất cơ bản
Cloud Computing có năm tính chất nổi bật so với mơ hình truyền thống.
(Nguồn )


Hình 1.5. NIST Visual Model of Cloud Computing Definition
(Nguồn: Sun Microsystems(2009), Sun Cloud Computing)
1.3.2.1 Tự phục vụ theo nhu cầu (On-demand self-service)
Mỗi khi có nhu cầu, người dùng chỉ cần gửi yêu cầu thông qua trang web cung
cấp dịch vụ, hệ thống của nhà cung cấp sẽ đáp ứng yêu cầu của người dùng. Người
dùng có thể tự phục vụ yêu cầu của mình như tăng thời gian sử dụng server, tăng
dung lượng lưu trữ… mà không cần phải tương tác trực tiếp với nhà cung cấp dịch
vụ, mọi nhu cầu về dịch vụ đều được xử lý trên môi trường web (internet).
1.3.2.2 Truy xuất diện rộng (Broad network access)
Cloud Computing cung cấp các dịch vụ thơng qua mơi trường internet. Do
đó, người dùng có kết nối internet là có thể sử dụng dịch vụ. Hơn nữa, Cloud
Computing ở dạng dịch vụ nên khơng địi hỏi khả năng xử lý cao ở phía client, vì vậy

25


×