Đăng ký Đăng nhập
Trang chủ Báo Cáo Tiểu Luận Thiết Kế WebSite Trường Học...

Tài liệu Báo Cáo Tiểu Luận Thiết Kế WebSite Trường Học

.DOC
50
4408
90

Mô tả:

LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành đến Thầy giáo Huỳnh Tấn Khải, người tận tình hướng dẫn, giúp đỡ chúng em hoàn thành báo cáo tiểu luận này. Xin tri ân tất cả các Thầy Cô, những người dày công dạy dỗ, truyền cho chúng em rất nhiều tri thức quý báu. Cảm ơn tất cả bạn bè của chúng tôi, những người đã sát cánh, chia sẻ những khó khăn của chúng tôi và giúp đỡ chúng tôi rất nhiều trong quá trình thực hiện báo cáo này. Do vốn kiến thức và lượng thời gian có hạn nhóm em không thể tránh khỏi những thiếu sót, rất mong nhận được sự đóng góp ý kiến của Thầy, Cô và các bạn! Sinh viên thực hiện MỞ ĐẦU Ngày nay, khoa học công nghệ đã có những bước phát triển mạnh mẽ cả về chiều rộng lẫn chiều sâu. Máy tính điện tử không chỉ được coi là một thứ phương tiện quý hiếm mà nay đã trở thành một công cụ làm việc, giải trí thông dụng của con người không những ở công sở mà thậm chí còn ở ngay trong gia đình. Với sự bùng nổ của công nghệ thông tin và với vai trò không thể thiếu của ngành khoa học này, các tổ chức và các doanh nghiệp lớn và nhỏ đều tìm mọi biện pháp để xây dựng và củng cố một cách hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị. Hiện nay trên thế giới cũng như ở Việt Nam, các cơ quan, các tổ chức cũng như các trường học đều không ngừng đầu tư vào việc xây dựng và cải thiện các giải pháp cũng như các kênh giao tiếp để cung cấp thông tin nhanh chóng đến người sử dụng nói chung một cách nhanh chóng. Chúng ta cũng dễ dàng nhận ra tầm quan trọng và tính tất yếu của trang thông tin điện tử nói chung và cổng giao tiếp tin tức nói riêng giữa các cơ quan và người dùng. Với bất kỳ thiết bị điện tử có kết nối internet nào, từ điện thoại di động đến máy tính bảng, máy tính cá nhân, người dùng mọi lúc mọi nơi đều có thể truy cập và nắm bắt được các thông tin cần thiết về một cơ quan hay một mục đích nào đó. Điều này hoàn toàn giải quyết được bằng một website đủ mạnh, cơ động (hỗ trợ được nhiều loại thiết bị truy cập) và đầy đủ tính năng. Ở Việt Nam, nhiều trường học cũng đã tiến hành xây dựng website riêng cho từng trường để phổ biến các tin tức của nhà trường đến học sinh và phụ huynh. Tuy nhiên, các trang web này còn nhiều hạn chế như chỉ hỗ trợ hiển thị tốt trên màn hình máy tính (kích thước lớn) chứ chưa hiển thị tốt được trên các loại thiết bị khác nhau, đặc biệt là trên điện thoại di động, loại thiết bị được sử dụng để truy cập mạng internet ngày càng phổ biến hơn cả máy tính. Ngoài ra, các chức năng của trang web còn khá ít, chưa cung cấp đủ các tính năng cần thiết trong việc phổ biến tin tức đến học sinh và phụ huynh như vấn đề quản lý thời khóa biểu, quản lý thi đua giữa các lớp,... Nhằm nghiên cứu và góp phần phát triển một website khắc phục các nhược điểm nêu trên, cụ thể là trang web phải đảm bảo tính năng responsive – nghĩa là trang web cho phép hiển thị tốt trên các loại thiết bị khác nhau với các kích thước màn hình khác nhau, đặc biệt là trên màn hình nhỏ của điện thoại di động, nhóm chúng em đã tìm hiểu và thực hiện đề tài “Thiết kế và xây dựng Website trường THPT Trần Phú – Hiệp Đức”. Trang web cung cấp các chức năng trong việc đưa thông tin đến học sinh và phụ huynh một cách kịp thời và đầy đủ nhất.
TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN -------------o0o------------ ĐỀ TÀI THIẾT KẾ VÀ XÂY DỰNG WEBSITE TRƯỜNG THPT TRẦN PHÚ – HIỆP ĐỨC Giáo viên hướng dẫn: ThS. HUỲNH TẤN KHẢI Sinh viên thực hiện: 1. Nguyễn Hữu Vũ 2. Hồ Thanh Tùng Lớp: DV 16 CTT01 Tam kỳ, tháng 10 năm 2017 LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành đến Thầy giáo Huỳnh Tấn Khải, người tận tình hướng dẫn, giúp đỡ chúng em hoàn thành báo cáo tiểu luận này. Xin tri ân tất cả các Thầy Cô, những người dày công dạy dỗ, truyền cho chúng em rất nhiều tri thức quý báu. Cảm ơn tất cả bạn bè của chúng tôi, những người đã sát cánh, chia sẻ những khó khăn của chúng tôi và giúp đỡ chúng tôi rất nhiều trong quá trình thực hiện báo cáo này. Do vốn kiến thức và lượng thời gian có hạn nhóm em không thể tránh khỏi những thiếu sót, rất mong nhận được sự đóng góp ý kiến của Thầy, Cô và các bạn! Sinh viên thực hiện MỞ ĐẦU Ngày nay, khoa học công nghệ đã có những bước phát triển mạnh mẽ cả về chiều rộng lẫn chiều sâu. Máy tính điện tử không chỉ được coi là một thứ phương tiện quý hiếm mà nay đã trở thành một công cụ làm việc, giải trí thông dụng của con người không những ở công sở mà thậm chí còn ở ngay trong gia đình. Với sự bùng nổ của công nghệ thông tin và với vai trò không thể thiếu của ngành khoa học này, các tổ chức và các doanh nghiệp lớn và nhỏ đều tìm mọi biện pháp để xây dựng và củng cố một cách hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị. Hiện nay trên thế giới cũng như ở Việt Nam, các cơ quan, các tổ chức cũng như các trường học đều không ngừng đầu tư vào việc xây dựng và cải thiện các giải pháp cũng như các kênh giao tiếp để cung cấp thông tin nhanh chóng đến người sử dụng nói chung một cách nhanh chóng. Chúng ta cũng dễ dàng nhận ra tầm quan trọng và tính tất yếu của trang thông tin điện tử nói chung và cổng giao tiếp tin tức nói riêng giữa các cơ quan và người dùng. Với bất kỳ thiết bị điện tử có kết nối internet nào, từ điện thoại di động đến máy tính bảng, máy tính cá nhân, người dùng mọi lúc mọi nơi đều có thể truy cập và nắm bắt được các thông tin cần thiết về một cơ quan hay một mục đích nào đó. Điều này hoàn toàn giải quyết được bằng một website đủ mạnh, cơ động (hỗ trợ được nhiều loại thiết bị truy cập) và đầy đủ tính năng. Ở Việt Nam, nhiều trường học cũng đã tiến hành xây dựng website riêng cho từng trường để phổ biến các tin tức của nhà trường đến học sinh và phụ huynh. Tuy nhiên, các trang web này còn nhiều hạn chế như chỉ hỗ trợ hiển thị tốt trên màn hình máy tính (kích thước lớn) chứ chưa hiển thị tốt được trên các loại thiết bị khác nhau, đặc biệt là trên điện thoại di động, loại thiết bị được sử dụng để truy cập mạng internet ngày càng phổ biến hơn cả máy tính. Ngoài ra, các chức năng của trang web còn khá ít, chưa cung cấp đủ các tính năng cần thiết trong việc phổ biến tin tức đến học sinh và phụ huynh như vấn đề quản lý thời khóa biểu, quản lý thi đua giữa các lớp,... 1 Nhằm nghiên cứu và góp phần phát triển một website khắc phục các nhược điểm nêu trên, cụ thể là trang web phải đảm bảo tính năng responsive – nghĩa là trang web cho phép hiển thị tốt trên các loại thiết bị khác nhau với các kích thước màn hình khác nhau, đặc biệt là trên màn hình nhỏ của điện thoại di động, nhóm chúng em đã tìm hiểu và thực hiện đề tài “Thiết kế và xây dựng Website trường THPT Trần Phú – Hiệp Đức”. Trang web cung cấp các chức năng trong việc đưa thông tin đến học sinh và phụ huynh một cách kịp thời và đầy đủ nhất. 2 TÓM TẮT ĐỀ TÀI Với mức độ phức tạp và quy mô ứng dụng, cộng thêm vấn đề thời gian cho nên đề tài “Thiết kế và xây dựng Website trường THPT Trần Phú – Hiệp Đức” chỉ dừng ở mức tìm hiểu ngôn ngữ lập trình Web PHP & MYSQL, và áp dụng xây dựng ứng dụng thực nghiệm trang Web trường học trên mạng. Website với mục đích cung cấp cho các em học sinh và phụ huynh các thông tin chính xác về thông tin nhà trường ( Lịch học, thời gian biểu, tin tức, hình ảnh, hoạt động, kết quả học tập.v.v.). Các thông tin được cập nhật thường xuyên và nhanh chóng. Vì vậy, rút ngắn được khoảng cách giữa phu huynh học sinh và nhà trường, đưa thông tin nhà trường đến với bậc quý phụ huynh và học sinh một cách nhanh chóng và thuận lợi hơn. Nhằm ứng dụng tin học hóa nói chung và thương mại điện tử nói riêng trong lĩnh vực giáo dục, việc xây dựng một website cung cấp thông tin cho trường học là rất cần thiết trong thời đại ngày nay, khi mà vấn đề cung cấp thông tin và giao tiếp giữa nhà trường và phụ huynh là điều hết sức quan trọng. Vì vậy, đề tài có một số tính mới như sau:  Website cung cấp tính năng Responsive cho phép hiển thị tốt với các loại thiết bị với các kích thước màn hình khác nhau.  Website mở rộng bộ cung cấp nội dung (Content Management System – CMS) NukeViet với việc phát triển thêm các module chức năng như sau: - Module Quản lý Thời khóa biểu - Module Quản lý Xếp hạng thi đua giữa các lớp - Module Quản lý Công văn, Văn bản Mục tiêu của đề tài Nghiên cứu và xây dựng hoàn chỉnh một website tin tức cho trường THPT Trần Phú – Hiệp Đức với các tính năng hiện đại như Responsive và cung cấp các chức năng mở 3 rộng, hỗ trợ cho việc quản lý, trao đổi thông tin giữa nhà trường và phụ huynh, học sinh như Quản lý Thời khóa biểu, Quản lý Xếp hạng, thi đua giữa các lớp, … Đối tượng và phạm vi nghiên cứu  Đối tượng của đề tài: - Mọi người trên toàn quốc có nhu cầu xem thông tin, tin tức của nhà trường. - Các bậc phụ huynh, học sinh có em em học tại trường muốn tìm hiểu thêm thông tin về nhà trường khi cần liên hệ một vấn đề nào đó. - Trao đổi thông tin nội bộ trong nhà trường giữa CB,GV,NV.  Phạm vi nghiên cứu của đề tài: - Tìm hiểu kỹ thuật lập trình ngôn ngữ PHP. - Sử dụng mã nguồn mở NuKeViet. - Hiểu được cách lưu trữ dữ liệu của hệ quản trị cơ sở dữ liệu MySQL. Phương pháp nghiên cứu - Tìm hiểu và nghiên cứu ngôn ngữ lập trình PHP, CSS, HTML… - Khảo sát thực tế hoạt động tính năng của trang web. - Phân tích, thiết kế website và các chức năng sẽ đề ra. - Thực thi ứng dụng. - Thay đổi, bổ sung, khắc phục sự cố và sẽ đưa ra website sử dụng trực tuyến. 4 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT Hiện nay có rất nhiều ngôn ngữ lập trình trên mạng: ASP, FOXWEB, JSP, PHP, … cùng với chúng cũng có rất nhiều hệ quản trị CSDL như: MySQL, DB2, SQL Server, … Trong hệ thống này em chọn ngôn ngữ lập trình PHP và hệ quản trị cơ sở dữ liệu MySQL. 1. GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH PHP 1.1. Giới thiệu PHP được dùng để thay thế cho Hypertext Preprocessor (Bộ tiền xử lý siêu văn bản) là một ngôn ngữ kịch bản nhúng HTML phía server. Phần lớn cú pháp của nó mượn của C, Java, Perl. Ngoài ra, nó cũng có thêm một số đặc trưng riêng. Ngôn ngữ PHP cho phép người pháp triển web động một cách nhanh chóng. Chúng ta hãy xem một ví dụ đơn giản Example Khác với kịch bản CGI được viết trong một số ngôn ngữ khác như Perl hoặc C# thay vào việc một chương trình với nhiều lệnh để xuất html, bạn chỉ cần viết một kịch bản html với một vài mã nhúng để làm một việc gì đó ( trong ví dụ trên là xuất ra câu “Đây là một ví dụ về PHP”). Mã nguồn của PHP được đặt trong một cặp thẻ đặc biệt (‘’). Đặc điểm phân biệt PHP với một số ngôn ngữ khác như Java script là mã của nó được thực hiện phía server. Các đoạn mã PHP sẽ được thực hiện trên server trước khi truyền kết quả cho máy client, do đó người dùng phía client sẽ không thể biết được đoạn mã thật của PHP. Đây cũng là một giải pháp khá hay cho việc bảo mật mã nguồn của PHP. 5 1.1.1. PHP có thể làm gì? Ở mức đơn giản nhất PHP có thể làm được bất cứ điều gì mà một chương trình CGI có thể làm như lấy các form dữ liệu, sinh nội dung các trang động hoặc gửi và nhận các cookie. Có lẽ đặc tính mạnh mẽ nhất và quan trọng nhất của PHP là nó hỗ trợ những CSDL có phạm vi rộng. Việc viết những trang Web có CSDL hết sức đơn giản. Những CSDL được PHP hỗ trợ: Adabas D dBase Empress FilePro Hyperware IBM DB2 Informix Ingres InterBase FrontBase mSQL Direct MS-SQL My SQL ODBC Oracle Ovrimos PostgreSQL Solid Sybase Velocis Unix dbm PHP cũng hỗ trợ việc liên kết với các dịch vụ khác sử dụng giao thức như IMAP, SNMP, NNTP, POP3…thậm chí cả HTTP bạn cũng có thể sử dụng những socket mạng thô với các giao thức khác nhau. 1.1.2. Những nét lịch sử chính của PHP PHP bắt đầu được hình thành vào mùa thu năm 1994 bởi Rasmus Lerdorf. Phiên bản đầu tiên non_released được sử dụng trên mạng chủ của ông để lưu giữ dấu vết những người xem trực tuyến lý lịch của ông. Phiên bản này được sử dụng rộng rãi vào đầu năm 1995 và được biết đến như là công cụ xây dựng trang chủ cá nhân( Personal Home Page Tools). Nó có một bộ phận tích cú pháp khá đơn giản tuy nhiên nó chỉ có thể hiểu một số ít macro đặc biệt. Sau đó được nâng cấp lên cao hơn và có thể hiểu thêm một số các tiện ích dùng chung trên các trang chủ. Bộ phận tích cú pháp được viết lại năm 1995 và được đặt tên là phiên bản 2 PHP/FI. Trong phiên bản này các hàm FI( gọi là hàm thông dịch form-Form Interpreter) được Rasmus viết riêng trong một gói khác để thông dịch các form dữ liệu html. Ông đã tổ hợp các thẻ công cụ xây dựng trang chủ với các hàm FI và thêm một số hỗ trợ mSQL. PHP/FI phát triển một cách kinh ngạc và mọi người bắt đầu đóng góp mã nguồn cho nó. 6 Thật khó có thể đưa ra một sự thống kê chính xác nhưng có thể ước lượng được khoảng 15000 website sử dụng PHP/FI vào cuối năm 1996 trên thế giới. Đến giữa năm 1997 con số này đã lên tới 50000 website, giữa năm 1997 cũng cho thấy sự thay đổi trong việc phát triển PHP. Bộ cú phân tích cú pháp đã được viết lại để trở thành phiên bản PHP3. Phần lớn các mã nguồn của PHP/FI được sử dụng trong PHP3 tuy nhiên nhiều phần của nó cũng được viết lại hoàn toàn. Phiên bản PHP4 ra đời đáp ứng hầu hết các chức năng của PHP3 ngoài ra chùng còn được hỗ trợ ở mức cao hơn như cho phép tích hợp một dãy các thư viện và các hàm mở rộng… Ngày nay cả PHP3 và PHP4 đều được sử dụng rất nhiều trong các sản phẩm thương mại lớn như web server StrongHold của Red Had. Một sự ước lượng dè dặt dựa trên phép ngoại suy từ những con số được cung cấp bởi NetCrafg là trên 5100000 site trên thế giới sử dụng PHP và càng triển vọng hơn khi càng có nhiều site chạy server IIS của Microsoft trên internet. 1.2. Một số cú pháp cơ bản của PHP 1.2.1. Các thẻ chứa đoạn mã PHP Có 4 cách để viết một đoạn mã PHP trong một trang web Cách thứ nhất: đoạn mã PHP được chứa trong cặp thể ‘’ cách này chỉ thực hiện được khi thuộc tính cho phép dùng thẻ ngắn trong file cấu hình của PHP được thiết lập là enable (thuộc tính này thường được để mặc định là enable). Ví dụ: Cách thứ hai: đoạn mã PHP được chứa trong cặp thẻ ‘’. Đây là cách đầy đủ nhất của PHP. Ví dụ: Cách thứ ba: đoạn mã PHP được chứa trong cặp thẻ ‘’cách này được đặt mặc định giống như các ngôn ngữ nhúng khác trong các trang html. 7 Ví dụ: Cách thứ tư: đoạn mã PHP được chứa trong cặp thẻ ‘<%>’hoặc ‘<%=’ và ‘%’. Cách này chỉ có tác dụng khi thuộc tính sử dụng các thẻ kiểu ASP được thiết lập là enable trong file cấu hình của PHP. Ví dụ: <% echo “Đây là cách thứ tư”; %> <%= echo “Đây là cách thứ tư” ; %> 1.2.2. Ngăn cách các lệnh Các lệnh trong PHP được ngăn cách nhau bởi dấu chấm phẩy ’;’ giống như trong ngôn ngữ C. Thẻ đóng đoạn mã PHP (‘?>’) cũng có tác dụng kết thúc câu lệnh như dấu ‘;’. Trong hai câu lệnh sau đều đúng: 1.2.3. Chú thích PHP hỗ trợ các chú thích giống như C, C++ và các chú giải kiểu shell trong Unix. Có hai cách chú thích: Chú thích trên một dòng được bắt đầu bằng dấu ‘//’ các ký tự phía sau cặp ký hiệu này đều được coi là phần chú thích. Ví dụ: Chú thích trên nhiều dòng được ký hiệu bởi cặp dấu bắt đầu ‘/*’ và kết thúc ‘*/’ mọi ký tự trong cặp dấu này đều được coi là phần chú thích. Ví dụ: 1.3. Kiểu PHP hỗ trợ một số các kiểu sau: 1.3.1. Kiểu mảng  Có hai loại kiểu mảng: mảng một chiểu và mảng nhiều chiều  Một số hàm hỗ trợ liên quan đến mảng trong PHP:  Các hàm tạo mảng: list(), arrway()  Các hàm sắp xếp mảng: asort(), arsorrt(), ksort(), …  Hàm đếm số phần tử mảng: count()  Các hàm duyệt mảng: next(), prev(), each().  ….. 1.3.2. Các kiểu số  Các kiểu số con trỏ động có kích thước về độ lớn khác nhau. Độ lớn tối đa của chúng xấp xỉ 1.8e308  Các kiếu số nguyên:PHP có các kiểu số nguyên giống như C. Tuy nhiên kích thước của chúng đều là các số 32 bit.  Một số hàm liên quan đến kiểu số:  Các hàm lượng giác:sin(), cos(), tan(), acos(),...  Các hàm số học: abs(), exp(), pow(), log(), …  Các hàm về cơ số: base_convert(), bindec(), decbin()…  Các hàm làm tròn: ceil(), floor()…  Các hàm khác: getrandmax(), rand()… 1.3.3. Các kiểu đối tượng 9 PHP cũng hỗ trợ việc khai báo các đối tượng giống như C++ các đối tượng được khai báo như sau: Class tên_lớp{ Khai báo các thuộc tính Khai báo các phương thức } Để tạo một biến đối tượng sử dụng từ khóa new 1.3.4. Kiểu sâu Đây là kiểu hay dùng nhất trong PHP. Các quy tắc về xâu trong PHP giống như trong C. Các xâu được đặt trong cặp dấu ‘’ hoặc “”. Một số hàm liên quan đến xâu:  Các hàm in xâu: echo(), print(), printf(), flush().  Các hàm xóa ký tự trắng: chop(), trim(), rtrim()  Các hàm xử lý xâu: strcmp(), substr(), str_replace()…  Các hàm tìm kiếm xâu: strchr(), strstr(), stristr()..  Hàm lấy độ dài xâu: strlen()  …........ 1.4. Cấu trúc điều khiển PHP có các cấu trúc điều khiển tương tự như C. Nó bao gồm: 1.4.1. Cấu trúc rẽ nhánh PHP có hai kiểu cấu trúc rẽ nhánh:  Cấu trúc if: if (biểu thức) { [ Khối lệnh ] } hoặc if (biểu thức) { [ Khối lệnh 1] 10 }else { [ Khối lệnh 2] }  Cấu trúc switch…case switch (tên biến) { case giá trị 1: [Khối lệnh 1] case giá trị 2: [ Khối lệnh 2] ………. } hoặc switch (tên biến) { case giá trị 1:[ Khối lệnh 1] case giá trị 2:[Khối lệnh 2] ………… defaut:[Khối lệnh] } 1.4.2. Cấu trúc lặp Có các kiểu lặp sau:  Cấu trúc while while (biểu thức) { [ Khối lệnh ] }  Cấu trúc do…while do { [Khối lệnh ] } while (biểu thức)  Cấu trúc foreach: foreach (biểu thức mảng as biến giá trị) { [ Khối lệnh ] } 11 hoặc foreach ( biểu thức mảng as biến khóa => biến giá trị) { [ Khối lệnh ] }  Cấu trúc for: for (biểu thức 1; biểu thức 2; biểu thức 3) { [ Khối lệnh ] } 1.4.3. Cấu trúc khác  Require(): Thay thế vị trí của câu lệnh này bằng mã lệnh của file cụ thể. Hàm này giống như ký hiệu tiền xử lý trong C là #include  Include(): Giống như hàm require nhưng nó còn làm thêm một thao tác nữa là xác định file đó trước khi thay thế đoạn mã lệnh.  Require_once(): Giống như hàm require() nhưng nó chỉ thay thế mã lệnh của file một lần.  Include_once(): Giống như hàm include() nhưng nó chỉ thay thế mã lệnh của file một lần. 2. GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU MYSQL 2.1. Giới thiệu về MySQL Trước đây người ta thường dùng mSQL để kết thao tác cơ sở dữ liệu qua các thủ tục. Mặc dù mSQL có thể cung cấp hầu hết các chức năng phục vụ cho việc khai thác dữ liệu nhưng sau một thời gian kiểm thử dần dần xuất hiện các vấn đề về nó. mSQL không đủ nhanh và linh hoạt như yêu cầu. Do đó, người ta đã nghĩ tới một phiên bản SQL mới. MySQL ra đời ngay từ phiên bản đầu tiên nó đáp ứng gần như khá hoàn hảo các yêu cầu của người sử dụng. MySQL được xây dựng chủ yếu dựa trên các hàm API giống như trong mSQL. Người ta sử dụng trực tiếp các hàm API truy cập hệ thống chứ không dùng các hàm trung gian của các công ty thứ ba giống như trong mSQL do đó tốc độ của MySQL vượt xã so với mSQL trước đây. Do nó có mã nguồn mở nên phiên bản MySQL 12 phát triển rất nhanh. Nó được cung cấp các tính năng ngày càng mạnh hơn, linh hoạt hơn phiên bản đầu tiên rất nhiều. 2.2. Các đặc trưng của MySQL MySQL là một hệ quản trị cơ sở dữ liệu: Một CSDL là một tập hợp dữ liệu có cấu trúc. Nó có thể là bất cứ thứ gì từ danh sách các loại hàng hóa đơn giản đến một triển lãm tranh hay là một lượng lớn thông tin trên mạng. Để truy cập và xử lý dữ liệu được lưu trữ trong cơ sở dữ liệu máy tính bạn cần phải có một hệ quản trị CSDL như MySQL. Từ khi các máy tính trở thành một phương tiện khá tốt trong việc điều khiển một lượng lớn dữ liệu, việc quản trị cơ sở dữ liệu đóng vai trò trung tâm trong tính toán. Nó giống như một tiện ích độc lập hay một phần của các ứng dụng khác. MySQL là một hệ quản trị cơ sở dữ liệu quan hệ: Một cơ sở dữ liệu quan hệ lưu trữ dữ liệu trong các bảng tách rời nhau thì thích hợp hơn là đưa tất cả dữ liệu vào một nơi lưu trữ lớn. Điều này làm tăng tốc độ và tính mềm dẻo. Các bảng được liên kết bởi các quan hệ được định nghĩa làm cho nó có thể kết nối dữ liệu ở các bảng khác nhau trong một yêu cầu. SQL là một phần của MySQL. Nó là ngôn ngữ được chuẩn hóa và được sử dụng phổ biến nhất để truy cập cơ sở dữ liệu. MySQL là phần mềm có mã nguồn mở: Một phần mềm có mã nguồn mở là phần mềm được dùng miễn phí cho mọi người. Do đó mọi người có thể nghiên cứu mà nguồn và thay đổi nó cho phù hợp với nhu cầu sử dụng của từng người. Hiện nay MySQL có một tập các chức năng rất lớn và đa dạng. Ngoài ra nó còn được bổ sung các tính năng khá mạnh khác như: khả năng kết nối và khả năng bảo mật… MySQL là một phần mềm thân thiện: MySQL là một hệ quản trị cơ sở dữ liệu có tốc độ xử lý khá nhanh và rất đáng tin cậy. Nó cung cấp một số công cụ cho phép bạn tìm kiếm thông tin một cách hiệu quả hơn nhiều so với các hệ quản trị cơ sở dữ liệu khác. Theo một thống kê cho thấy dung lượng và tốc độ xử lý của MySQL chỉ đứng sau Oracle tuy nhiên nó lại chiếm ưu thế hơn Oracle ở chỗ kích thước của nó lại rất nhỏ hơn rất nhiều rất phù hợp với các ứng dụng vừa và nhỏ. Các đặc tính kỹ thuật của MySQL: MySQL là một hệ thống có mô hình client/server chứa server SQL đa luồng hỗ trợ các chương trình ứng dụng phía sau( trong mạng cục bộ, 13 backend là các chương trình được lưu trữ trên máy chủ dùng để hoàn thành các nhiệm vụ xử lý mà chương trình đó được thiết kế để thực hiện, còn fontend là các chương trình phía trước dùng để điều khiển giao tiếp với từng user ở các client) hỗ trợ các thư viện chương trình client khác nhau các công cụ quản trị và giao diện lập trình. 2.3. Một số kiểu cơ sở dữ liệu trong MySQL 2.3.1. Kiểu xâu Xâu là một tập hợp các ký tự liên tiếp nhau và được đặt trong cặp dấu “” hoặc ‘’ các quy tắc về xâu giống như trong ngôn ngữ C. MySQL hỗ trợ một số hàm thao tác xâu:  Các hàm về ký tự: ascii(), ord(), char()…  Các hàm cắt trắng: Trim(), ltrim(), rtrim()..  Các hàm về thao tác xâu: concat(), left(), right(), mid(),..  Các hàm về kiểu chữ: ucase(), upper(), lcase()..  Các hàm khác: repeat(), elt()… Kích thước của mỗi xâu là 255 để lưu trữ các xâu có kích thước lớn hơn ta có thể dùng các kiểu khác như: text, blob.. 2.3.2. Kiểu số MySQL hỗ trợ các kiểu số sau:  Các kiểu số nguyên: int, smallint, tinyint..  Các kiểu số thực: float, double, real, numeric, decimal..  Các hàm lượng giác: sin(), cos(), tan()..  Các hàm số học: abs(), exp(), pow()..  Các hàm làm tròn: ceiling(), round(), floor().. 2.3.3. Kiểu ngày tháng MySQL hỗ trợ các kiểu ngày tháng sau: Tên kiểu Miêu tả 14 Datetime ‘0000-00-00 00:00:00’ Date ‘0000-00-00’ Time ‘0000:00’ Year ‘0000’ 2.3.4. Các kiểu khác Ngoài các kiểu cơ bản trên MySQL còn hỗ trợ thêm một số kiểu khác dựa trên việc xây dựng từ các kiểu cơ bản nói trên như: set, enum…. 2.4. Các lệnh thao tác CSDL 2.4.1. Tạo một CSDL Cú pháp: CREATE DATABASE [IF NOT EXISTS] db_name Câu lệnh trên dùng để tạo một CSDL mới chưa có dữ liệu tên là db_name. CSDL trong MySQL tương tự như những thư mục chứa các file tương ứng với các bảng. Khi tạo một CSDL MySQL sẽ tạo luôn một thư mục cùng tên với tên của CSDL để chứa các file tương ứng với các bảng của nó. Lệnh trên sẽ có lỗi nếu có một CSDL cùng tên đã tồn tại và bạn không thêm chỉ lệnh [IF NOT EXISTS]. 2.4.2. Xóa một CSDL Cú pháp: DROP DATABASE [IF EXISTS] db_name Câu lệnh trên dùng để xóa một CSDL có tên là db_name. Khi xóa toàn bộ dữ liệu trong CSDL này cũng bị xóa. Nếu bạn xóa một CSDL có biểu tượng liên kết thì cả liên kết và CSDL cũng bị xóa theo do đó bạn phải thật cẩn thận khi dùng lệnh này. Bạn có thể dùng chỉ lệnh [IF EXISTS] để ngăn chặn lỗi không tồn tại CSDL. Kết quả của lệnh này là số file mà bạn xóa khỏi thư mục CSDL đó. Thông thường số file đưa ra gấp ba lần số bảng bởi vì mỗi bảng trong CSDL tương ứng với ba file có tên trùng tên bảng nhưng có phần mở rộng khác nhau:’.MYD’, ‘.MYI’, ‘.FRM’ 2.4.3. Tạo một bảng 15 Cú pháp: CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (create_definition,..)][table_options] [select_statement] 2.4.4. Thay đổi thông tin một bảng Cú pháp: ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec..] alter_specification: ADD[COLUMN] create_definition[FIRST AFTER column_name] Lệnh này dùng để thay đổi các thuộc tính của bảng như: đổi tên cột, thay đổi các kiểu cột.. 2.4.5. Đổi tên bảng Cú pháp: RENAME TABLE old_table TO backup_table, new_table TO old_table Lệnh này dùng để đổi tên bảng old_table thành tên new_table. 2.4.6. Xóa bảng Cú pháp: DROP TABLE [IF EXISTS] tbl_name [,tbl_name,..] [RESTRICT/ ASCADE] Lệnh này dùng để xóa một hay nhiều bảng cùng một lúc. Chỉ dẫn [IF EXISTS] dùng để ngăn chặn lỗi khi không có bảng. 2.5. Các hàm PHP thao tác với CSDL MySQL Các hàm này cho phép chúng ta truy cập các server CSDL MySQL. Để dùng các hàm này, chúng ta phải biên dịch PHP với hỗ trợ MySQL bằng cách sử dụng lựa chọn -with-mysql. Nếu chúng ta sử dụng lựa chọn này mà không chỉ rõ đường dẫn tới MySQL, PHP sẽ sử dụng các thư viện client đã được xây dựng sẵn. Các user chạy các ứng dụng khác có sử dụng MySQL nên chỉ rõ đường dẫn tới MySQL: -with-mySQL = /path/to/MySQL. 16  mysql_affected_rows. int mysql_affected_rows([int linhk_identifier]) Trả về số các dòng của thao tác MySQL trước đó. Nó trả về số dòng bị ảnh hưởng bởi các câu truy vấn:INSERT, UPDATE hoặc DELETE trên server kết gắn với một chỉ số liên kết cụ thể. Nếu chỉ số liên kết không được chỉ rõ liên kết mở cuối cùng sẽ được chọn. Nếu câu truy vấn cuối cùng là DELETE không có mênh đề WHERE tất cả các bản ghi sẽ bị xóa khỏi bảng nhưng hàm này lại trả về 0. Lệnh này không có hiệu quả với lệnh SELECT chỉ trên các lệnh sửa đổi bản ghi. Để thu được số các cột trả về từ lệnh SELECT sử dụng mysql_num_rows()  mysql_change_user int mysql_change_user(string user, strinh password[,string database [,int linhk_identifie]]) Thay đổi sự cập nhật của người dùng trong kết nối tích cực hiện tại hoặc kết nối được truyền tham số lựa chọn linh_identifier. Nếu một CSDL được chỉ rõ nó sẽ mặc định CSDL hiện tại sau khi người dùng thay đổi  mysql_close int mysql_close([int identifier]) Đóng kết nối MySQL hiện tại. Nó trả về true nếu thành công ngược lại trả về fasle. Việc sử dụng mysql_close() thường là không cần thiết, khi các liên kết mở không cố định vì nó sẽ tác động đóng ở cuối kịch bản, mysql_close() sẽ không đóng các liên kết cố định được tạo bởi mysql_pconnect()  mysql_connect int mysql_connect([strinh hostname [:post] [:/path/to/sokect] [,string username [,string password]]]) Mở một kết nối tới một MySQL Server, giá trị trả về là một liên kết tích cực nếu thành công ngược lại sẽ có một thông báo lỗi. Hàm này thiết lập một kết nối tới một MySQL Server, các tham số có giá trị mặc định như sau: Host: post = ‘localhost:3306’ Usernamw = tên của người dùng trên server 17 Password = ‘’_để trống Xây hostname có thể chứa một số hiệu cổng ”hostname:post” hoặc một đường dẫn tới một socket “:/path/to/socket” đối với localhost Nếu có một lời gọi hàm thứ hai với các tham số tương tự sẽ không tạo ra liên kết mới mà nó thay thế liên kết cũ bằng liên kết mới. Liên kết sẽ đóng ngay sau khi kịch bản thực hiện xong trừ khi nó được đóng trước khi kịch bản kết thúc bằng lệnh mysql_close().  mysql_create_db int mysql_create_db( string db_name[,int link_identifier]) Tạo một cơ sở dữ liệu MySQL hàm này thử tạo một CSDL mới trên server được liên kết với link_identifier.  mysql_data_seek int mysql_data_seek( int result_identifier, int row_number) Dịch chuyển con trỏ kết quả bên trong, trả về true nếu thành công, fasle ngược lại. Hàm này dịch chuyển con trỏ hàng bên trong kết quả MySQL liên kết với result_identifier để trỏ tới hàng row_number lời gọi tiếp theo của hàm mysql_fetch_row() sẽ trả về giá trị bằng row_number bắt đầu từ 0.  mysql_db_name int mysql_db_name( int result, int row[,mixed field]) Lấy dữ liệu kết quả. Hàm này lấy tham số đầu tiên của nó từ lời gọi hàm mysql_list_dbs(). Tham số row là một chỉ số tập hợp kết quả. Nếu xuất hiện lỗi giá trị trả về false, sử dụng mysql_errno() và mysql_error() để lấy lỗi.  mysql_query() int mysql_query( string query[,int link_identifier]) Gửi một lệnh truy vấn tới server, nếu link_identifier không được chỉ rõ liên kết cuối cùng sẽ được sử dụng, nếu không có liên kết nào được mở hàm sẽ thiết lập một liên kết giống như hàm mysql_connect() được gọi không tham số và dùng nó. Hàm trả về true hoặc fasle để xác định xem câu truy vấn có thành công hay không. True có nghĩa là hợp lệ và có thể thực hiện được. 18
- Xem thêm -

Tài liệu liên quan