Chương I: Mớ đầu - Chương II: Công nghệ sứ dụng - Chương III: Phân tích bài toán - Chương IV: Thiết kế và xây dựng hệ thống 4 Chương II CÔNG NGHỆ SỬ DỤNG 2. Hệ quản trị CO’ sở dữ liệu MySQL 2. Dặc điểm MySQL là hệ quán trị cơ sở dừ liệu mã nguồn mờ thông dụng nhất. MySQL là một hệ thống client/server bao gồm một SQL server đa luồng cho phép hồ trợ nhiều thiết bị đầu cuối khác nhau, một vài chương trình client khác nhau và các thư viện, các công cụ quán trị và một vài giao diện lập trình.
Các nhà cung cấp cũng cung cấp MySQL như là một thư viện đa luồng mà ta có thể kết nối trong ứng dụng của ta đế đạt tới một sán phẩm nhỏ hơn, nhanh hơn, dồ quán lý hơn. MySQL có nhiều các phần mềm được phân phối có sẵn, điều này rất thuận tiện trong việc tìm ướng dụng yêu thích hoặc ngôn ngữ hồ trợ MySQL. Quản lý CSDL trong MySQL Đề tạo mới một CSDL trong MySQL, sử dụng lệnh CREATE DATABASE: CREATE DATABASE [IF NOT EXISTS] database_name; Câu lệnh trên tạo một CSDL với tên là database_name, phần [IF NOT EXISTS] đế tránh khởi lỗi tạo một CSDL mới trùng tên với một CSDL đã có trong máy chú CSDL. Các kiểu bảng dữ liệu trong MySQL - MySQL hồ trợ nhiều kiểu bàng dừ liệu hoặc các máy lưu trữ khác nhau giúp chúng ta tối ưu hóa CSDL của mình.
Các kiểu bảng trong MySQL gồm: • ISAM: đã bị loại khỏi các phiên bản từ 5. Nó được thay thế bởi MylSAM. Một băng dữ liệu kiểu ISAM có dung lượng tối đa là 4GB và không thể di chuyển. 5 • MylSAM: Kicu MylSAM là mặc định khi tạo ra một bảng dừ liệu mới.
Các thao tác trên bảng dữ liệu kiếu này diễn ra rất nhanh, tuy nhiên nó lại không hồ trợ đặc tính an toàn giao tác. Dung lượng của một bàng dừ liệu kiếu MylSAM phụ thuộc và hệ điều hành. Báng dừ liệu kiêu MylSAM có the chuyển từ hệ thống này sang hệ thống khác. Với bảng dữ liệu kiểu MylSAM bạn có the có tới 64 khóa và chiều dài tối đa của khóa là 1024bytc.
• InnoDB: Khác với bảng dừ liệu kiểu MylSAM, bảng dừ liệu kiểu InnoDB có đặc tính an toàn giao tác và hồ trợ khóa dòng (row level locking). Các khóa ngoại được hỗ trợ trong kiểu InnoDB. Tập tin dữ liệu cúa bâng dừ liệu kiểu InnoDB có thể lưu trừ ở nhiều file khác nhau. Vì thế dung lượng cùa bảng InnoDB phụ thuộc vào dung lượng cùa ổ đĩa.
Giống như báng dữ liệu kiểu MylSAM, tập tin dừ liệu của InnoDB có thể chuyển từ hộ thống này sang hệ thống khác. Điểm bất lợi cúa InnoDB so với MylSAM là nó cần nhiều không gian lưu trữ. • BDB: cũng tương tự như InnoDB ờ tính an toàn giao tác. Nó hỗ trợ khóa trang (page level locking).
Tuy nhiên tập tin dữ liệu BDB lại không thể chuyến đối giữa các hệ thống. • MERGE: Báng dừ liệu kicu Merge được thêm vào đế giãi quyết vấn đề hạn chế của MylSAM. Nó biến nhiều bảng MylSAM thành một báng dữ liệu vì thế những hạn chế về dung lượng của MylSAM không còn là trở ngại kỹ thuật. • HEAP: Báng dữ liệu kiểu HEAP được lưu trừ trong bộ nhớ.
Do đó, nó là kiếu bâng được thao tác nhanh nhất. Bới cơ chế lưu trừ, dừ liệu sẽ bị mất đi khi máy tính không còn nguồn điện và đôi khi nó còn có thế gây ra tình trạng tràn bộ nhớ đối với máy chú CSDL. Các báng HEAP không hồ trợ những trường có kiểu AUTO INCREMENT, BLOB và TEXT. Thao tác với bủng dữ liệu 2.1 Tạo bảng Create table ten bang ( Danh_sach_cac_truong ) ENGINE= kieu du lieu cua bang Trong đó Danh_sach_cac_truong là tên các cột và kiểu dừ liệu của cột.2 Chỉnh sửa cấu trúc bảng ALTER TABLE ten bang 1 u a_chon_ch inh_sua Trong đó lựa chọn chình sửa gồm: + Thêm cột: add tcn_cot + Thêm khóa chính: add primary key ten khoa + Thay đồi thuộc tính cột: change ten cu ten moi kieu du lieu + Xóa cột: drop ten_cot + Xóa khóa chính của trường: drop ten khoa + Đồi tên cùa bảng: Rename ten_moi 2.3 Xóa bàng dữ liệu - Cú pháp: Drop ten bang - Xóa trống dừ liệu cúa bảng: TRUNCATE TABLE ten bang Câu lệnh TRUNCATE TABLE xóa bỏ bảng dữ liệu rồi sau đó tạo lại chính báng đó, câu lệnh này không hỗ trợ tính an toàn giao tác.
Quản lý chỉ mục 2.1 Tạo chi mục CREATE [UNIQUE I FULLTEXT I SPATIAL] INDEX index_name USING [BTREE I HASH I RTREE] ON table name (column name [(length)] [ASC I DESC],.) 7 Trong đó: • UNIQUE có nghĩa là MySQL sẽ tạo ràng buộc trên tất cả các giá trị cúa cột đều phải phân biệt lẫn nhau. Tuy nhiên giá trị NULL lại có thế được lặp ngoại trừ đổi với băng dữ liệu kieu BDB. • Chi mục FULLTEXT chi được hỗ trợ bời MylSAM và chi hợp lệ đối với những trường có kiểu CHAR, VARCHAR hay TEXT. • Chỉ mục SPATIAL hồ trợ cột trong bàng kiêu MylSAM.
Lưu ý, giá trị của cột không thể là NULL.2 Xóa chi mục Cú pháp: DROP INDEX index name ON table name Ví dụ: Drop index MaSV On tblSinhVien 2. Truy vấn dữ liệu từ bảng 2.1 Select - Cú pháp SELECT column_namcl, column_namc2. FROM tables [WHERE conditions] [GROUP BY group [HAVING groupconditions]] [ORDER BY sort_columns] [LIMIT limits]; - Câu lệnh SELECT có nhiều phần tùy chọn cho nhiều mục đích khác nhau. Trong đó các mệnh đề FROM, WHERE, GROUP BY, HAVING, ORDER BY và LIMIT phải tuân theo thứ tự như trên.
Đe truy vấn tất cả các cột trong một báng dữ liệu ta sứ dụng cú pháp (*) thay vì liệt kê ra tên tất cá các cột.2 Insert - Cú pháp: INSERT INTO 'ten bang' ('tencotl','ten cotn') VALUES ([value-1 ],.3 Update - Cú pháp: UPDATE 'ten bang' SET 'tcn_cotl'= [value-1 'tcncotn'=[valuc-n] 2.4 Delete CÓ 3 dạng Delete trong MySQL - Dạng 1 DELETE [LOWPRIOR1TY] [QUICK] FROM table_name [WHERE conditions] [ORDER BY .] [LIMIT rows] Trong đó: Theo sau DELETE FROM là tên báng dừ liệu mà bạn muốn xóa dừ liệu. Mệnh đề WHERE chi ra điều kiện lọc những bảng ghi cần xóa. Neu một báng ghi thóa mãn điều kiện chi ra trong mệnh đề WHERE thì nó sẽ bị xóa. Neu không khai báo mệnh đề WHERE thỉ toàn bộ dữ liệu của báng sẽ bị xóa.
- Dạng 2: MySQL cho phép bạn xóa các dòng trôn nhiều báng dữ liệu DELETE [LOW PRIORITY] [QUICK] table_name[.] FROM table-references [WHERE where definition] - Dạng 3: tương tự với dạng thứ hai nhưng thay vì sử dụng từ khóa FROM thỉ nó lại sứ dụng từ khóa USING 9 DELETE [LOWPRIORITY] [QUICK] FROM table_name[.] USING table-references [WHERE where definition] 2. Thủ tục Procedure, Con trỏ, Trigger 2.1 Thù tục Procedure - Một thú tục thường trú là một đoạn mã SQL được lưu trong CSDL mà các chưong trình khác có thế gọi thực thi (trigger cũng là một dạng thủ tục thường trú) - Thú tục thường trú tự gọi đến chính nó gọi là thủ tục thường trú đệ quy. Hầu hết các hệ quản trị csdl quan hệ đều hỗ trợ loại thú tục thường trú này nhưng MySQL (đến nay) thi vẫn chưa. - Cú pháp tạo thủ tục thường trú DELIMITER a CREATE PROCEDURE ten_thutuc() BEGIN Câu lệnh sql; END a DELIMITER; - Gọi thủ tục: call ten thutuc - Khai báo bien trong thù tục thướng trú DECLARE ten bien kieu bien DEFAULT giatri macdinh; - Gán giá trị cho biến DECLARE ten bien kieu bien DEFAULT giatri macdinh; SET ten_bien= giatri_gan Ngoài câu lệnh SET, chúng ta còn có thế sử dụng lệnh SELECT.
INTO để gán giá trị cho biến.2 Sứ dụng con trỏ đế duyệt trên kết quá truy vấn - Bước 1: Khai báo con trò với cú pháp sau: DECLARE cursor name CURSOR FOR SELECT statcmcnt; - Bước 2: mở con trỏ đế sử dụng OPEN cursor name; - Bước 3: Lây ra một dòng đê xử lý và chuyên con trở sang dòng tiêp theo FETCH cursor name INTO variable list; - Bước 4: đóng con trò, giãi phóng bộ nhớ mà con trở chiếm giữ. CLOSE cursor name; 2.3 Trigger - Tigger là một hoặc một tập các câu lệnh SQL được lưu trừ trong CSDL và sẽ được kích hoạt bời sự kiện mà nó theo dõi trên bâng dữ liệu. Sự kiện đó gắn liền với thao tác INSERT, UPDATE hay DELETE. - Đôi khi người ta xem trigger là một dạng đặc biệt của thù tục thường trú nếu xét về mặt mã lệnh viết trong thân trigger.
- Cú pháp CREATE TRIGGER trigger name trigger time trigger_event ON table name FOR EACH ROW BEGIN END 2.4 Bảng ảo- View - View là một bàng ào hay còn gọi là bảng logic được hình thành nên từ kết quà truy vấn cùa câu lệnh SELECT. Do báng áo cũng tương tự như bảng dữ liệu nên chúng ta vần có thế truy vấn, cập nhật dữ liệu như các bảng dừ 11 liệu thông thường. Khi dữ liệu ở các bảng dừ liệu thay đối thì dữ liệu trong báng áo cũng thay đối theo. Ngôn ngữ lập trình PHP P1IP (viết tắt chữ Hypertext Preprocessor) là ngôn ngừ lập trình phía server được thiết kế để dễ dàng xây dựng các trang web động.
Mã PHP có thể thực thi trên server để tạo ra mã HTML và xuất ra trình duyệt wcb theo yêu cầu cùa người sử dụng. Ngôn ngữ PHP ra đời năm 1994 Rasmus Lerdorf sau đó được phát triển bời nhiều người trái qua nhiều phiên bàn. ưu điểm + PHP thực hiện với tốc độ rất nhanh và hiệu quà. Một server bình thường có the đáp ứng hàng triệu truy cập tới trong một ngày.
+ PHP cung cấp một hệ thống thư viện phong phú: Do PHP ngay từ đầu được thiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên web nên PHP cung cấp rất nhiều hàm xây dựng sằn giúp thực hiện các công việc rất dễ dàng: gửi, nhận mail, làm việc với các cookie và nhiều thứ khác nữa. + PHP là một ngôn ngừ rất dễ dùng, dề học và đon giản hơn nhiều so với các ngôn ngữ khác như Java, Perl. Neu bạn đã biết ngôn ngừ c thì mọi việc sẽ hoàn toàn thuận lợi. + PHP có thể sử dụng được trên nhiều hệ điều hành, chúng ta có thể viết chúng trên Unix, Linux và các phiên bán cùa Windows.
Và có thể đem mã PHP này chạy trên các hệ điều hành khác mà không phải sữa lại mã. 12 + PHP làm việc tốt với nhiều hệ quàn trị cơ sở. + PHP là ngôn ngữ mã nguồn mớ. Làm thế nào dế chạy được kịch bản PHP Đe chạy được mã lệnh PHP chúng ta cần phái có một môi trường server.
Vì PHP là ngôn ngữ làm việc trên server. Đê tạo ra môi trường server thì cách tốt nhất và nhanh nhất chúng ta nôn sử dụng gói Xampp.