BỘ 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 PHẦN CƠ SỞ DỮ LIỆU 2
MÃ SỐ: CS16 - 06
¬
Chủ nhiệm đề tài:
ThS. Nghiêm Thị Lịch
Bộ môn:
Tin học
Hà Nội - 2017
2.2.
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 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
2
MỤC LỤC
DANH 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
3
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
DANH MỤC TỪ VIẾT TẮT
1. DANH MỤC TỪ VIẾT TẮT TIẾNG VIỆT
STT Từ viết tắt Cụm từ đầy đủ
CSDL 1 Cơ sở dữ liệu
HQT CSDL 2 Hệ quản trị cơ sở dữ liệu
Hệ thống thông tin kinh tế HTTT KT &TMĐT 3 và thương mại điện tử
4 NSD Người sử dụng
2. DANH MỤC TỪ VIẾT TẮT TIẾNG ANH
Nghĩa Tiếng Việt STT Từ viết tắt Cụm từ đầy đủ
Thực thể liên kết ER 1 Entity Relationship
Dạng chuẩn NF 2 Normal Form
4
Ngôn ngữ truy vấn có cấu 5 SQL Structured Query Language trúc
CHƯƠ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ủa nhâ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ông tin, 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, con ngườ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ều cá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ác nhau, 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ông tin 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ập truyề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à đào tạ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ạo lậ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 để khai thác CSDL…Do vậy nếu chỉ giảng dạy và minh họa theo phương pháp giảng giải truyề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ọc phầ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ài giả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ừu tượ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 khi vừ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ông nghệ 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ỗi cá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ụng thự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ần phả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ữ đó.
5
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
riê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ác phiê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ủa PHP 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ên việc học tập và ứng dụng PHP trở nên rất dễ dàng và nhanh chóng. Đây cũng chính là đặc điểm khiến PHP trở nên khá nổi bật và cũng là nguyên nhân vì sao ngày càng có nhiều người sử dụng PHP để phát triển web. Thêm vào đó, PHP còn hỗ trợ kết nối nhiều hệ quản trị CSDL MySQL, MS SQL, Oracle, Cassandra…cùng với sự bảo mật PHP 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ình giả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ết nhằ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ần CSDL2 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ới SQL.
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ông nghệ 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ập và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áo dụ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ọc phầ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ười họ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ần mề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ủa mì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 qua Internet thông qua công nghệ web, HTML, PHP, AJAX và MySQL. Nhưng điểm hạn chế 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ử.
6
Đố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ừ Flash sang cơ sở dữ liệu MySQL. Nghiên cứu này nhằm mục đích phát triển ứng dụng đa phương tiện đặc biệt trong trò chơi, với lưu trữ dữ liệu trong cơ sở dữ liệu MySQL bằ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
dụ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ệt củ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 đích chí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ác giả Abiola O.B, Adeyemo O.A, Olatunji K.A [3] cho rằng quá trình thúc đẩy người họ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ương thứ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 trong họ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ấp mộ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. Tuy nhiê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ường cũ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êng nhằ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ữa nhữ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ác họ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ên quan đế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ói chung đ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ẩn SCORM 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ền cho 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ốt cho 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, chia nhó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ủa sinh viên qua hình thức trắc nghiệm một cách hiệu quả.
7
Ư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ợi cho 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ên thì 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ệ
thố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
trường.
- Xây dựng website CSDL2 có sử dụng các đoạn mã nhúng (HTML, Java Apllet,
Javascript) cũng như một số kỹ thuật AJAX, XML trong các hàm chức năng.
- Tạo môi trường trao đổi, tra cứu thông tin thuận lợi, hiệu quả về các thao tác khai thác cơ sở dữ liệu cơ bản và nâng cao (tạo các truy vấn, tạo các khung nhìn,…) trong quá trình giảng dạy và học tập giữa giáo viên và sinh viên trong trường nhằm nâng cao chất lượng và hiệu quả trong hoạt động giảng dạy, giảm bớt khó khăn cho sinh viên khi học tập các học phần cơ sở dữ liệu.
- 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ác họ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ản trị 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 khoa HTTT KT & TMĐT, Trường Đại học Thương mại trong các học phần liên quan tới CSDL 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ôn ngữ PHP và MySQL với phiên bản Web server: Apache 2.0.59 - Bộ biên dịch: PHP 5.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.
8
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ôn ngữ PHP và hệ quản trị CSDL MySQL.
1.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ẽ, danh
mụ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ết củ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 ứng dụ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
9
Nội dung chương này sẽ đề cập đến vấn đề phân tích và thiết kế website CSDL2 cũ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.
CHƯƠ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 Đại
họ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ương Mạ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 cao nhất (top level domain name) (vcu.edu.vn là tên miền con của dangky.vcu.edu.vn do trườ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ên củ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ên miề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 Internet
Corporation 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:
10
com : Thương mại (Commercial)
edu : Giáo dục (Education)
: Mạng lưới (Network) net
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ức hai 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ài nguyê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ài nguyê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:
- Tên giao thức (ví dụ: http, ftp).
- Tên miền (ví dụ: vidu.com).
- Chỉ định thêm cổng (tùy chọn).
- Đường dẫn tuyệt đối trên máy phục vụ của tài nguyên (ví dụ: thumuc/trang).
- Các truy vấn (tùy chọn).
Cụ thể hơn:
Trong đó GT là giao thức, MPV là máy phục vụ, C là cổng, ĐD là đường dẫn,
TV là câu truy vấn.
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
11
học Thương Mại: http://dangky.vcu.edu.vn/HuongDan/Huongdan.htm
2.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ơi nà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à Mbps hay 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ủa tí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ệc cà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 web cù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.
- Commited bandwith (băng thông được cam kết)
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 trong hợ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ều gói băng thông đã lựa chọn.
- Shared bandwith (băng thông được chia sẻ)
Đâ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ằm giả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.
- Delicated bandwith (băng thông riê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ùng khô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ói bă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ất thì 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âm chiế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ăng thô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ế
12
- Băng thông trong nước
Là 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.
- Băng thông quốc tế
Là băng thông được sử dụng để trao đổi giữa 2 giữa các máy chủ ở nhiều quốc gia 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ữa những trang máy chủ ở nhiều quốc gia, Đấy cũng là lý do vì sao mỗi khi đứt cap những trang web trong nức chúng ta vẫn truy cập được bình thường còn những trang web 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 ứng dụ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ửi phản hồi đến máy khách những trang web thông qua môi trường mạng Internet qua giao 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ần mềm web server khác nhau như: Apache, Nginx, LiteSpeed, IIS,…
Một số Webserver thông dụng nhất hiện nay:
Bảng 1: Một số Webserver thông dụng
Tên webserver Tỉ lệ sử dụng
Apache 55.2%
Nginx 27.1%
Microsoft – IIS 12.3%
LiteSpeed 2.3%
Google Server 1.4%
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át hà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ên cá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,
13
FCGI, SCGI, WCGI, SSI, ISAPI, HTTPS, Ipv6, …
Cà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:
#/etc/init.d/httpd stop
#/etc/init.d/httpd start
#/etc/init.d/httpd restart
Tùy chọn cấu hình của một số thông tin cơ bản
- Chỉ định tên máy tính của server: Cấu trúc: ServerName
Ví dụ: ServerName www.serverlinux.vn
- Địa chỉ Email của người quản trị: Cấu trúc: ServerAdmin <Địa chỉ email>.
Ví dụ: ServerAdmin root@lhu.edu.vn
- Quy định cách nạp chương trình: Cấu trúc: ServerType
Trong đó: inetd: chạy từ hệ thống, standalone: chạy từ các init level
Ví dụ: ServerType standalone
- Định webRoot: Chỉ định DocumentRoot. Cấu trúc DocumentRoot <Đường dẫn
thư mục>
- Vị trí cài đặt website: Cấu trúc ServerRoot
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í 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 sách các tập tin> Ví dụ: Directoryindex index.html index.php index.htm 14 - UserDir cho phép các user trong hệ thống được phép tạo homepage của mình
trên server. Trong home directory của user tạo thư mục www; Đổi người sở hữu và 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. Ví dụ: UserDir www Order deny, allow Allow from all Directory > 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ều
phiê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
ưa chuộng. PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua HQT CSDL nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP). - Apache là một phần mềm web server có nhiệm vụ tiếp nhận yêu cầu từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt. - 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ác
webserver. Thông thường các phiên bản được sử dụng nhiều nhất là RedHat Enterprise
Linux, 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. 15 Hình 2: Cách thức hoạt động của PHP 2.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ên
nhiề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ên
internet. 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ều
hà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ện
nay. MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm
nơ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 # mysql_secure_installation 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: 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ỏi
và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át
triể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. 16 Đâ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ập
trì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. Hình 3: Công cụ thiết kế web Dreamweaver PHPdesigner 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ư: xem
trướ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 17 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ững
ngườ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ài
plug-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ụng
của được dễ dàng hơn để xây dựng. Có Java , javascript , PHP plugins, cũng như một
plugin cho các mobile developers. Hình 5: Công cụ web Eclipse 2.3.2. Các gói tích hợp Gói AppServ AppServ là một gói đầy đủ tính năng của Apache, MySQL, PHP, phpMyAdmin.
Được lấy ý tưởng của Phanupong Panyadee (người sáng lập trang AppServ – tại Thái
Lan) sau khi thấy việc phức tạp của việc quản trị từng phần mềm làm cho mọi người
chóng mặt. Trong một gói Appserv bao gồm: Apache, PHP, MySQL, PhpMyAdmin. Mục tiêu của AppServ sau khi cài đặt là thiết lập máy chủ web, máy chủ cơ sở dữ
liệu. AppServ chạy tốt nhất trên hệ điều hành Linux/Unix do hệ điều hành Windows là
không đủ tốt cho tải nặng server. Windows web hoặc cơ sở dữ liệu hệ điều hành kiến
trúc sử dụng bộ nhớ nhiều hơn là hệ điều hành Linux/Unix. Tuy nhiên để làm việc
bình thường không cần tốc độ quá cao vẫn có thể cài nó trên Windows. Cài đặt AppServ lên localhost - Vào trang chủ của AppServ để download AppServ: 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 18 o HTTP Port: thông số này được mặc định là 80 - Đặt cấu hình MySQL: o Root password: Đặt mật khẩu cho MySQL Database, username được mặc định là root. o Character Sets: Ngôn ngữ cho CSDL, nên chọn UTF-8 Unicode để có thể đánh được tiếng Việt với Unikey. Mộ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 Apache
chư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
động xong 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ại Apache ta cũng có thể sử dụng phương pháp này. Gói Wamp 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ủa chươ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
Desktop hoặ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 Wamp Server trên khay hệ thống nằm ở góc dưới, bên phải màn hình. 19 Cách sử dụng chương trình Wamp Server - 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ểu
tượ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 phpMyAdmin: Truy cập vào phần quản lý CSDL. o www directory: Truy cập vào thư mục web gốc, mặc định là thư mục www
nằ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à ứng dụ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 20 port. CHƯƠ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ểu thị 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ủa
NSD, 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 ứng dụ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ôn ngữ định nghĩa dữ liệu (Data Denifition Language - DDL): cho phép
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àng
buộc trên các dữ liệu được lưu trữ trong CSDL) - Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML): cho phép
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ích hợp. - Các kiểm soát, các điều khiển đối với việc truy cập vào CSDL 21 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ái
phé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ố. 3.1.3. Hệ cơ sở dữ liệu Khái niệm: Hệ CSDL là dùng để chỉ một CSDL và môt hệ quản trị CSDL để truy cập vào CSDL đó. Mục đích chính của một hệ CSDL là cung cấp cho người dùng một cách nhìn
trừu tượng về dữ liệu. Điều đó có nghĩa là hệ thống che dấu những chi tiết phức tạp về
cách thức dữ liệu được lưu trữ và bảo trì. Mộ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ệu Như vậy một hệ CSDL cho phép nhiều NSD thao tác lên cùng một CSDL. Các
NSD 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ách
nhì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ết
nối chặt chẽ với máy chủ nhằm mục đích để xây dựng website. Khi một trang Web
muốn dùng PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tin trong
Website đó, kết quả được đưa ra như HTML. Vì quá trình xử lý này diễn ra trên máy
chủ 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ưa chặ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ập trì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ó. 22 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 theo
hướ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ích
cá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ày
PHP cũng cung cấp một số lượng cơ sở dữ liệu khá đồ sộ gồm cả MySQL, mSQL, OPBC 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àn
hả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ống
như 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ác
trang 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ác
lỗ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, đối với PHP chúng ta có nhiều cách để thể hiện. + Cách 1: Cú pháp chính: + 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 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áp
riê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 Dùng mã nguồn mở chạy trên Ưu điểm Cấu hình đơn giản khi Nhược điểm
Chỉ chạy trên ứng dụng PHP Apache hoặc IIS web. Dễ học khi đã biết HTML, C.
Dựa vào XAMP (dễ cấu hình).
Nhiều hệ thống CMS miễn phí chạy Hoạt động trên Linux, có thể trên dùng. Có các bộ công cụ tích
hợp sẵn cả server và
client cùng hệ quản trị
CSDL. IIS – Windows Dùng mã nguồn mở chạy trên Tốc độ hơi chậm 23 Java Apache hoặc IIS với mã nguồn rõ Cấu hình nhiều khi chạy Chạy chậm hơn PHP & ràng, tách biệt với giao diện
HTML. Visual Studio có thể sinh mã, tiết ASP.NET nhưng có thể cải thiện
bằng phần cứng máy tính Dễ học khi đã biết HTML, C +
Dựa vào XAMP + Tomcat plugin kiệm thời gian viết code. Hoạt động trên Linux, có thể trên (dễ cấu hình). Mã nguồn rõ ràng, tách biệt với Không thể chạy trên IIS – Windows! Visual Studio có thể sinh mã, tiết giao diện HTML. Linux ngôn ngữ lập
trình .NET (như
ASP.NET) Nếu không có Visual
Studio thì khó viết
code! kiệm thời gian viết code.
Có thể dùng C#, VB hoặc Managed C++ 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ất
nhiề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 MySQL
khô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: 24 Bảng 3: Một số kiểu dữ liệu cơ bản trong MySQL 3.3.2. Các cú pháp cơ bản - Tạo một CSDL: CREATE DATABASE - Các lệnh thao tác với bảng dữ liệu Lệnh tạo bảng: CREATE TABLE … [ Thêm cột mới vào bảng: ALTER TABLE Mở rộng cột: ALTER TABLE Xóa một cột khỏi bảng: ALTER TABLE Thêm ràng buộc toàn vẹn:
ALTER TABLE CONSTRAINT Xóa một ràng buộc đối với bảng: ALTER TABLE Lệnh xóa bảng: DROP TABLE 25 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ính
phải xác định, MAKHO là khóa chính. CREATE 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 [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. 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 Danh sách các bảng cách nhau bởi dấu phẩy.
Mệnh đề WHERE:
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] KHOHANG: SELECT*
FROM KHOHANG; Ví dụ: Hiển thị thông tin về MANV, TENNV, DIACHI những nhân viên làm 26 việc ở kho có tên “Kho A”. SELECT 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( COUNT( DISTINCT - MAX 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ên
mỗ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ị trung
bì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ập kho, 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 27 HAVING AVG(SOLUONG) >500; Các lệnh truy vấn lồng Cú pháp: Câu truy vấn cha SELECT SELECT Ví dụ: Tìm số phiếu xuất có số lượng hàng xuất trung bình lớn nhất. SELECT SOPX FROM PHIEUXK GROUPBY SOPX HAVING AVG (SOLUONG) >= ALL (SELECT AVG (SOLUONG) FROM PHIEUXK GROUP BY SOPX); 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'); 28 // Tạo câu truy vấn và thực thi $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 mysql_close($conn); - Các hàm cơ bản sử dụng MySQL trong PHP 1. Kết nối CSDL: mysql_connect("hostname","user","pass") 2. Lựa chọn CSDL: mysql_select_db("tên_CSDL") Ví dụ: $conn=mysql_connect("localhost","root","root") or die(" khong the ket noi");
mysql_select_db("demo"); 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(); 29 7. Đóng kết nối CSDL: mysql_close(); 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 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ảng
dạ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 cho giá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ành
viê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âu
lệ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 gia thi, 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ý 30 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ống
mặ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ực
hiện các tác vụ trên website: Quản lý bài viết, cập nhật nội dung về các câu lệnh hay giới thiệu các bài toán mới, các câu lệnh mới. Tổ chức các cuộc thi trên website: đưa đề bài, luật thi, đáp án và xem đánh giá kết quả. Tải nội dung bài giảng, bao gồm các slide, bài tập, tài liệu tham khảo, chương trình mô phỏng, phần mềm tiện ích… Quản lý các chương mục của học phần. Quản lý từ điển thuật ngữ. Quản lý thông tin các cuộc thăm dò dư luận, lấy ý kiến để xây dựng website ngày càng đáp ứng được nhu cầu của người sử dụng. 4.2. Phân tích hệ thống 4.2.1. Biểu đồ phân cấp chức năng 31 Hình 7: Biểu đồ phân cấp chức năng 4.2.2. Biểu đồ luồng dữ liệu - Biểu đồ luồng dữ liệu mức ngữ cảnh Hình 8: Biểu đồ luồng dữ liệu mức ngữ cảnh Biểu đồ luồng dữ liệu mức đỉnh Hình 9: Biểu đồ luồng dữ liệu mức đỉnh Các kho dữ liệu: 32 A. Users: Lưu trữ thông tin của những người sử dụng. B. Chapters: Lưu trữ thông tin các chuyên mục, các chương C. Lessons: Lưu trữ thông tin về các bài viết D. Exams: Lưu trữ thông tin về các cuộc thi E. Glossary: Lưu trữ từ điển thuật ngữ F. Survey: Lưu trữ thông tin các cuộc thăm dò, điều tra. G. Docs: Lưu trữ thông tin về các tài liệu được tải lên website. Biểu đồ luồng dữ liệu mức dưới đỉnh Phân rã chức năng quản lý người sử dụng Hình 10: Biểu đồ luồng dữ liệu mức dưới đỉnh của chức năng QL NSD Phân rã chức năng quản lý chuyên mục 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 Phân rã chức năng quản lý bài viết 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 Phân rã chức năng quản lý cuộc thi 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 Phân rã chức năng quản lý tiện ích 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 4.2.3. Mô hình thực thể liên kết Hình 15: Mô hình thực thể liên kết 4.3. Thiết kế hệ thống 4.3.1. Thiết kế tổng thể Phân chia hệ thống thành các hệ thống con Dựa vào biểu đồ luồng dữ liệu mức đỉnh, hệ thống bao gồm các hệ thống con: - Quản lý người sử dụng - Quản lý chuyên mục 35 - Quản lý bài viết - Quản lý cuộc thi - Quản lý tiện ích - Quản lý diễn đàn Sơ đồ website Hình 16: Sơ đồ website 4.3.2. Thiết kế chi tiết Thiết kế kiểm soát Khách: được phép xem các thông tin có trên website về bài viết, các cuộc thi, các
chuyên mục, tải các tài liệu liên quan đến học phần. Ngoài ra, khách có thể thực hiện
những thao tác, tiện ích tìm kiếm thông tin, tra cứu từ điển, từ điển thuật ngữ liên quan
đến học phần CSDL, kiểm tra mức độ hiểu biết câu lệnh khai thác CSDL của mình
thông qua hình thức test bài, trắc nghiệm hay chơi trò chơi ô chữ. Thành viên có tất cả các quyền mà khách có. Ngoài ra, sau khi đăng ký là thành
viên của website, người sử dụng có thể xem danh sách các thành viên của website,
thay đổi thông tin cá nhân, có thể viết bài, nêu ý kiến đóng góp cho bài viết hay các
cuộc thi tổ chức trên website. Thành viên cũng có thể sửa, xóa các bài viết do mình
viết ra. 36 Người quản lý được sử dụng hầu hết các chức năng của hệ thống. Người quản lý
có thể là sinh viên hay một thành viên tích cực của website, được cấp lại quyền. Do
vậy, người quản lý có tất cả các quyền mà một thành viên có. Ngoài ra, người quản lý
có quyền thay đổi thông tin cá nhân của các thành viên khác, có quyền thêm, sửa, xóa
chuyên mục hay cuộc thi. Có quyền cập nhật thông tin cho từ điển, các cuộc thăm dò, điều tra trên website. Ngoài ra, người quản lý có thể tải tài liệu liên quan đến học phần
hay phục vụ cho mục đích giảng dạy, học tập liên quan đến học phần CSDL. Thiết kế dữ liệu Hình 17: Mô hình quan hệ sau khi được chuẩn hóa Mô tả chi tiết các quan hệ: Bảng users: Lưu trữ thông tin về những người sử dụng. Field Type Size PK/FK Null Description user_id bigint 20 PK Mã người sử dụng user_name varchar 100 Tên người sử dụng user_pass varchar 125 Mật khẩu user_permit smallint 1 Quyền (Mặc định là 1) user_email varchar 200 Thư điện tử user_birth datetime Ngày sinh 37 user_add varchar 200 Địa chỉ Bảng chapters: Lưu trữ thông tin về các chuyên mục, các chương. Field Type Size PK/FK Null Description chapter_id int 11 PK Mã chương chapter_name varchar 200 Tên chương chapter_pos int 11 Vị trí chương chapter_parent int 11 Chương cha Bảng user_chapter: Tách quan hệ nhiều - nhiều từ quan hệ giữa bảng users và bảng chapters. Field Type Size PK/FK Null Description user_id bigint 20 PK,FK Mã người sử dụng chapter_id Int 11 PK,FK Mã chương Bảng lessons: Lưu trữ thông tin về các bài viết, bài học Field Type Size PK/FK Null Description les_id bigint 20 PK Mã bài học les_head varchar 200 Tiêu đề les_sum text Tóm tắt les_content text Nội dung les_start datetime Thời gian bắt đầu les_end datetime Thời gian kết thúc les_status int 1 Trạng thái (Mặc định là 1) les_file varchar 255 Các tệp đính kèm les_link varchar 255 Liên kết les_img varchar 255 Ảnh mô tả user_id bigint Mã người sử dụng 20 FK 38 chapter_id int Mã chương 11 FK Bảng exams: Lưu trữ thông tin về các cuộc thi Field Type Size PK/FK Null Description exam_id bigint 20 PK Mã cuộc thi exam_name varchar 200 Tên cuộc thi exam_start datetime Thời gian bắt đầu exam_end datetime Thời gian kết thúc exam_rule Thể lệ cuộc thi text exam_ques Đề bài text exam_note Chú ý text exam_status 1 Trạng thái (Mặc định là 1) int user_id bigint 20 FK Mã người sử dụng Bảng glossary: Lưu trữ thông tin các thuật ngữ của học phần CSDL2 Field Type Size PK/FK Null Description term_id bigint 20 PK Mã thuật ngữ varchar 200 Thuật ngữ term text Nghĩa tiếng Anh term_e text Nghĩa tiếng Việt term_v 11 int Nhóm thuật ngữ term_group text Ghi chú term_note Bảng survey: Lưu trữ thông tin các cuộc điều tra, thăm dò ý kiến Field Type Size PK/FK Null Description sur_id bigint 20 PK Mã cuộc thăm dò sur_ques varchar 200 Câu hỏi thăm dò 39 sur_start datetime Thời gian bắt đầu sur_end datetime Thời gian kết thúc Bảng survey_detail: Lưu trữ thông tin chi tiết về các cuộc điều tra, thăm dò ý kiến Field Type Size PK/FK Null Description sur_de_id bigint 20 PK Mã cuộc thăm dò
chi tiết sur_id bigint 200 FK Mã cuộc thăm dò sur_opt varchar 200 Lựa chọn sur_optnum bigint 20 Số người lựa chọn Bảng docs: Lưu trữ thông tin về các tài liệu được tải lên website Field Type Size PK/FK Null Description doc_id bigint 20 PK Mã tài liệu doc_name varchar 200 Tên tài liệu doc_link varchar 200 Liên kết tới tài liệu doc_time timestamp Tải lên lúc nào? doc_type_id int 11 FK Mã loại tài liệu user_id int 20 FK Mã người sử dụng
đã tải tài liệu Bảng doc_types: Lưu trữ thông tin về các loại tài liệu được tải lên website Field Type Size PK/FK Null Description doc_type_id bigint 20 PK Mã loại tài liệu doc_type varchar 200 Loại tài liệu (Bài
giảng, ebooks,.. ) 40 doc_type_desc varchar 200 Mô tả loại tài liệu Thiết kế giao diện Giao diện trang chủ Đối với các khách viếng thăm có thể thực hiện được một số các chức năng như
xem nội dung thông tin về học phần, tải các tài liệu liên quan, thực hiện tra cứu thuật
ngữ, tìm kiếm thông tin, đăng ký làm thành viên,… 41 Giao diện đăng ký thành viên: Giao diện quản lý người sử dụng Hiển thị các thông tin của người sử dụng như mật khẩu, email, ngày sinh và địa chỉ. Ở giao diện này người sử dụng cũng có thể thay đổi các thông tin nếu thấy cần
thiết. 42 Danh sách người sử dụng đã đăng ký trong hệ thống: Với quyền là admin, có thể
xóa hoặc thay đổi một số các thông tin cơ bản của người sử dụng khác và ngược lại,
nếu là thành viên chỉ có thể xem được thông tin về tên truy cập và email của người sử
dụng khác trong hệ thống. Giao diện quản lý chương mục Ở chức năng này, người sử dụng có thể cập nhật nội dung chương (mục) của học
phần như thêm một chương (mục) hay thay đổi vị trí của các mục trong các chương,… Giao diện xem bài viết: kích chọn bài viết chi tiết cần xem 43 Giao diện xem chi tiết một bài viết Giao diện thêm, sửa bài viết Ở giao diện này, người sử dụng có thể thêm mới hoặc sửa bài viết với các thông
tin như tiêu đề bài viết, trạng thái, tóm tắt và nội dung bài viết với các định dạng, chèn
công thức toán, chèn đa phương tiện,… Giao diện tìm kiếm 44 Người sử dụng có thể nhập các thông tin tìm kiếm tại ô tìm kiếm hoặc chọn chức năng tìm kiếm nâng cao: Giao diện tra cứu thuật ngữ Ở chức năng này, người sử dụng có thể tra cứu thuật ngữ giống như giao diện tìm 45 kiếm hoặc theo danh mục chủ điểm trong nội dụng học phần: Giao diện quản lý từ điển Khi chọn chức năng này, người sử dụng có thể xem, bổ sung hoặc tìm kiếm danh 46 mục các thuật ngữ. Khi muốn sửa đổi thông tin về thuật ngữ nào thì chọn thuật ngữ đó và nhấn nút 47 chỉnh sửa. Giao diện chỉnh sửa được mô tả như hình dưới đây: Giao diện tải và upload tài liệu Để upload tài liệu, người dùng cần nhập các thông tin như tên gợi nhớ, loại tài liệu và chọn file cần upload sau đó nhấn nút Tải lên. Nếu trong quá trình tải lên mà loại tài liệu khác với các danh mục loại tài liệu đã 48 có, người dùng có thể bổ sung thêm loại tài liệu bằng cách nhấn nút Thêm loại. Sau khi upload xong ta có thể xem lại và download. Muốn download tài liệu nào thì kích chọn tài liệu đó và chọn lưu trữ tài liệu. 4.4. Mã hóa, cài đặt và thử nghiệm hệ thống Website được xây dựng và phát triển sử dụng: - Web server: Apache 2.0.59 - Bộ biên dịch: PHP 5.1.6 - Hệ quản trị cơ sở dữ liệu: MySQL 5.0.24 PHP là một ngôn ngữ dùng để viết các trang web động, có khả năng hướng đối
tượng (nhất là từ PHP5 trở đi). Bộ biên dịch PHP là một trong những phần mềm mã
nguồn mở được sử dụng rộng rãi hiện nay, có khả năng tương tác mạnh. Do vậy, lựa
chọn PHP và HQT CSDL MySQL là rất phù hợp để phát triển hệ thống website đã
phân tích và thiết kế ở trên. Sau khi mã hóa, cài đặt thành công, quá trình kiểm thử phải diễn ra lâu dài và dần
được sửa đổi hoàn thiện qua quá trình phản ánh lại của người sử dụng. Hiện tại,
website đã được kiểm thử và chạy tương đối ổn định các module quan trọng. - Module quản lý người sử dụng. - Module quản lý chuyên mục. - Module quản lý bài viết: Mỗi bài viết gồm các thông tin: tiêu đề bài viết, tóm
tắt (có thể có hoặc không), nội dung bài viết. Nội dung có thể chứa đa phương tiện (âm
thanh, hình ảnh, flash), chứa các siêu liên kết, liên kết, chứa các bảng biểu, các đoạn
mã nhúng (HTML, Java Apllet, Javascript). Ngoài ra, mỗi bài viết còn có thể chứa các
file tài liệu đính kèm, các liên kết tới những bài viết khác. 49 - Module tìm kiếm - Module quản lý từ điển thuật ngữ: Được tổ chức một cách “mở”. Người sử
dụng có thể bổ sung thuật ngữ mới, nghĩa mới cho các từ đã có, hoặc sửa đổi thông tin
về các thuật ngữ, từ đó tạo nên một “cuốn từ điển mở” đầy đủ nhất về thuật ngữ liên
quan đến học phần CSDL2. - Module test bài: Là một chức năng mới, yêu cầu phải xây dựng tỉ mỉ. Hiện tại,
có 3 hình thức kiểm tra kiến thức trên website có thể thực thi được, đó là: trắc nghiệm,
chạy thử chương trình mẫu có sẵn, chơi trò chơi ô chữ để kiểm tra kiến thức và mức độ
hiểu biết về câu lệnh. 50 - Module tải tài liệu. KẾT LUẬN 1. Các kết quả đạt được so với mục tiêu
Báo cáo đã trình bày một cách tổng quan nhất các kiến thức về CSDL, các câu lệnh tạo lập và khai thác trong CSDL với SQL Server; các kiến thức chung nhất về
PHP và MySQL và trình bày chi tiết các bước xây dựng website của học phần CSDL2.
Website đã thực sự góp phần giải quyết những hạn chế trong học tập và giảng dạy học
phần như: - Tạo ra môi trường trao đổi thuận tiện giữa sinh viên và giáo viên như xem bài
viết, gửi và chỉnh sửa bài viết, tra cứu và cập nhật danh mục các thuật ngữ, nội dung
các chương (nếu đề cương học phần có sự thay đổi). - Cung cấp danh mục các thuật ngữ cơ bản thường xuyên xuất hiện trong các tài liệu CSDL. - Sử dụng một số các kỹ thuật AJAX (Asynchronous JavaScript + XML) của một
số các hàm hệ thống như dangky.php (giao diện chính), process.php (nơi xử lý các yêu
cầu và trả kết quả về dưới dạng XML), js/scripts.js (chứa các mã javascript),
css/styles.css (định nghĩa giao diện) - Giao diện thân thiện, gần gũi với người sử dụng.
2. Những hạn chế của đề tài Hạn chế của báo cáo là chưa trình bày chi tiết các xử lý, thao tác và mô hình dữ
liệu tham chiếu đối với các chức năng quản lý tiện ích của hệ thống như chức năng tìm
kiếm, chức năng quản lý từ điển, quản lý thăm dò, chức năng tải tài liệu. Báo cáo chưa trình bày chi tiết các trường hợp thử nghiệm và kết quả trong các trường hợp dữ liệu nhập đúng hoặc sai. Ngoài ra, chức năng Quản lý cuộc thi, chức năng quản lý diễn đàn của hệ thống chưa được xây dựng hoàn thiện. 3. Vấn đề đặt ra cần tiếp tục nghiên cứu Tiếp tục cải thiện và thu thập ý kiến người sử dụng (thông qua thực tế và chức
năng Quản lý thăm dò dư luận), sửa đổi và bổ sung thêm những chức năng và tiện ích
mới để website ngày càng đáp ứng được nhu cầu của người sử dụng. Một số chức năng đáng được chú ý phát triển thêm là: tổ chức các cuộc thi lập
trình trực tuyến qua website, các cuộc thi về các tạo lập và khai thác CSDL), tích hợp
các trình biên dịch để người dùng có thể trực tiếp chạy các chương trình mô phỏng các
câu lệnh trên website,… 51 Xây dựng, phát triển website như một bản mẫu để có thể tiếp tục xây dựng và
phát triển thêm những website cho các học phần khác phục vụ cho việc dạy và học,
nâng cao tương tác giữa thầy và trò, tạo môi trường trao đổi, giao lưu học hỏi kiến
thức giữa thầy và trò trong khoa, trong trường với những trường đại học khác và
những người quan tâm đến CSDL, đến tin học nói chung. TÀI LIỆU THAM KHẢO 1. Chris Scollo, Deepak Veliath, Harish Rawat, Jesus Castagnetto and Sascha Schumann, Professional PHP Programming, Published by Wrox Press 2. Bill Ballad, Janet Valade and Tricia Ballad, PHP & MySQL Web Development, Published by Wiley Publishing, 2008 3. Elmasri, Navathe, Fundamentals of Database Systems, 6th Edition, 2010
4. Brian Knight et al, Professional SQL Server 2008 Administration, Wrox Press, 2009. 5. David Lane and Hugh E. Williams, Web Database Application with PHP and MySQL, Published by O'Reilly, 2rd edition 2004 6. New e-learning method using databases, Andreea IONESCU, Database Systems 7. Journal vol. III, no. 3/2012.
Flash game with MYSQL database development, Hadi sutopo, Journal of
Theoretical and Applied Information Technology, 2010. 8. Leveraging on E-Learning Platform for Teaching Mathematics in High Schools,
Abiola O.B, Adeyemo O.A, Olatunji K.A, International Journal of Computer
Applications, Volume 126 – No.6, September 2015. 9. Heintman D., (2003): An introduction to open computing, open standards, and
from source, open
http://www.ibm.com/developerworks/rational/library/1303.html 10. Koohang A. & Harman K.(2005): Open Source: A Metaphor for E-Learning , An International, Journal of Emerging Transdiscipline 8: p75-86[14] 11. Linux(n.d.): Linux, MySQL, PHP, Apache, java writeup , TelAxion web site,
supporting open-source and multiplatform software, accessed April, 2007 from
http://www.telaxion.com/technologies.html 12. Linux Web Solutions(2000): Linux Web solutions with Apache, PHP, MySQL.
Technical guide by Compaq Computer solutions, November 2000, p1-28,
accessed April, 2007 from http://fromager.dyndns.org/ebooks/ 13. Machado C. & Thompson K.(2005): The adoption of open sources within higher
education in Europe and A dissemination case study , Turkish Online Journal of
Distance Education, Jan 2005, p34-51. 14. Mazza R & Botturi L.(2007): Monitoring an Online Course with the GISMO
Tool: A Case Study . Journal of Interactive Learning Research. Vol. 18 N. 2
(2007). pp. 251-265. Chesapeake, VA: AACE. ISSN: 1093-023X 15. Merrall, G. (2005): “PHP/MySQP Tutorial”, accessed April, 2007 from
http://home.imf.au.dk/trinh/doc_pdf/PHP%20My%20SQL%20Tutorial.pdf
16. Olorunfemi T. & Oladipo O. F. (2005): Security and Open Source Software: A
Critical Analysis . In the conference proceedings of Information Technology
Capacity Building: The future of Nigeria’s Economic Growth (ICABUILD
2005), p 277-282 52 17. Tong T. W.(2004): Free/Open Source Software Education , International open
source network, An initiative of the UNDP’s Asia-Pacific Development program, April, 2007, from Information
accessed
http://www.iosn.net/education/foss- education-primer/fossPrimerEducation.pdf 18. Volodymyr B. & Wilfried H.(2004): E-Learning: Challenges and Perspectives, Kyiv Taras Shevchenko University, HSU HH. 19. Why PHP(2004): Why PHP and MySQL, accessed April, 2007 from
http://media.wiley.com/product_data/excerpt/67/07645574/0764557467.pdf
20. Nghiên cứu xây dựng hệ thống E-Learning hỗ trợ trong đào tạo theo học chế tín
chỉ, của nhóm Nguyễn Văn Linh, Phan Phương Lan, Tạp chí khoa học Trường
Đại học Cần Thơ, PA.25 – 2013. 21. Một hướng tiếp cận sử dụng mã nguồn mở Moodle hỗ trợ giảng dạy và đánh giá
tại trường Đại học Cần Thơ, Trần Minh Tân, Nguyễn Văn Linh, Trần Thanh
Điện, Tạp chí khoa học Trường Đại học Cần Thơ, PA.31 – 2014. 22. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu lý thuyết và thực hành, Nhà xuất 53 bản giáo dục, 2009. Dreamweaver