Học phần CSDL2 là học phần cung cấp cho sinh viên kiến thức, phương pháp đểxây dựng và khai thác cơ sở dữ liệu trên ngôn ngữ truy vấn có cấu trúc SQL như tạolập CSDL, cập nhật, truy vấn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
-
-BÁO CÁO NGHIÊN CỨU KH&CN CẤP TRƯỜNG
ĐỀ TÀI: NGHIÊN CỨU ỨNG DỤNG PHP VÀ
MYSQL TRONG GIẢNG DẠY VÀ HỌC TẬP HỌC
Trang 2MỤC LỤC
DANH MỤC HÌNH VẼ 3
DANH MỤC BẢNG BIỂU 3
DANH MỤC TỪ VIẾT TẮT 4
CHƯƠNG I TỔNG QUAN NGHIÊN CỨU VỀ ĐỀ TÀI 5
1.1 Tính cấp thiết nghiên cứu của đề tài 5
1.2 Tổng quan về đề tài nghiên cứu 6
1.3 Mục tiêu nghiên cứu 8
1.4 Đối tượng và phạm vi nghiên cứu 8
1.5 Phương pháp nghiên cứu 8
1.6 Kết cấu báo cáo nghiên cứu 9
CHƯƠNG 2: LÝ THUYẾT VỀ CÁC ỨNG DỤNG TRÊN NỀN WEB 10
2.1 Một số khái niệm cơ bản 10
2.1.1 Tên miền 10
2.1.2 Băng thông 12
2.2 Cấu hình và cài đặt các ứng dụng trên nền web 13
2.2.1 Webservers Apache 13
2.2.2 Ngôn ngữ lập trình web PHP 15
2.2.3 Hệ quản trị cơ sở dữ liệu MySQL 16
2.3 Các công cụ hỗ trợ xây dựng ứng dụng web 16
2.3.1 Các bộ Editors 16
2.3.2 Các gói tích hợp 18
CHƯƠNG 3: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU, PHP VÀ MYSQL 21
3.1 Tổng quan về cơ sở dữ liệu 21
3.1.1 Cơ sở dữ liệu 21
3.1.2 Hệ quản trị CSDL 21
3.1.3 Hệ cơ sở dữ liệu 22
3.2 Ngôn ngữ lập trình web PHP 22
3.2.1 Giới thiệu 22
3.2.2 Cấu trúc cơ bản 23
3.3 Hệ quản trị cơ sở dữ liệu MySQL 23
3.3.1 Loại dữ liệu trong MySQL 24
3.3.2 Các cú pháp cơ bản 25
3.3.3 Mối liên hệ giữa PHP và MySQL 28
CHƯƠNG 4: ỨNG DỤNG PHP VÀ MYSQL ĐỂ XÂY DỰNG WEBSITE HỖ TRỢ GIẢNG DẠY VÀ HỌC TẬP HỌC PHẦN CSDL2 30
4.1 Mục tiêu của website 30
4.1.1 Chức năng dành cho khách 30
4.1.2 Chức năng dành cho thành viên 30
4.1.3 Chức năng dành cho người quản lý 30
4.2 Phân tích hệ thống 31
4.2.1 Biểu đồ phân cấp chức năng 31
4.2.2 Biểu đồ luồng dữ liệu 32
4.2.3 Mô hình thực thể liên kết 35
4.3 Thiết kế hệ thống 35
4.3.1 Thiết kế tổng thể 35
4.3.2 Thiết kế chi tiết 36
4.4 Mã hóa, cài đặt và thử nghiệm hệ thống 49
KẾT LUẬN 51
TÀI LIỆU THAM KHẢO 52
Trang 3DANH MỤC HÌNH VẼ
Hình 1: Ví dụ về cấu trúc phân cấp tên miền 10
Hình 2: Cách thức hoạt động của PHP 15
Hình 3: Công cụ thiết kế web Dreamweaver 17
Hình 4: Công cụ web Phpdesigner 17
Hình 5: Công cụ web Eclipse 18
Hình 6: Hệ cơ sở dữ liệu 22
Hình 7: Biểu đồ phân cấp chức năng 31
Hình 8: Biểu đồ luồng dữ liệu mức ngữ cảnh 32
Hình 10: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL NSD 33
Hình 11: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL chuyên mục 33
Hình 12: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL bài viết 34
Hình 13: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL cuộc thi 34
Hình 14: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL tiện ích 35
Hình 17: Mô hình quan hệ sau khi được chuẩn hóa 37
DANH MỤC BẢNG BIỂU Bảng 1: Một số Webserver thông dụng 13
Bảng 2: Một số kiểu dữ liệu cơ bản trong MySQL 24
Trang 4DANH MỤC TỪ VIẾT TẮT
1 DANH MỤC TỪ VIẾT TẮT TIẾNG VIỆT
và thương mại điện tử
trúc
Trang 54
Trang 6CHƯƠNG I TỔNG QUAN NGHIÊN CỨU VỀ ĐỀ TÀI 1.1 Tính cấp thiết nghiên cứu của đề tài
Ngày nay, với sự phát triển nhanh chóng của khoa học kỹ thuật, con người đã đạtđược nhiều thành tựu trên mọi lĩnh vực góp phần không nhỏ cải thiện đời sống củanhân loại Tuy nhiên con người cũng đang phải đối mặt với một khó khăn mới về sốlượng thông tin quá lớn, sự bùng nổ về số lượng dữ liệu, dẫn đến việc chọn lọc thôngtin, tìm kiếm dữ liệu là một vấn đề hết sức khó khăn Để giải quyết vấn đề này, conngười đã sử dụng “cơ sở dữ liệu” để quản lý lưu trữ thông tin, giúp con người quản lý,chọn lọc và tìm kiếm thông tin nhanh nhất có thể Hiện nay, trên thế giới đã có nhiềucác hệ quản trị cơ sở dữ liệu hay các phần mềm lưu trữ, quản lý phân tích dữ liệu khácnhau, và tập trung vào các dữ liệu về đời sống xã hội, kinh tế, chính trị, văn hóa, vàmột số ngành khoa học Vì vậy, các thông tin liên quan đến cơ sở dữ liệu là một điều
vô cùng quan trọng Không những thế, với sự phát triển vượt bậc của công nghệ thôngtin và truyền thông, với nhu cầu ngày càng tăng về thông tin, phương thức học tậptruyền thống và học tập điện tử đã kết hợp với nhau và đang được quan tâm phát triển.Hình thức E–learning đã và đang được quan tâm, chú ý tại nhiều cơ sở giáo dục và đàotạo
Học phần CSDL2 là học phần cung cấp cho sinh viên kiến thức, phương pháp đểxây dựng và khai thác cơ sở dữ liệu trên ngôn ngữ truy vấn có cấu trúc SQL như tạolập CSDL, cập nhật, truy vấn CSDL và một số các thao tác lập trình cơ bản để khaithác CSDL…Do vậy nếu chỉ giảng dạy và minh họa theo phương pháp giảng giảitruyền thống mà không kết hợp với hệ thống demo thì sinh viên rất khó hình dungđược thực tế các câu lệnh được thực thi và kết quả hiển thị như thế nào
Xét tình hình thực tế hiện nay, trong trường Đại học Thương mại, đối với họcphần CSDL2 cũng như đối với một số học phần khác, giáo viên giảng dạy đã có bàigiảng điện tử, tài liệu học tập cho sinh viên nhưng mới dừng ở việc sử dụng khi lên lớp
và trao đổi với sinh viên và đưa lên mạng thông qua Email và trang Web cá nhân.Song việc trao đổi giữa giáo viên và sinh viên, sinh viên với sinh viên còn hạn chế,không đồng bộ thống nhất tập trung Mặt khác, học phần CSDL2 là một học phần trừutượng, đặc biệt với đối tượng sinh viên chuyên ngành Quản trị hệ thống thông tin khivừa phải kết hợp các kiến thức kinh tế và các kiến thức về lĩnh vực chuyên về côngnghệ thông tin Ngoài ra danh mục từ điển các thuật ngữ chuyên ngành hầu như chưa
có, sinh viên chỉ có thể tra cứu thông qua từ điển tiếng anh thông thường nên với mỗicách tra cứu khác nhau có thể cùng một thuật ngữ nhưng có thể nhiều sinh viên sẽ tra
ra nhiều nghĩa khác nhau nên nghĩa không thống nhất, tập trung Do vậy tính ứng dụngthực tế của học phần cần được minh họa cụ thể trong mỗi thao tác của câu lệnh và cầnphải có một danh mục thuật ngữ chuẩn để dùng chung hoặc sinh viên có thể đưa ra các
ý hiểu của mình về thuật ngữ đó, sau đó hệ thống sẽ tổng hợp lại và đưa ra các kiến thức chung nhất về thuật ngữ đó
Hiện nay có rất nhiều ngôn ngữ lập trình thực hiện các nhiệm vụ cụ thể và độc đáo khác nhau Mỗi ngôn ngữ lập trình đều có một bộ thiết lập các từ khóa và cú pháp
Trang 7riêng biệt để tổ chức các chương trình lệnh Trong đó PHP là một sản phẩm mã nguồn
mở miễn phí có thể được cài đặt trên hầu hết các Web Server thông dụng hiện nay nhưApache, IIS…Việc cập nhật các bản vá lỗi phiên bản hiện tại cũng như thử nghiệm cácphiên bản mới khiến PHP rất linh hoạt trong việc hoàn thiện Ngoài ra thư viện củaPHP rất phong phú và đa dạng từ một đoạn code đến một chương trình hoàn chỉnh nênviệc học tập và ứng dụng PHP trở nên rất dễ dàng và nhanh chóng Đây cũng chính làđặc điểm khiến PHP trở nên khá nổi bật và cũng là nguyên nhân vì sao ngày càng cónhiều người sử dụng PHP để phát triển web Thêm vào đó, PHP còn hỗ trợ kết nốinhiều hệ quản trị CSDL MySQL, MS SQL, Oracle, Cassandra…cùng với sự bảo mậtPHP khá là an toàn
Từ tình hình thực tế và nhu cầu đó, việc nghiên cứu và ứng dụng một mô hìnhgiảng dạy hợp lý như xây dựng website tương tác cho học phần CSDL2 là rất cần thiếtnhằm hỗ trợ việc học tập cho sinh viên học các học phần nói chung và học phầnCSDL2 nói riêng để đạt hiệu quả tốt nhất Mô hình cần đảm bảo sự đồng bộ trong quátrình tương tác giữa giáo viên – giáo viên, giáo viên – sinh viên, sinh viên – sinh viên,cung cấp một cách nhìn trực quan khi thực hiện các thao tác khi khai thác CSDL vớiSQL
1.2 Tổng quan về đề tài nghiên cứu
Trước sự phát triển như vũ bão của công nghệ thông tin và truyền thông, côngnghệ thông tin ngày càng khẳng định vị trí, vai trò quan trọng của mình Nó thâm nhậpvào tất cả lĩnh vực của đời sống, từ chính trị, kinh tế, khoa học kĩ thuật, đến y tế, giáodục, nhu cầu vui chơi, giải trí của con người, … và có những ảnh hưởng nhất định.Hiện nay, ở nhiều nước trên thế giới môi trường học đường, nhà trường đã vàđang sử dụng công nghệ thông tin như một phương tiện để nâng cao hiệu quả dạy vàhọc Các website của trường, khoa, tổ bộ môn hay các phần mềm mô phỏng các họcphần đã tạo ra môi trường trao đổi tri thức cực kỳ thuận tiện và hiệu quả Người dạy vàngười học đồng thời có thể tiết kiệm thời gian, công sức lẫn tiền của; ngoài ra ngườihọc lại có thể học tập một cách chủ động, tích cực, học mọi nơi, mọi lúc
Nghiên cứu của Andreea Ionescu [1] đã trình bày một phương pháp học tập điện
tử mới sử dụng cơ sở dữ liệu và hệ thống CNTT tích hợp bao gồm máy chủ với phầnmềm chuyên dụng dựa trên ngôn ngữ PHP, AJAX và hệ quản trị CSDL MySQL Hệthống có ưu điểm là cho phép để sinh viên phát triển lịch trình kế hoạch học tập củamình và sắp xếp thời gian rảnh rỗi của họ để họ có thể học từ bất cứ nơi nào thông quaInternet thông qua công nghệ web, HTML, PHP, AJAX và MySQL Nhưng điểm hạnchế của nghiên cứu là không giới thiệu chi tiết PHP và MySQL mà chỉ coi đây là bộcông cụ phục vụ cho quá trình học tập điện tử
Đối với học phần đặc thù về công nghệ thông tin là công nghệ đa phương tiện,Hadi sutopo [2] giải pháp là tạo ra một kịch bản PHP để truyền giá trị biến từ Flashsang cơ sở dữ liệu MySQL Nghiên cứu này nhằm mục đích phát triển ứng dụng đaphương tiện đặc biệt trong trò chơi, với lưu trữ dữ liệu trong cơ sở dữ liệu MySQLbằng cách giáo viên đưa ra các tài liệu học tập, sinh viên nghiên cứu và phát triển ứng
Trang 8dụng từ các tài liệu học tập đã cho Tuy nhiên nghiên cứu chưa đưa ra những ưu việtcủa PHP và MySQL trong việc nâng cao chất lượng giảng dạy và học tập mà mục đíchchính là chỉ sử dụng công nghệ này vào việc phát triển các ứng dụng đa phương tiện.Ngoài việc ứng dụng trong các học phần thiên về CNTT, thì PHP và MySQL cònđược ứng dụng trong các học phần khác như Toán học Theo nghiên cứu của nhóm tácgiả Abiola O.B, Adeyemo O.A, Olatunji K.A [3] cho rằng quá trình thúc đẩy ngườihọc học toán học là một điều đặc biệt khó khăn đặc biệt khi chỉ giảng dạy theo phươngthức truyền thống Nghiên cứu đã vận dụng các phương pháp giảng dạy tích cực và có
sử dụng thành công công nghệ PHP và MySQL để tác động tích cực học sinh tronghọc tập của toán học trong trường phổ thông Ưu điểm của nghiên cứu là đã cung cấpmột nền tảng thân thiện với người sử dụng mà có thể được truy cập bởi cả học sinh vàgiáo viên; học sinh có thể tự chọn nội dung kiến thức và tiến độ học phù hợp Tuynhiên nghiên cứu cũng có hạn chế đó là chỉ áp dụng trong lĩnh vực toán học mà khôngđưa ra một mô hình dùng chung cho các môn khác
Hiện tại, trường Đại học Thương Mại và khoa HTTT KT & TMĐT của trườngcũng như một số trường đại học khác trên cả nước đã xây dựng những website riêngnhằm quảng bá, giới thiệu chương trình đào tạo cũng như tạo ra môi trường trao đổi,học tập, nghiên cứu thuận tiện cho thầy và trò trong nhà trường, trong khoa và giữanhững người quan tâm đến tri thức tin học nói chung Tuy nhiên, đối với một số cáchọc phần liên quan tới CNTT có các đặc thù riêng có rất ít (hoặc có trường không có)các ứng dụng mô phỏng cách thức tổ chức dữ liệu cũng như truy vấn thông tin liênquan đến nội dung học phần và đặc biệt là việc vận dụng PHP và MySQL trong hoạtđộng giảng dạy còn nhiều hạn chế
Những điều này cho thấy tình hình nghiên cứu và xây dựng các ứng dụng hỗ trợviệc giảng dạy và học tập nhằm phổ biến nội dung học phần, cung cấp môi trường traođổi thuận tiện giữa thầy và trò và giữa những người quan tâm đến các học phần nóichung đang được quan tâm ở Việt Nam
Theo nhóm nghiên cứu [4] đã trình bày ứng dụng công nghệ Moodle và chuẩnSCORM trong việc hỗ trợ đào tạo theo học chế tín chỉ tại Khoa Công nghệ thông tin
và truyền thông, Đại học Cần Thơ như đã xây dựng được các công cụ tích hợp vào nềncho hệ thống E-learning như đề xuất cấu trúc bài giảng điện tử và ma trận kiến thứcđáp ứng yêu cầu…
Nhóm nghiên cứu [5] sử dụng Moodle giúp giải quyết các vấn đề sau: hỗ trợ tốtcho giảng viên làm công cụ thiết lập linh động các hoạt động như diễn đàn, chat, chianhóm hoạt động, trao đổi, làm bài tập lớn,… đặc biệt là đánh giá kết quả học tập củasinh viên qua hình thức trắc nghiệm một cách hiệu quả
Ưu điểm của các nghiên cứu là đã tạo ra một trang web học điện thử thuận lợicho cả người học, người dạy và nhà quản lý Tuy nhiên hạn chế của các nghiên cứu làkhi sử dụng công nghệ Moodle thì các bài giảng hoặc bài kiểm tra, …cần được đưa lênthì tất cả các nguồn đó phải được đóng gói theo một chuẩn nhất định, nếu không hệ
Trang 9thống sẽ không đưa lên được và website bị hạn chế do giao diện chỉ được lựa chọn theo tiêu chuẩn của Moodle.
1.3 Mục tiêu nghiên cứu
Về mục tiêu nghiên cứu của đề tài, đề tài sử dụng ngôn ngữ PHP và hệ quản trịCSDL MySQL để xây dựng website cho học phần CSDL2 với các mục đích chính:
- Phổ biến nội dung của học phần CSDL2 theo chương trình giảng dạy của
- Làm tài liệu tham khảo cho giáo viên và sinh viên khi giảng dạy và học tập cáchọc phần liên quan đến CSDL và thiết kế web, phù hợp với đặc thù chuyên ngành Quảntrị hệ thống thông tin
Sản phầm có thể được sử dụng như một hệ thống demo ví dụ cho sinh viên khoaHTTT KT & TMĐT, Trường Đại học Thương mại trong các học phần liên quan tớiCSDL như CSDL1, CSDL2, quản trị CSDL
1.4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: các kiến thức về CSDL, ngôn ngữ PHP và hệ quản trịCSDL MySQL để xây dựng website CSDL2 và thực hiện một số các truy vấn trong cơ
sở dữ liệu như truy vấn trên quan hệ, tạo các khung nhìn,…
Về không gian và thời gian nghiên cứu là công cụ xây dựng website bằng ngônngữ PHP và MySQL với phiên bản Web server: Apache 2.0.59 - Bộ biên dịch: PHP5.1.6 - Hệ quản trị cơ sở dữ liệu: MySQL 5.0.24
1.5 Phương pháp nghiên cứu
Đề tài đã sử dụng phương pháp nghiên cứu tài liệu (học phần CSDL2) nhằm đưa
ra một số các kiến thức tổng quan khi khai thác cơ sở dữ liệu trên một hệ quản trị cơ sở
dữ liệu cụ thể
Phương pháp thu thập dữ liệu: sử dụng phương pháp thống kê, so sánh nhằm nêu
ra được những sự khác biệt giữa vấn đề khai thác cơ sở dữ liệu trên các hệ quản trịCSDL thông thường và khai thác CSDL trên nền web
Mặt khác, đề tài cũng kết hợp nghiên cứu giữa lý thuyết và thực nghiệm để có thểphân tích một số các ví dụ minh họa giữa các thao tác khi khai thác CSDL trên ngônngữ PHP và hệ quản trị CSDL MySQL
Trang 101.6 Kết cấu báo cáo nghiên cứu
Về nội dung và bố cục, ngoài các phần như: mục lục, danh mục hình vẽ, danhmục từ viết tắt, kết luận và tài liệu tham khảo, báo cáo được trình bày gồm 4 chương:
Chương 1 Tổng quan nghiên cứu về đề tài
Chương này sẽ trình bày sơ lược về tổng quan đề tài nghiên cứu: tính cấp thiếtcủa đề tài, tình hình nghiên cứu về đề tài ở trong và ngoài nước, mục tiêu nghiên cứu,đối tượng và phạm vi nghiên cứu, và các phương pháp nghiên cứu khi tìm hiểu về vấn
đề ứng dụng PHP và MySQL trong giảng dạy và học tập học phần CSDL2
Chương 2: Lý thuyết về các ứng dụng trên nền web
Nội dung chương này sẽ trình bày một cách tổng quan nhất về các cấu hình vàcài đặt các ứng dụng trên web từ đó giới thiệu một số các công cụ hỗ trợ xây dựng ứngdụng web
Chương 3: Tổng quan về cơ sở dữ liệu, PHP&MYSQL
Trong chương này sẽ giới thiệu các kiến thức tổng quan nhất về CSDL, ngôn ngữlập trình web PHP và hệ quản trị cơ sở dữ liệu MYSQL
Chương 4: Ứng dụng PHP và MySQL để xây dựng website hỗ trợ giảng dạy và học tập học phần csdl2
Nội dung chương này sẽ đề cập đến vấn đề phân tích và thiết kế website CSDL2cũng như giới thiệu cách mã hóa, cài đặt và thử nghiệm hệ thống trên ngôn ngữ PHP
và hệ quản trị CSDL MySQL và giải thích rõ tính ứng dụng trong hỗ trợ giảng dạy vàhọc tập học phần CSDL2 thông qua chi tiết các chức năng ứng với các giao diện cụ thểtrên nền website CSDL2 được xây dựng
Trang 11CHƯƠNG 2: LÝ THUYẾT VỀ CÁC ỨNG DỤNG TRÊN NỀN WEB
2.1 Một số khái niệm cơ bản
2.1.1 Tên miền
Tên miền bao gồm nhiều thành phần cấu tạo nên, cách nhau bởi dấu chấm (.).Thông thường một địa chỉ tên miền sẽ gồm các thành phần sau:
tên.tên_miền_cấp n.tên_miền_cấp n-1 .tên miền cấp 1.
Ví dụ: dangky.vcu.edu.vn là trang web đăng ký tín chỉ của sinh viên trường Đạihọc Thương Mại
Trong đó: dangky là tên do người quản trị trang web của trường Đại học ThươngMại đặt, vcu là tên miền mức 3; edu là mức 2; vn là mức 1 hay còn gọi là mức caonhất (top level domain name) (vcu.edu.vn là tên miền con của dangky.vcu.edu.vn dotrường Đại học Thương Mại đăng ký với VNNIC)
DNS cho phép người sử dụng Internet có thể truy nhập tới một máy tính bằng têncủa nó thay vì bằng địa chỉ IP Việc đánh tên miền được tổ chức theo dạng cây Tênmiền của một host sẽ được đặt bằng cách đi từ nút biểu diễn host lên tận gốc
Hình vẽ sau cho thấy cấu trúc hình cây của dịch vụ tên miền.
Hình 1: Ví dụ về cấu trúc phân cấp tên miền
Theo cấu trúc cây trên, ta liệt kê một số tên miền sau: 360.yahoo.com,mail.yahoo.com, gmail.google.com, vcu.edu.vn
Tên của miền mức cao nhất (Top-Level Domain "TLD") hay còn gọi là cấp 1,bao gồm 2 loại: quốc gia và quốc tế
- Tên của miền quốc tế: Ví dụ như: com, net, org, biz, info,
- Tên của miền quốc gia là hai ký tự (các nước đều có tên miền quốc gia trừ Mỹ):.vn (Việt Nam), au (Australia), cn (Trung Quốc),… ( Là do các quốc gia quản lý Ở Việt Nam là do VNNIC)
- Các tên miền quốc tế và tên miền quốc gia cấp 1 do tổ chức InternetCorporation for Assigned Names and Numbers (ICANN) định nghĩa
Một số giải thích cho tên miền thông dụng:
com : Thương mại (Commercial)
Trang 12edu : Giáo dục (Education)
net : Mạng lưới (Network)
int : Các tổ chức quốc tế (International Organisations)
org : Các tổ chức khác (Other Organisations)
Tên miền cấp 1 của một số nước: vn: Vietnam; uk: United Kingdom; au:Australia ; ca: Canada; jp: Japan; cn: Chinese; hk: Hong Kong; th: Thailand
- Tên miền cấp hai (Second Level): Đối với các quốc gia nói chung tên miền mứchai này do tổ chức quản lý mạng của quốc gia đó định nghĩa, và các lĩnh vực kinh tế, xãhội của mình tương tự như các lĩnh vực dùng chung nêu trên (com, net, edu,…)
Việc đặt tên miền phải tuân thủ các quy tắc quốc tế, và từng quốc gia (nếu là tên miền quốc gia) Tên miền phải tuân thủ các quy tắc chung như sau:
- Tên miền được đặt là duy nhất (ví dụ: không cho phép hai trang web tên là vcu.edu.vn trên INTERNET)
- Mức của một tên miền đối đa là 127, ở Việt Nam hiện thời mức đối đa là 5 Độ dài tên một một mức (áp dụng cho mức 2 trở đi) tối thiểu là 3 ký tự, tối đa là 63 ký tự
- Một tên miền đặt dài không quá 255 ký tự, các ký hiệu dùng để đặt tên là các chữ cái, chữ số thập phân, dấu – và không dùng các ký hiệu đặc biệt để đặt tên miền
Đường dẫn URL
URL viết tắt của Uniform Resource Locator, được dùng để tham chiếu tới tàinguyên trên Internet URL mang lại khả năng siêu liên kết cho các trang mạng Các tàinguyên khác nhau được tham chiếu tới bằng địa chỉ, chính là URL
Một URL gồm có nhiều phần Nó có thể có những thành phần sau đây:
Ví dụ sau đây là URL của tệp văn bản hướng dẫn đăng ký tín chỉ của trường
Đại học Thương Mại: http://dangky.vcu.edu.vn/HuongDan/Huongdan.htm
Trang 132.1.2 Băng thông
Băng thông (Data transfer rate - DTR ) là số lượng dữ liệu được chuyển từ nơinày tới nơi khác trong một thời điểm nhất định, thông thường đơn vị đo sẽ là Mbpshay là Gbps Hay nói cách khác thì thuật ngữ “băng thông” dùng để chỉ lưu lượng củatín hiệu được truyền qua thiết bị truyền dẫn trong một giây là bao nhiêu
Đối với người dùng thì băng thông càng lớn thì khả năng hoàn thành công việccàng nhanh, không phải mất thời gian vì phải chờ đợi Còn đối với doanh nghiệp thìBăng thông càng mạnh giúp cho lượng lớn khách hàng có thể truy cập vào trang webcùng một thời điểm mà không bị tắc nghẽn, tránh được tình trạng mất đi khách hàng
Do vậy, mà băng thông là một trong những yếu tố vô cùng quan trọng đối với tất cảnhững ai khi tìm tiếm nhà cung cấp cho thuê máy chủ, mua gói hosting
Có nhiều cách phân loại băng thông
Phân loại theo dung lượng sử dụng: gồm 3 loai: băng thông được cam kết, băng
thông được chia sẻ và băng thông riêng
Giống như những gói 3G có giới hạn dung lượng trên điện thoại hiện nay, theo
đó mỗi tháng sẽ được cung cấp một dung lượng nhất định đã được thoả thuận tronghợp đồng, khi đã sử dụng hết dung lượng băng thông đã thoả thuận thì buộc phải trảthêm tiền cho lượng băng thông sử dụng tiếp theo đó Các nhà cùng cấp sẽ có nhiềugói băng thông đã lựa chọn
Đây là một gói băng thông sử dụng cho nhiều máy chủ Ví dụ nhà cung cấp đưa
ra gói băng thông chia sẻ là 100 Mbps, thì không thể sử dụng vượt quá con số này vàthông thường thì cũng chỉ có thể sử dụng dưới 100 Mbps và lượng còn lại phải chia sẻcho người khác Các gói băng thông chia sẻ thường gắn với các máy chủ chia sẻ, nhằmgiảm thiểu tình trạng các máy chủ này bị đơ hoặc dừng hoạt động do full băng thông
Đây là gói băng thông có nhiều ưu điểm và được sử dụng nhiều nhất, người dùngkhông phải chia sẻ với ai hết và chỉ trả phí trên khoảng băng thông mình đã sử dụng.Những doanh nghiệp đang sử dụng máy chủ VPS hay Cloud đều đăng ký sử dụng góibăng thông riêng này cho mình, Giờ đây với là gói nhỏ dịch vụ Cloud dù là nhỏ nhấtthì cũng đều được sử dụng cho riêng mình, không cần chia sẻ cũng chẳng sợ ai xâmchiếm, hạn chế được rất nhiều tình trạng tắt nghẽn Việc thay đổi đăng ký gói băngthông riêng cũng rất dễ dạng, có thể thay đổi bất cứ khi nào có nhu cầu
Phân loại theo phạm vi sử dụng: gồm 2 loại: băng thông trong nước và băng
thông quốc tế
Trang 14Là loại băng thông chỉ có thể sử dụng giữa các máy chủ trong nước, tương tác vàtrao đổi qua lại trong phạm vi một quốc gia.
Là băng thông được sử dụng để trao đổi giữa 2 giữa các máy chủ ở nhiều quốcgia khác nhau Phải sử dụng băng thông quốc tế thì mới có thể tương tác qua lại giữanhững trang máy chủ ở nhiều quốc gia, Đấy cũng là lý do vì sao mỗi khi đứt capnhững trang web trong nức chúng ta vẫn truy cập được bình thường còn những trangweb nước ngoài chẳng hạn như facebook sẽ không thể truy cập hoặc là tải rất chậm
2.2 Cấu hình và cài đặt các ứng dụng trên nền web
2.2.1 Webservers Apache
Webserver là máy chủ cài đặt các chương trình (phần mềm) phục vụ các ứngdụng web Webserver có khả năng tiếp nhận yêu cầu từ các trình duyệt web và gửiphản hồi đến máy khách những trang web thông qua môi trường mạng Internet quagiao thức HTTP hoặc các giao thức khác
Mỗi loại Webserver chỉ hỗ trợ một số loại tập tin riêng biệt, ví dụ như IIS hỗ trợmột số tập tin như asp, aspx, html, php,… còn Apache hỗ trợ php Có nhiều phầnmềm web server khác nhau như: Apache, Nginx, LiteSpeed, IIS,…
Một số Webserver thông dụng nhất hiện nay:
Apache HTTP server hay còn được gọi là Apache là phần mềm webserver được
sử dụng rộng rãi nhất thế giới Apache được phát triển và duy trì bởi một cộng đồng
mã nguồn mở dưới sự bảo trợ của Apache Software Foundation Apache được pháthành với giấy phép Apache License, là một phần mềm tự do, miễn phí
Tính đến tháng 6 năm 2013, apache ước tính phục vụ cho 54.2% các trang webđang hoạt động và 53.3% số máy chủ hàng đầu trong các lĩnh vực Apache chạy trêncác hệ điều hành như windows, linux, unix, freeBSD, solaris, …
Apache có các tính năng như chứng thực người dùng, virtual hosting, hỗ trợ CGI,FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6, …
Trang 15Cài đặt:
Download apache từ website chính: http://www/apache.com
Cách cài đặt: Cài đặt tương tự như các phần mềm thông dụng khác
Các tập tin và thư mục cấu hình của Apache:
/etc/httpd/modules: chứa các module của webserver
/var/www/cgi-bin: chứa các script sử dụng cho trang web
/var/www/html/manual: Chứa các trang web
/var/log/httpd: chứa log file của Apache
/etc/httpd/conf/httpd.conf: là tập tin cấu hình chính cho Apache server Khởi động Apache:
- Vị trí cài đặt website: Cấu trúc ServerRoot <Vị trí thư mực cài đặt apache>
Ví dụ: ServerRoot /usr/local/apache (trong linux là /etc/httpd)
- Tập tin để Server ghi nhận các lỗi : Cấu trúc ErroeLog <Vị trí tập tin Log> Ví dụ: ErrorLog /var/log/httpd/error_log
- Các tập tin mặc định khi truy cập trên website Cấu trúc: DirectoryIndex <Danhsách các tập tin>
- UserDir cho phép các user trong hệ thống được phép tạo homepage của mìnhtrên server Trong home directory của user tạo thư mục www; Đổi người sở hữu
Trang 16và nhóm sửa hữu sang cho user; Cấp quyền cho thư mục /home/user; Sau đó cấu hình apache.
2.2.2 Ngôn ngữ lập trình web PHP
PHP (viết tắt của Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản
được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiềuphiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ rãng, tốc độnhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được
- MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress,
Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
- Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho cácwebserver Thông thường các phiên bản được sử dụng nhiều nhất là RedHat EnterpriseLinux, Ubuntu
Cách thức hoạt động của PHP hoạt động
Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để thông dịch dịch trang PHP và trả kết quả cho người dùng như hình bên dưới
Hình 2: Cách thức hoạt động của PHP
Trang 172.2.3 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới vàđược các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL
là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trênnhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ
và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trêninternet MySQL miễn phí hoàn toàn cho nên có thể tải về MySQL từ trang chủ Nó cónhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điềuhành dòng Windows, Linux, Mac OS X, Unix, FreeBSD,…
MySQL là một trong những HQT CSDL quan hệ sử dụng SQL phổ biến hiệnnay MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làmnơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
Cài đặt MySQL: #yum install mysql-server
Cấu hình tự động chạy mysql sau khi reboot máy chủ:
#chkconfig levels 235 mysqld on
Khởi động MySQL: # service mysqld start
Để bảo mật mysql cần tạo mật khẩu cho tài khoản root:
# mysql_secure_installation
Máy tính sẽ hỏi mật khẩu, chỉ việc nhấn Enter để vào, chọn Y [yes] để tạo mật khẩu cho tài khoản root, hãy khai pass bất kỳ, càng bảo mật càng tốt Hệ thống sẽ hỏivài câu hỏi, hãy chọn Yes
2.3 Các công cụ hỗ trợ xây dựng ứng dụng web
2.3.1 Các bộ Editors
Editor đóng vai trò rất quan trọng trong phát triển Editor làm cho dễ dàng vànhanh chóng phát triển ứng dụng.Trình biên dịch linh hoạt cung cấp cho các nhà pháttriển quản lý được nhiều project Có rất nhiều các trình biên dịch sẵn có trong PHP, Cómột số trình biên dịch mã nguồn mở miễn phí và một số phải trả tiền
Đây là phần mềm được dùng rộng rãi cho người mới bắt đầu lập trình hay các lậptrình viên chuyên nghiệp, hỗ trợ kéo thả để thiết kế một trang web hay viết code, bổsung thẻ tag, thanh công cụ mã Nó hỗ trợ các ngôn ngữ như ASP.NET, PHP, ASP,JSP Giao diện của dreamweaver bố trí rất trực quan dễ dàng cho người sử dụng
Trang 18Hình 3: Công cụ thiết kế web Dreamweaver
Công cụ web này có giao diện rất thân thiện và nhiều tính năng hay như: xemtrước trang web trên trình duyệt, code snippets, báo lỗi cú pháp khi lập trình với PHP,autocomplete,…dễ dàng quản lí các project
Hình 4: Công cụ web Phpdesigner
Eclipse là một môi trường phát triển web phức tạp bởi nó hoàn hảo cho nhữngngười mà coding nhiều trên các nền tảng khác nhau với nhiều ngôn ngữ khác nhau Nóđược cấu trúc như plug-in vì vậy nếu cần phải chỉnh sửa một cái gì đó, chỉ cần càiplug-in thích hợp và bắt đầu Eclipse có rất nhiều tính năng để giúp làm cho ứng dụngcủa được dễ dàng hơn để xây dựng Có Java , javascript , PHP plugins, cũng như mộtplugin cho các mobile developers
Trang 19Cài đặt AppServ lên localhost
http://www.appservnetwork.com/
- Sau khi tải về tập tin cài đặt chương trình Wamp Server về máy tính và chạy nó để tiến hành cài đặt
- Cách cài đặt chương trình Wamp Server cũng giống như các chương trình thông
- Đặt cấu hình cho Apache:
o Server Name: Tên của server sẽ chạy Apache, điền localhost
o Admin Email: thông tin của host sẽ gởi tới mail này
o HTTP Port: thông số này được mặc định là 80
Trang 20Một số lưu ý sau khi cài đặt
- Nếu khi đánh localhost mà báo lỗi không tìm thấy trang, thì đó là do Apachechưa được khởi động Vào Start gõ trong ô tìm kiếm “Services” và ấn Enter.
Tìm Apache2.2 chọn Start
- Nếu không thể chạy Apache thì tức là có ứng dụng đang chạy trên HTTP Port
80 (ví dụ Skype), ta nên tắt hết các ứng dụng trước khi chạy Apache, sau khi khởi độngxong thì khởi động lại các ứng dụng khác cũng được Sau này khi cần khởi động lạiApache ta cũng có thể sử dụng phương pháp này
WampServer (viết tắt của từ Windows, Apache, MySQL, PHP (hoặc Python,Perl)), đây là chương trình giúp tạo máy dịch vụ Web (Web Server) trên máy tính cánhân (Localhost) được tích hợp sẵn Apache, PHP, MySQL và các công cụ nhưphpMyAdmin, SQLitemanager Ưu điểm của Wamp Server là đơn giản, dễ sử dụng vàmiễn phí
Tải Wamp Server tại trang web: http://www.wampserver.com/
Có 2 phiên bản dành cho hệ điều hành windows 32 bits và 64 bits
Cách cài đặt chương trình Wamp Server
- Sau khi tải về tập tin cài đặt chương trình Wamp Server và tiến hành cài đặt
- Cài đặt Wamp Server cũng giống như các chương trình thông thường khác
Trong lúc cài đặt, ta có thể thay đổi ổ dĩa và tên của thư mục chứa các tập tin củachương trình Wamp Server nếu muốn
Cách khởi động chương trình Wamp Server
- Sau khi cài đặt xong, khởi động Wamp Server từ biểu tượng trên màn hình Desktophoặc vào Start All Programs WampServer Start Wampserver.
- Chương trình Wamp Server sẽ chạy và khởi động các dịch vụ cần thiết
- Nếu không có lỗi gì xảy ra thì sẽ xuất hiện một biểu tượng của chương trình WampServer trên khay hệ thống nằm ở góc dưới, bên phải màn hình
Cách sử dụng chương trình Wamp Server
Trang 21- Truy cập vào trình đơn của Wamp Server bằng cách nhấn nút trái chuột vào biểutượng của chương trình Wamp Server trên khay hệ thống Trong đó có các mục cần lưu ýsau:
o Localhost: Truy cập vào địa chỉ của máy chủ web
o www directory: Truy cập vào thư mục web gốc, mặc định là thư mục wwwnằm trong thư mục cài đặt Wamp Server Đây chính là thư mục chứa các tập tin và ứngdụng web
- Khi muốn tắt chương trình Wamp Server, nhấn nút phải chuột vào biểu tượng của chương trình Wamp Server trên khay hệ thống và chọn Exit
Một số các lưu ý:
- WampServer sẽ chạy các dịch vụ MySQL và Apache và hiển thị icon màu xanh Mặc định Apache sẽ chạy trên port 80, có thể tắt IIS và Skype nếu cần
Lưu ý:
- Khi biểu tượng WampServer có màu đỏ nghĩa là cả MySQL, Apache không chạy
- Khi biểu tượng WampServer có màu vàng là Apache không chạy do tranh chấp port
Trang 22CHƯƠNG 3: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU, PHP VÀ MYSQL 3.1 Tổng quan về cơ sở dữ liệu
3.1.1 Cơ sở dữ liệu
Một CSDL là một tập hợp các dữ liệu có liên quan với nhau chứa thông tin về một tổ chức nào đó (như một trường đại học, một ngân hàng, một công ty, một nhà máy,…) được lưu trữ trên các thiết bị nhớ thứ cấp (như từ, đĩa từ,…) để đáp ứng nhu cầu khai thác thông tin cảu nhiều NSD với nhiều mục đích khác nhau.
Như vậy, CSDL có các tính chất đặc trưng:
- CSDL phản ánh thông tin về hoạt động của một tổ chức nhất định, nghĩa là biểuthị một phần nào đó của thế giới thực (thế giới nhỏ)
- CSDL phải là tập hợp các thông tin mang tính hệ thống tức là CSDL phản ánh được một cách trung thực sự thay đổi của thế giới nhỏ
- Thông tin lưu trữ trong CSDL được chia sẻ cho nhiều NSD và nhiều ứng dụng khác nhau
Từ đó có thể thấy việc xây dựng và khai thác CSDL liên quan tới một số vấn đềnhư đảm bảo tính nhất quán và toàn vẹn dữ liệu, tính bảo mật và quyền khai thác củaNSD, tính an toàn cho dữ liệu khi xảy ra sự cố
3.1.2 Hệ quản trị CSDL
Hệ quản trị CSDL là một tập hợp các chương trình cho phép người dùng định nghĩa, tạo lập, bảo trì các CSDL và cung cấp các truy cập có điều khiển đến các CSDL này.
Một số các hệ quản trị CSDL điển hình như IMS (Information Management
System ), IDS (Integrated Data Store), Sysbase, Access, Foxpro, SQL – Server,
Oracle,…
Như vậy một hệ quản trị CSDL là phần mềm tương tác với các chương trình ứngdụng cảu người dùng và CSDL Một hệ quản trị CSDL cung cấp các phương tiện sau:
người dùng định nghĩa CSDL (đặc tả các kiểu và các cấu trúc dữ liệu, đặc tả các ràngbuộc trên các dữ liệu được lưu trữ trong CSDL)
người dùng thêm, xóa, cập nhật dữ liệu và truy xuất dữ liệu trong CSDL Một ngôn ngữcho phép người dùng truy cập hoặc thao tác CSDL được tổ chức bởi một mô hình thíchhợp
- Các kiểm soát, các điều khiển đối với việc truy cập vào CSDL
Ví dụ: Hệ thống an ninh ngăn cấm sự cố tình truy cập vào CSDL một cách tráiphép hoặc hệ thống ràng buộc toàn vẹn duy trì tính nhất quán của DL hoặc hệ thốngđiều khiển khôi phục CSDL khi có sự cố
Trang 23Một hệ CSDL là một hệ thống gồm 4 thành phần: CSDL, NSD, Phần mềm hệquản trị CSDL, Phần cứng.
Hình 6: Hệ cơ sở dữ liệuNhư vậy một hệ CSDL cho phép nhiều NSD thao tác lên cùng một CSDL CácNSD khác nhau đòi hỏi một cách nhìn khác nhau về CSDL mà họ cần Mỗi một cáchnhìn là một phần của CSDL hoặc là dữ liệu tổng hợp từ CSDL
3.2 Ngôn ngữ lập trình web PHP
3.2.1 Giới thiệu
PHP (viết tắt của Hypertext Preprocessor), là một ngôn ngữ lập trình được kếtnối chặt chẽ với máy chủ nhằm mục đích để xây dựng website Khi một trang Webmuốn dùng PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tin trongWebsite đó, kết quả được đưa ra như HTML Vì quá trình xử lý này diễn ra trên máychủ nên Website được viết bằng PHP sẽ dễ nhìn hơn ở bất kì hệ điều hành nào
PHP được giới thiệu năm 1994 như một bộ sư tập của một ngôn ngữ lập trình chưachặt chẽ và dựa vào Perl và các dụng cụ của trang chủ Tác giả của cuốn ngôn ngữ lậptrình này, ông R.Lerdoft đã làm cho tất cả phải giật mình bởi đã sáng tạo ra nó
Tới năm 1998 việc công bố phiên bản 3 thì PHP mới chính thức phát triển theohướng tách riêng của mình Giống như C và Perl, PHP là một ngôn ngữ lập trình cócấu trúc và tính năng đa dạng Chính vì những điểm giống nhau này đã khuyến khíchcác nhà thiết kế Web chuyên nghiệp chuyển qua sử dụng PHP Với phiên bản 3 nàyPHP cũng cung cấp một số lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL,
Trang 24OPBC và Oracle Nó cũng có thể làm việc với các hình ảnh các file dữ liệu, FTP,XML và host của các kĩ thuật ứng dụng khác.
Cho đến nay thì PHP đã được công bố tới phiên bản 4 và càng ngày càng hoànhảo và dễ sử dụng Đây vẫn là một dịch vụ hàng đâu miễn phí Tuy nhiên không giốngnhư một số ngôn ngứ khác càng ngày nó càng trở thành một xu hướng vì rất nhiều cáctrang Web hiện nay được làm bằng PHP
PHP là một mã nguồn thông tin mở, bởi vì mã nguồn của PHP sẵn có nên cộngđồng các nhà phát triển Website luôn có ý thức cải tiến nó, nâng cao để khắc phục cáclỗi trong chương trình này
PHP rất ổn định và tương hợp, mới đây PHP đã vận hành khá ổn định trên các
hệ điều hành gồm cả Unix, Windows Đồng thời nó cũng nối với một số máy chủnhư IIS hay Apache
3.2.2 Cấu trúc cơ bản
PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML Chỉ khác, đốivới PHP chúng ta có nhiều cách để thể hiện
+ Cách 1: Cú pháp chính:<?php Mã lệnh PHP ?>
+ Cách 2: Cú pháp ngắn gọn: <? Mã lệnh PHP ?>
+ Cách 3: Cú pháp giống với ASP: <% Mã lệnh PHP %>
+ Cách 4: Cú pháp bắt đầu bằng script
<script language=php> Mã lệnh PHP </script>
3.2.2 So sánh PHP với một số ngôn ngữ lập trình web khác
Hiện nay có rất nhiều ngôn ngữ lập trình thực hiện các nhiệm vụ cụ thể và độcđáo khác nhau Mỗi ngôn ngữ lập trình đều có một bộ thiết lập các từ khóa và cú phápriêng biệt để tổ chức các chương trình lệnh Các ngôn ngữ lập trình khác nhau sẽ cónhững ưu nhược điểm khác nhau Bảng dưới đây so sánh ưu nhược điểm của một sốngôn ngữ lập trình web phổ biên
Bảng 2: So sánh một số các ngôn ngữ lập trình web phổ biến
Trang 25ràng, tách biệt với giao diện Cấu hình nhiều khi chạyHTML.
ASP.NET nhưng có thể cải thiệnbằng phần cứng máy tính
kiệm thời gian viết code
(dễ cấu hình)
IIS – Windows!
ngôn ngữ lập Mã nguồn rõ ràng, tách biệt với Không thể chạy trên
3.3 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với apache,PHP Chính yếu tố phát triển trong cộng đồng mã nguồn mở nên MySQL đã qua rấtnhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn mở MySQL cũng cócùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL Nhưng MySQLkhông bao quát toàn bộ những câu truy vấn cao cấp như SQL Về bản chất MySQL chỉđáp ứng việc truy xuất đơn giản trong quá trình vận hành của website nhưng hầu hết cóthể giải quyết các bài toán trong PHP
3.3.1 Loại dữ liệu trong MySQL
Mỗi hệ quản trị CSDL sử dụng những kiểu dữ liệu nhất định để lưu trữ dữ liệu.Trong yêu cầu thiết kế trường, quan trọng nhất là phải chọn kiểu dữ liệu phù hợp Đểlàm được điều đó ta thường quan tâm đến các mục tiêu sau khi lựa chọn dữ liệu:
- Tiết kiệm không gian lưu trữ
- Biểu diễn được mọi giá trị có thể có thuộc miền giá trị của thuộc tính
- Cải thiện tính toàn vẹn như tổ chức việc nhập dữ liệu, kiểm tra dữ liệu đầu vào,…
- Hỗ trợ các thao tác dữ liệu như thao tác với dữ liệu số nhanh hơn so với dữ liệu kiểu kí tự,…
Hệ quản trị MySQL cung cấp một số kiểu dữ liệu cơ bản sau:
Bảng 3: Một số kiểu dữ liệu cơ bản trong MySQL
Trang 263.3.2 Các cú pháp cơ bản
- Tạo một CSDL: CREATE DATABASE <tên_cơ_sở_dữ_liệu>;
- Các lệnh thao tác với bảng dữ liệu
Lệnh tạo bảng:
<Tên cột> <Kiểu dữ liệu> [<RBTV>],
<Tên cột> <Kiểu dữ liệu> [<RBTV>],
Thêm ràng buộc toàn vẹn:
<Tên RBTV><RBTV>,
…;
Xóa một ràng buộc đối với bảng:
ALTER TABLE <Tên bảng> DROP CONSTRAINT<Tên RBTV>;
Lệnh xóa bảng: DROP TABLE <Tên bảng>;
Ví dụ: Tạo bảng KHOHANG với các thuộc tính MAKHO: varchar(15),TENKHO: varchar(15), DIACHI: varchar(20), với ràng buộc là giá trị các thuộc tínhphải xác định, MAKHO là khóa chính
Trang 27CREATE TABLE KHOHANG( MAKHO VARCHAR(15) PRIMARY
KEY, TENKHO VARCHAR(15) NOT NULL, DIACHI VARCHAR(20) NOT NULL);
Thêm cột SONHANVIEN, kiểu dữ liệu integer(15) vào bảng:
ALTER TABLE KHOHANG ADD COLUMN SONHANVIEN INTEGER(15);
Xóa cột DIACHI: ALTER TABLE KHOHANG DROP COLUMN
DIACHI; Mở rộng cột SONHANVIEN, kiểu dữ liệu integer(50):
ALTER TABLE KHOHANG ALTER COLUMN SONHANVIEN INTEGER(50);
Xóa bảng KHOHANG có MANV là khóa ngoại
ALTER TABLE NHANVIEN DROP CONSTRAINT
FK_MANV DROP TABLE KHOHANG;
Các lệnh truy xuất dữ liệu
Các lệnh truy vấn đơn giản
Cú pháp:
SELECT <Danh sách các cột>
FROM <Danh sách các bảng>
[WHERE <Điều kiện>]
Mệnh đề SELECT: Sử dụng để liệt kê các cột sẽ hiển thị trong kết quả truy vấn.
Chú ý: Ký tự (*) được dùng để ký hiệu tất cả các cột
Mệnh đề FROM: Liệt kê các bảng cần tra cứu để đánh giá kết quả của biểu thức.
Danh sách các bảng cách nhau bởi dấu phẩy
Mệnh đề WHERE:
Dùng để đưa ra các điều kiện chọn, điều kiện chọn là một tân từ chứa các thuộc
tính của các bảng xuất hiện trong mệnh đề FROM.
Mệnh đề WHERE được biểu diễn dưới các dạng sau:
WHERE [NOT] <Biểu thức> <Phép so sánh> <Biểu thức>
WHERE [NOT] <Tên cột> [NOT] LIKE < Xâu ký tự>
WHERE [NOT] <Biểu thức> [NOT] IN ({ Danh sách câu truy vấn})
WHERE [NOT] EXISTS (<Câu truy vấn con>)
WHERE [NOT] <Biểu thức> <Phép so sánh> {SOME, ANY, ALL (Câu truy vấn
con)}
WHERE [NOT] <Biểu thức logic>
WHERE [NOT] <Biểu thức logic> { AND, OR} [NOT] <Biểu thức logic>
Ví dụ: Hiển thị thông tin về MAKHO, TENKHO, DIACHI trong bảngKHOHANG:
SELECT*
FROM KHOHANG;
Ví dụ: Hiển thị thông tin về MANV, TENNV, DIACHI những nhân viên làm việc ở kho có tên “Kho A”
Trang 28SELECT MANV, TENNV, DIACHI FROM NHANVIEN, KHOHANG WHERE TENKHO= “kho A” AND
NHANVIEN.MANV=KHOHANG.MAKHO;
Mệnh đề ORDER BY
Mệnh đề ORDER BY dùng để sắp xếp các kết quả trả về theo thứ tự tăng dần
hoặc giảm dần theo giá trị của các cột nào đó
Ví dụ: Hiển thị thông tin của tất cả các cột trong bảng KHOHANG, sắp xếp theo thứ tự MAKHO giảm dần:
SELECT *
FROM KHOHANG
ORDER BY MAKHO DESC;
Sử dụng hàm gộp và mệnh đề GROUP BY, HAVING
Hàm gộp: COUNT:
COUNT(*): Đếm số dòng.
COUNT(<Tên thuộc tính>) Đếm số giá trị khác NULL của thuộc tính.
COUNT( DISTINCT <Tên thuộc tính>) Đếm số giá trị khác nhau và
khác NULL của thuộc tính.
Mệnh đề GROUP BY:
Dùng để phân chia các dòng dữ liệu trong bảng thành các nhóm dữ liệu, trênmỗi nhóm dữ liệu thực hiện tính toán các giá trị thống kê (tính tổng, tính giá trị trungbình,…)
Mệnh đề HAVING:
Mệnh đề HAVING sử dụng các hàm kết hợp trong mệnh đề SELECT để kiểm
tra một số điều kiện trên nhóm Sau khi gom nhóm thì điều kiện trên mệnh đề
HAVING mới được thực hiện.
Ví dụ: Hiển thị thông tin về số phiếu nhập kho, số lượng trung bình hàng nhậpkho, lọc ra số phiếu nhập có số lượng hàng nhập trung bình lớn hơn 500
SELECT SOPN, AVG(SOLUONG) AS SLNHAPTB
FROM PHIEUNK
GROUP BY SOPN
HAVING AVG(SOLUONG) >500;
Trang 29Truy vấn lồng là các truy vấn có từ hai câu lệnh SELECT trở nên Các câu lệnh
SELECT bên trong nằm sau mệnh đề WHERE hoặc HAVING của câu lệnh SELECT
ngoài
Các lệnh truy vấn lồng được thực hiện theo thứ tự : Thực hiện lệnh SELECT bên trong trước, sau đó sử dụng kết quả của lệnh SELECT bên trong để thực hiện lệnh
SELECT bên ngoài.
Truy vấn lồng được chia làm hai loại: Lồng phân cấp và lồng tổng quan
Lồng phân cấp: Mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha Khi thực hiện, câu
truy vấn con sẽ được thực hiện trước và thực hiện một lần
Lồng tổng quan: Mệnh đề WHERE của truy vấn con tham chiếu đến ít nhất một thuộc tính của các quan hệ trong mệnh đề FROM ở truy vấn cha Khi thực hiện, câu
truy vấn con sẽ được thực hiện nhiều lần, mỗi lần tương ứng với một bộ của truy vấncha
Ví dụ: Tìm số phiếu xuất có số lượng hàng xuất trung bình lớn nhất
3.3.3 Mối liên hệ giữa PHP và MySQL
- PHP có nhiệm vụ kết nối MySQL và yêu cầu MySQL thực thi các câu truy vấn
và trả kết quả về cho PHP để từ đó PHP lấy kết quả để xử lý
Ví dụ:
// Kết nối
$connect = @mysql_pconnect('localhost', 'user', 'password') or die ('Can\'t connect to database');
@mysql_select_db('database', $connect) or die('Can\'t select
database'); // Tạo câu truy vấn và thực thi
Trang 30$result = mysql_query('SELECT * FROM
SinhVien'); // Xử lý kết quả trả về
while ($row = mysql_fetch_assoc($result)){
var_dump($row); } // Ngắt kết nối
3 Thực thi câu lệnh truy vấn: mysql_query("Câu truy vấn");
4 Đếm số dòng dữ liệu trong bảng: mysql_num_rows();
5 Lấy dữ liệu từ bảng đưa vào mảng: mysql_fetch_array();
6 Lấy dữ liệu từ bảng đưa vào biến: mysql_fetch_assoc();
7 Đóng kết nối CSDL: mysql_close();
Trang 31CHƯƠNG 4: ỨNG DỤNG PHP VÀ MYSQL ĐỂ XÂY DỰNG WEBSITE HỖ
TRỢ GIẢNG DẠY VÀ HỌC TẬP HỌC PHẦN CSDL2 4.1 Mục tiêu của website
Website được xây dựng nhằm khắc phục những hạn chế của phương pháp giảngdạy truyền thống đồng thời nâng cao hiệu quả của việc dạy và học học phần CSDL2.Mục tiêu của website là:
- Phổ biến nội dung học phần CSDL2 theo chương trình giảng dạy của khoa HTTTKT&TMĐT, Trường Đại học Thương mại
- Tạo môi trường thuận lợi cho mọi hoạt động liên quan dạy và học học phần chogiáo viên và sinh viên của khoa
- Tạo môi trường trao đổi, tra cứu thông tin thuận lợi, hiệu quả về cách khai thác CSDL cũng như các kiến thức liên quan cho tất cả đối tượng quan tâm
4.1.1 Chức năng dành cho khách
Khách ở đây có thể là giáo viên hoặc sinh viên khi chưa đăng ký làm thànhviên Đây là một website trợ giúp việc học tập, nghiên cứu về học phần CSDL2.Khách có thể thực hiện các tác vụ trên website như:
- Tra cứu các kiến thức cơ bản và nâng cao về CSDL Có thể tra cứu theo tên câulệnh, theo từ khóa, theo tác giả gửi bài, theo thời gian, theo các bài viết liên quan
- Kiểm tra khả năng hiểu câu lệnh và chương trình thông qua hình thức trắc
nghiệm, ô chữ
- Tra cứu thuật ngữ Anh -Việt -Anh về CSDL
- Tải các tài liệu và chương trình liên quan đến học phần
4.1.2 Chức năng dành cho thành viên
Sau khi thực hiện đăng ký, thành viên của website có thể là sinh viên hoặc giáo viên trong trường Thành viên có thể thực hiện các tác vụ trên website, như:
- Tham gia viết các bài viết về các câu lệnh hoặc đóng góp ý kiến, sửa đổi câu lệnh
- Tham gia các cuộc thi trên website: đề xuất đề bài, xem luật thi, đăng ký, tham giathi, nộp bài, xem thông báo kết quả bài thi
- Cập nhật thông tin cho từ điển thuật ngữ của học phần
- Trao đổi về các câu lệnh của các bài toán thông qua diễn đàn
- Thay đổi thông tin cá nhân của bản thân
4.1.3 Chức năng dành cho người quản lý
Thành viên được cấp quyền quản lý sẽ trở thành người quản lý – trong một sốtrường hợp đối tượng này được gọi là giáo viên Ban đầu, khi mới cài đặt, hệ thốngmặc định có một người quản lý, tên đăng nhập là admin Người quản lý có thể thựchiện các tác vụ trên website: