Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thibằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sửdụng phát triển các ứng dụng web đơn giản
Trang 1LỜI CẢM ƠN
Sau khoảng thời gian học tập và rèn luyện tại Trường Đại học Công NghệThông Tin và Truyền Thông, đến nay em đã hoàn thành đồ án tốt nghiệp củamình Em xin bày tỏ lòng biết ơn sâu sắc và gửi lời cảm ơn tới Ban chủ nhiệmkhoa Công nghệ thông tin, các thầy cô giáo bộ môn Công nghệ phần mềm, cácthầy cô đã tận tình giảng dạy, trang bị cho chúng em những vốn kiến thức vàkinh nhiệm quý báu, cung cấp cho chúng em những điều kiện và môi trường họctập tốt nhất
Để hoàn thành tốt được bài báo cáo này, em xin được gửi lời cảm ơn trânthành tới Thầy giáo – Thạc sỹ Lê Nam Huy, người đã luôn theo sát và hướng dẫntạo mọi điều kiện tốt nhất giúp em hoàn thành báo cáo đồ án tốt nghiệp này
Sinh viên Bùi Hồng Long
Trang 2LỜI CAM ĐOAN
Em xin cam đoan nội dung trong bài báo cáo thực tập chuyên nghành nàynày là kết quả của quá trình nghiên cứu tìm hiểu thực sự của cá nhân em, đượcthực hiện dựa trên cơ sở lý thuyết và sự hướng dẫn nhiệt tình chỉ bảo của Thầygiáo – Th.S Lê Nam Huy
Các nội dung lý thuyết, sơ đồ phân tích được nghiên cứu và áp dụng từphần tài liệu tham khảo, chương trình demo do em tự thiết kế
Nếu có sự sao chép, copy từ các bản báo cáo khác em xin tự chịu mọitrách nhiệm trước bộ môn
Sinh viên Bùi Hồng Long
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
LỜI NÓI ĐẦU 5
CHƯƠNG I : CƠ SỞ LÝ THUYẾT 6
1.1 Tìm hiểu về PHP 6
1.1.1 Lịch sử phát triển của PHP 7
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP? 10
1.2 Tìm hiểu về MYSQL 10
1.2.1 Mười lý do bạn chọn MySQL 11
1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL 15
1.2.3 Các hàm thông dụng trong MySQL 17
1.3 PHP và MySQL 17
1.3.1 Các tính năng chính: 18
1.3.2 Các tính năng khác: 19
CHƯƠNG II : PHÂN TÍCH THIẾT KẾ VÀ HỆ THỐNG 21
2.1 Giới thiệu đề tài Website 21
2.2 Phân tích yêu cầu bài toán 21
2.3 Phân tích thiết kế hệ thống 23
2.3.1 Yêu cầu hệ thống 23
2.3.2 Thông tin vào/ ra của hệ thống 24
2.3.3 Đặc tả mô hình UML 28
2.3.4 Sequence Diagram 34
CHƯƠNG III : THIẾT KẾ WEBSITE 40
3.1 Giới thiệu về giao diện chính của website 40
3.1.1 Giao diện ngoài 40
3.1.2 Giao diện trang quản trị: 52
3.2 Cấu trúc của website 55
Trang 43.2.1 Cấu trúc và chức năng của các thư mục 55
3.2.2 Chức năng của các file 56
KẾT LUẬN 61
TÀI LIỆU THAM KHẢO : 62
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 63
Trang 5LỜI NÓI ĐẦU
Ngày nay chúng ta đang được sống trong kỷ nguyên của tin học nhờ sựvượt bậc , sự bùng nổ mạnh mẽ của công nghệ thông tin Công nghệ thông tinkhông chỉ dừng lại ở mục đích phục vụ cho khoa học kỹ thuật mà còn đi sâu vàođời sống , chính trị, kinh tế , xã hội, trở nên thân thiện, gần gũi , mang lại nhiềulợi ích cho con người Đặc biệt trong lĩnh vực thông tin, công nghệ thông tin đãthực sự có nhiều đóng góp quan trọng trong công việc quản lý , quảng cáo cácsản phẩm, hàng hóa của các công ty, xí nghiệp, doanh nghiệp lớn nhỏ Nhữngứng dụng của công nghệ thông tin đã mang lại nhiều lợi ích không nhỏ, đạt hiệuquả kinh tế cho những đơn vị đó Thông tin hiện nay đang trở nên rất phổ biếntrong mọi lĩnh vực và cần thiết cho mỗi gia đình , cá nhân và các trường học.Thông tin giúp các học sinh, sinh viên trở nên hữu ích cho việc học tập Vì vậyvấn đề thông tin trở nên không thể thiếu trong các công ty , xí nghiệp , trườnghọc , gia đình, du lịch và các nơi công cộng Muốn quảng bá hình ảnh và đưa cáchình ảnh của mình cho mọi người biết đến một cách rộng rải và nhanh chóng thìcần phải quảng bá Vì vậy, xây dựng một website du lịch là điều không thể thiếu
Đề tài này là kết quả của quá trình tích lũy và vận dụng những kiến thức mà emtiếp thu và tìm hiểu được trong quá trình học tập Trong quá trình thực hiện đề tàinày em xin cám ơn thầy giáo Lê Nam Huy đã định hướng cho em Em xin gửitới thầy những lời cảm ơn chân thành nhất Mặc dù đã cố gắng trong quá trìnhnghiên cứu làm đề tài nhưng do còn nhiều hạn chế về thời gian và trình độ nên
đề tài của em không tránh khỏi thiếu sót , nhiều vấn đề chưa được giải quyếthoàn chỉnh Vì vậy em rất mong nhận được những ý kiến đóng góp của các thầy
cô và các bạn để đề tài của em được hoàn thiện và phát triển
Em xin chân thành cảm ơn!
Trang 6CHƯƠNG I : CƠ SỞ LÝ THUYẾT 1.1 Tìm hiểu về PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lậptrì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 ứngdụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thíchhợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa chocá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ênPHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thếgiới
Đoạn mã sau minh họa giúp cách viết PHP lồng vào các trang HTML dễdàng như thế nào:
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
Trang 7lõ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áttriển ở quy mô xí nghiệp.
1.1.1 Lịch sử phát triển của PHP
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI doRasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giảncủa các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch củaông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home PageTools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thibằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sửdụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mãnguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nóđồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một
số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có cácbiến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTMLnhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và
có phần thiếu nhất quán
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hútđược hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đãđược ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạngInternet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mãnguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thờigian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó,
nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0
Trang 8do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụngthương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại họcTechnion – Học viện công nghệ Israel Trong một nỗ lực hợp tác và bắt đầu xâydựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đãquyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/
FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộngmạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạtầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tínhnăng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuấtcác mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểmmấu chốt dẫn đến thành công vang dội của PHP 3.0 Các tính năng khác đượcgiới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cúpháp ngôn ngữ nhất quán khác
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏmối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI2.0 gợi nhắc Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của
"PHP: Hypertext Preprocessor"
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàngchục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó Vàothời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web cótrên mạng Internet
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian
9 tháng được cộng đồng kiểm nghiệm
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố,Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi củaPHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, vàcải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được
Trang 9và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứngdụng phức tạp như thế này một cách có hiệu quả
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên củaZeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công,
và lần đầu tiên được giới thiệu vào giữa năm 1999 Họ sáng lập ZendTechnologies tại Ramat Gan – thành phố của khu vực Tel Avis PHP 4.0, dựatrên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chínhthức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời.Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủyếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP,tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vàobảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn vàhàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạngInternet
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiềunghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR,PECL và tài liệu kĩ thuật cho PHP
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm pháttriển PHP tự mãn Cộng đồng đã nhanh chóng giúp họ nhận ra những yếu kémcủa PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lýXML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch
vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết ZendEngine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot đã cho thấy việc pháttriển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng nhữngbài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internetvào khoảng tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đãchính thức được công bố để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầutiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm
Trang 102003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflectionnhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn.Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việcphân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bêntrong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chínhthức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm trathử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầutiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP.Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu
sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ramột hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện cáccâu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có nhữngcải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0cùng những tính năng và cải tiến mới trong SOAP, streams và SPL.\
1.1.2 Tại sao ta sử dụng ngôn ngữ lập trình PHP?
PHP là một ngôn ngữ lập trình Ngôn ngữ này hoạt động cận kề vớiWebserver để thông dịch các yêu cầu từ trên World Wide Web, sau đó nhận cáctrả lời từ Webserver chuyển tải đến trình duyệt Web nhằm đáp ứng các nhu cầuđó
Các đặc điểm nổi bật:
PHP là mã nguồn mở
Tốc độ nhanh, dễ sử dụng
Chạy trên nhiều hệ điều hành
Truy cập bất kỳ loại CSDL nào
Luôn được cải tiến và cập nhật
Tương thích với hầu hết các server đang sử dụng hiện nay như Apache,IIS…
1.2 Tìm hiểu về MYSQL
MySQL là một hệ quản trị cơ sở dữ liệu đa luồng, đa người dùng với ước
Trang 11một phần mềm mã mở dưới giấy phép GNU/GPL Không như những dự án nhưApache, phần mềm được phát triển bởi cộng đồng công cộng, và bản quyền về
mã nguồn thuộc sở hữu bởi nhiều tác giả riêng lẻ MySQL được sở hữu và bảotrợ bởi một công ty, công ty MySQL AB – một công ty Thụy Điển, nơi giữ bảnquyền cho toàn bộ mã nguồn Công ty phát triển và duy trì hệ thống, hỗ trợ bánhàng và dịch vụ MySQL AB được sáng lập bởi David Axmark, Allan Larsson,
và Michael “Monty” Widenius
MySQL là hệ quản trị cơ sở dữ liệu phổ biến nhất hiện nay và được cácnhà phát triển rất ưa chuộng trong việc phát triển các ứng dụng Không chỉ dừnglại các ứng dụng có tầm vừa và nhỏ Mà ngay cả những ứng dụng có tầm cỡ lớncũng đã lựa chọn MySQL, ví dụ như:
MySQL không chỉ là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thếgiới, nó còn trở thành cơ sở dữ liệu được chọn cho thế hệ mới của các ứng dụngxây dựng trên nền Linux, Apache, MySQL, PHP/Perl/Python MySQL chạy trênhơn 20 flatform bao gồm: Linux, Windows, OS/X, HP-UX, AIX, Netware, mangđến cho bạn tính linh hoạt trong việc sử dụng
Trang 12Dù bạn mới làm quen với công nghệ cơ sở dữ liệu hay là một nhà pháttriển giàu kinh nghiệm hoặc là DBA, MySQL sẽ giúp bạn thành công.
Đây là 10 lý do bạn nên chọn MySQL cho ứng dụng của mình:
Tính linh hoạt
Máy chủ cơ sở dữ liệu 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 Linux, Unix, và Windowsđ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 databaseserver
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ủaMySQL MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạochủ/tớ tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùngngay 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ạnhnhấ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ềnvững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ
Trang 13cho 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 đảmtrong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyênmô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 tin 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ácnhư bảng nhớ chính, cây B và chỉ số băm, và bảng lưu trữ đã được cô lại để giảmcá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
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ẽ đượcbảo mật Cuối cùng, tiện ích backup và recovery cung cấp bởi MySQL và cáchã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 ứngdụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các storedprocedure, trigger, function, view, cursor, ANSI-standard SQL, và nhiều nữa
Trang 14Với các ứng dụng nhúng, thư viện plug-in có sẵn để nhúng vào cơ sở dữ liệuMySQL hỗ trợ trong bất kì ứng dụng nào MySQL cũng cung cấp các bộ kết nốinhư: ODBC, JDBC, … để cho phép tất cả các form của ứng dụng sử dụngMySQL 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ứctrung 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 độngcủa nhiều server MySQL từ một máy trạm đơn Nhiều công cụ của các hãngphầ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ànphục vụ chuyên nghiệp, hiện tại, họ tin vào phần mềm có bản quyền để chắcchắ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 lolắng của họ có thể được dẹp bỏ với MySQL, sự bồi thường là có trong mạng lướiMySQL
Tổng chi phí thấp nhất
Bằng cách sử dụng MySQL cho các dự án phát triển mới, các công tyđang thấy rõ việc tiết kiệm chi phí Được hoàn thành thông qua sử dụng server cơ
sở dữ liệu MySQL và kiến trúc scale-out, các doanh nghiệp đã tìm ra cái mà họ
có thể đạt được ở mức ngạc nhiên về khả năng xử lý Thêm vào đó, tính tin cậy
và dễ duy trì của MySQL ở mức trung bình mà người quản trị cơ sở dữ liệu
Trang 151.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
Loại dữ liệu numeric: bao gồm kiểu số nguyên và kiểu số chấm động
- Kiểu dữ liệu số nguyên:
- Kiểu dữ liệu số chấm động:
Trang 16 Loại dữ liệu kiể 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ỗingày tháng hay dạng số
Dữ liệu kiểu số nguyên:
Trang 17 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ức hai là Text hay Blob, Text chophé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
1.2.3 Các hàm thông dụng trong MySQL
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âutruy vấn
- Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câutruy vấn
- Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trương trong câutruy 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 truyvấn
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 chuỗi
- Hàm Char: Hàm này chuyển đổi kiểu mã ASCII từ số nguyên sangdạ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 chuỗi
- Thủ tục LTRIM: Thủ tục loại bỏ khoảng trắng bên trái của chuỗi…
PHP kết hợp với MySQL sẽ tạo ra các ứng dụng chéo nền platform), nghĩa là, bạn có thể phát triển ứng dụng trên Windows, và máy chủ làUnix
Trang 18(cross-1.3.1 Các tính năng chính:
1 Sao lưu: Tạo các bản sao lưu của file và các CSDL, phục hồi file và
CSDL trên máy chủ từ một bản sao lưu, ví dụ từ máy tính cá nhân của ngườidùng
2 Mail:
- Quản lý các tài khoản
- Tạo, xáo các tạo khoản POP3, thay đổi mật khẩu và định mức tàinguyên sử dụng
- Cấu hình tự động hoặc hướng dẫn cấu hình bằng tay cho trình duyệtmail ở máy khách như Microsoft Outlook, Microsoft Outlook Express…
- Hệ thống trả lời tự động, bộ lọc, danh sách từ chối Tạo, xóa hoặc thayđổi
- Bộ lọc Spam Assassin
- Thay đổi bản ghi MX đối với mỗi tên miền
3 Thống kê:
3 chương trình thống kê: : Webalizer Web Stats, AWStats, Analog Stats
- Thống kê theo tên miền phụ
- Xem danh sách 300 khách ghé thăm website gần nhất bao gồm thôngtin: IP, thời gian và nơi truy cập, trình duyệt nào và hệ điều hành khách viếngthăm sử dụng
- Xem băng thông đã sử dụng
- Xem nhật ký lỗi của các ngôn ngữ web phục vụ cho công tác bảo trì vàsửa lỗi
- Xem nhật ký của dịch vụ Apache, có thể tải về
4 FTP:
- Tạo, xóa tài khoản FTP Thay đổi mật khẩu và thư mục có thể truy cậpvới từng tài khoản
- Quản lý truy cập nặc danh (anonymous access)
- Quản lý phiên làm việc FTP
Trang 19- Thay đổi thông điệp hiển thị trên nhật ký FTP.
5 Quản lý cơ sở dữ liệu MySQL & PostgreSQL
- Tạo, xóa cơ sở dữ liệu
- Tạo, xóa tài khoản truy cập cơ sở dữ liệu
- Trình quản lý cơ sở dữ liệu PHPMyAdmin.
1.3.2 Các tính năng khác:
- Đổi mật khẩu tài khoản
- Quản lý các tên miền thêm vào
- Đặt mật khẩu truy cập cho từng thư mục
- Quản lý tên miền phụ bao gồm cả liên kết tên miền phụ tới tên miềnkhác
- Quản lý các trang thông báo lỗi của website như
- 400 (Yêu cầu sai)
- 401 (Yêu cầu xác thực trước khi truy cập)
- 403 (Cấm truy cập)
- 404 (Trang được yêu cầu không tồn tại)
- 500 (Có lỗi xảy ra trên máy chủ khi xử lý yêu cầu)
- Chương trình Java xây dựng sẵn dành cho truy cập bằng SSH
- Liên kết một thư mục tới một tên miền khác
- Quản lý các phần mở rộng của FrontPage
- Lịch trình chạy lệnh Cho phép thiết lập các tác vụ định kỳ
- Quản lý các định nghĩa loại file của Apache
- Chống việc sử dụng các file của tài khoản từ các website khác
- Chống việc truy cập site thông qua các địa chỉ IP
- Cài đặt giao thức SSL
Trang 20- Quản lý khóa PGP.
- Tiện ích hỗ trợ tìm kiếm trên hệ thống
- Tài liệu trực tuyến cũng được cung cấp sẵn
CÁC KỊCH BẢN THIẾT LẬP SẴN:
- Simple CGI Wrapper
- Random HTML – Tự động chèn mã HTML định sẵn vào các file html
- Simple GuestBook
- Advanced GuestBook
- Counter – Bộ đếm khách ghé thăm website và số trang khách xem
- Clock-Java
- Countdown - the timer - Đồng hồ đếm ngược
- CGI mail – Chương trình gửi email viết bằng CGI
- Entropy Banner – hệ thống quản lý banner đơn giản
- FormMail Clone – form liên hệ đơn giản
- Entropy Search – Bộ máy tìm kiếm xây dựng sẵn
- phpBB – Một mã nguồn diễn đàn miễn phí
- Hai mã nguồn bán hàng trực tuyến: Interchange và Agora
Trang 21CHƯƠNG II : PHÂN TÍCH THIẾT KẾ VÀ HỆ THỐNG
Bài toán đặt ra: Thiết kế website du lịch biển Sầm Sơn Thanh Hóa sử
dụng Php và Mysql
2.1 Giới thiệu đề tài Website.
Sau khi nghiên cứu và tìm hiểu một số website trên mạng về thông tin,bằng khả năng thực tế có được em đã xây dựng một trang web du lịch biển màđiểm đến là sầm sơn Thanh Hóa cung cấp thông tin và tour du lịch mới nhất
Qua việc nghiên cứu và tìm hiểu một số website trên mạng như:
http://www.dulichsamsonthanhhoa.com
http://www.samson.vn
http://www.dulichsamson.com.vn
Các website trên có đặc điểm hạn chế như sau
- Không có nhiều chức năng cho người sử dụng
- Giao diện nhìn không hấp dẫn
- Không tìm kiếm được nhiều thông tin
2.2 Phân tích yêu cầu bài toán
Yêu cầu của trang web :
- Nguồn thông tin chương trình du lịch đa dạng
- Giao diện trang web thân thiện, dễ nhìn, dễ sử dụng, màu sắc hài hòa
- Thông tin các tour du lịch được cập nhật và sửa đổi thường xuyên
- Cho phép tìm kiếm
Từ các yêu cầu trên em đưa ra một số yêu cầu chi tiết hơn cho website củamình như sau :
- Hiển thị các danh mục các nhóm tin
- Hiển thị chi tiết các thông tin trong danh mục
- Hiển thị kết quả trong việc tìm kiếm cũng như đăng nhập, đăng ký
- Hiển thị các thông tin
Chức năng User
- Cho phép đăng ký thành viên
- Cho phép sửa đổi
Trang 22- Cho phép đăng ý kiến phản hồi.
Chức năng quản trị
- Quản lý các User: xóa, sửa, nhập thêm User,Admin
- Cập nhật mới các thông tin liên quan, sửa thông tin, xóa thông tin
- Hiển thị thông tin lên nhóm tin, danh mục
Yêu cầu của hệ thống mới
- Hình thức thông tin đa dạng và sống động
- Giao diên thân thiện, dễ nhìn, màu sắc không đối lập
- Cung cấp thông tin và phát triển hoạt động liên tục, không ngừng
- Thông tin tour du lịch hình ảnh được cập nhật và sửa đổi thường xuyên
- Có khả năng cập nhật, sửa, xoá
- Có khả năng tra và tìm kiếm một cách nhanh chóng
- Tương tác người dùng cao
- Dễ thao tác, dễ sử dụng cho người mới làm quen máy tính
- Đảm bảo tính chính xác với nguồn tin
- Đảm bảo tính ổn định khi gặp các sự cố
Các chức năng cụ thể.
Đầu ra: Hiển thị thông tin
- Hiển thị thông tin, thông báo
- Hiển thị các nhóm tin theo danh mục
- Hiển thị thông tin tìm kiếm theo người dùng
Đầu vào: Quản lý thông tin
- Cập nhật thông tin (sửa, xóa, thêm mới)
- Tiếp nhận thông tin từ người dùng
- Xử lý thành viên (thêm, xóa)
Khuôn thông tin:
- Tiêu đề thông tin
- Nội dung
- Hình ảnh
Trang 23Nhập nội dung tin:
- Thiết kế nhập: thông tin được nhập bằng tay Đưa ra thông báo nếu cótin trùng
- Nội dung: chi tiết thông tin sắp đăng tải
- Ảnh minh họa
Update các tin đã đăng tải:
- Cho phép sửa xóa các thông tin hoặc thêm mới các thông tin
Xóa thông tin:
- Xóa theo mục ( rất nhiều các thông tin)
- Xóa theo từng tin
Trang 24Giao diện thân thiện, các chức năng được bố trí thống nhất, khoa học cókhả năng trợ giúp người dùng.
2.3.2 Thông tin vào/ ra của hệ thống
Các thông tin đầu vào:
- Hồ sơ của các thành viên( thông tin cá nhân…)
- Ý kiến đóng góp của người dùng (thắc mắc cần tư vấn, giải đáp…)
Các thông tin đầu ra:
- Đưa ra các thông tin mà người sử dụng quan tâm, tìm kiếm
- Đưa ra các hình ảnh có liên quan đến các chủ đề mà người dùng quantâm
Mô hình UML:
Xác định các tác nhân: Có 3 tác nhân:
- Bạn đọc: Là nhưng người thăm website Bạn đọc có thể xem tin, đăng
ký thành viên, tìm kiếm thông tin
- Thành viên: Là những người thăm website và đã đăng ký trở thành
thành viên Ngoài việc có những chức năng giống như bạn đọc, khi vào website,sau khi đăng nhập, thành viên còn có thể gửi bình luận, đặt tour, gửi tin nhắn đếnquản trị viên
- Người quản trị(admin): Người quản trị website đăng nhập vào hệ
thống nhằm mục đích quản lý thông tin dữ liệu của website, có toàn quyền thêmsửa xóa cơ sở dữ liệu
Xác định các chức năng của tác nhân
Trang 25 Đăng nhập (4)
Gửi tin nhắn tới quản trị viên (5)
Đăng xuất ( Thoát) (8)
Người quản trị:
Xem tin (1)
Tìm kiếm thông tin (2)
Bình luận cho mỗi thông tin (3)
Trang 26o Xem danh sách chuyên mục (7.1)
o Cập nhật thông tin thành viên(8.4)
o Xem danh sách bài viết (9.1)
o Cập nhật thông tin bài viết (9.4)
Trang 27 Quản lý thư viện ảnh (13)
o Danh sách đơn đặt tour (15.1)
o Bỏ duyệt đơn đặt tour (15.3)
Trang 282.3.3 Đặc tả mô hình UML
Trang 31Phần quản lý bài viết
Sơ đồ usecase của quản lý bài viết
Phần quản lý tour du lịch
Sơ đồ usecase của quản lý tour du lịch