Đây là bộ slide về đề tài TỔNG QUAN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL gồm 5 phần: GIỚI THIỆU TỔNG QUAN VÀ LỊCH SỬ PHÁT TRIỂN, HƯỚNG DẪN CÀI ĐẶT, QUẢN TRỊ VẬN HÀNH, QUẢN TRỊ THÀNH PHẦN, QUẢN TRỊ NGƯỜI DÙNG CỦA HỆ QUẢN TRỊ.
Trang 1HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Trang 201 02 CÀI ĐẶT
GIỚI THIỆU TỔNG QUAN, LỊCH SỬ
QUẢN TRỊ NGƯỜI DÙNG
05
QUẢN TRỊ
VẬN HÀNH
04 QUẢN TRỊ THÀNH PHẦN
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
MYSQL
Trang 301 • MySQL là một hệ quản trị cơ sở dữ liệu
mở, hoàn toàn miễn phí.
• MySQL được sử dụng phổ biến trong lập trình website động với PHP, chúng ta hay gọi chung là lập trình PHP & MySQL.
• MySQL cung cấp cho chúng ta cách truy vấn, thao tác với dữ liệu tương tự như SQL nhưng ở mức độ đơn giản hơn.
• MySQL Workbench là một công cụ thiết kế
cơ sở dữ liệu đa nền tảng được phát triển bởi MySQL Nó là một ứng dụng thành công phát triển từ dự án DBDesigner4.
MYSQL LÀ GÌ?
Trang 401 ✓ Là phần mềm mã nguồn mở => người dùng không phải trả tiền để sử dụng
✓ Sở hữu nhiều chức năng của các hệ quản trị
cơ sở dữ liệu mạnh mẽ và đắt tiền nhất.
✓ Sử dụng một dạng chuẩn của ngôn ngữ dữ liệu SQL nổi tiếng.
✓ Hoạt động trên nhiều hệ điều hành với nhiều ngôn ngữ đa dang như: PHP, PERL, C, C ++, JAVA, v.v.
✓ Hỗ trợ cơ sở dữ liệu lớn Giới hạn kích thước tệp tối đa lên đến 8 triệu terabyte (TB).
✓ Cho phép các lập trình viên sửa đổi phần mềm MySQL để phù hợp với môi trường cụ thể của riêng họ.
ƯU ĐIỂM CỦA
MYSQL
Trang 501 LỊCH SỬ PHÁT TRIỂN
1995
MySQL AB thành lập
bởi Michael Widenius,
David Axmark, Allan
Larsson tại Thụy Điển
ra đời phiên bản đầu
tiên
2000
MySQL đi theo hướng mã nguồn mở, phát hành phần mềm theo điều khoản GPL
=> Doanh thu giảm 80%
2002 - 2003
MySQL ra mắt tại Thụy Điển với 3 triệu người dung, có 4 triệu lượt cài đặt hoạt động và hơn 30.000 lượt tải mỗi ngày
Kết thúc năm 2003 với doanh thu 12 triệu đô la.
Chuyển từ mô hình cấp phép kép OEM trả phí 1 lần sang thị trường doanh nghiệp, tập trung vào doanh thu định kì
từ người dung cuối
2004
Ra mắt MySQL 5.0 được mô phỏng theo mạng Redhat Kết thúc năm với 34 triệu đô la doanh thu dựa trên 3400 khách hàng.
2005
2006 - 2007
MySQL có 320 nhân viên tại 25 quốc
gia, 70% làm việc tại nhà, ước tính có
33% thị phần dựa trên cơ sở cài đặt,
0,2% thị phần đo bằng doanh thu
Doanh thu năm 2007 là 75 triệu đô.
Sun Microsystems mua lại MySQL AB với giá xấp xỉ 1 tỷ USD.
2008
Tập đoàn Oracle thâu tóm Sun Microsystems Đội ngũ của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB Oracle tiếp tục phát triển MySQL lên phiên bản 5.5.
2010
Lần lượt cho ra mắt các phiên bản mới từ 5.6 đến 8.0 với những tính năng vượt trội
2013-2021
Trang 6CÀI ĐẶT MYSQL
02
Lưu ý: Đối với hệ điều hành Windows 7 trở xuống cần cài đặt 2 thư viện mở rộng(Microsoft NET Framework 4 Client Profile, Visual C++ Redistributable for Visual Studio 2013) trước khi bắt đầu cài MYSQL
Trang 702 Cài đặt
Truy cập vào trang web
“https://dev.mysql.com/” tải MySQL
Community Chọn MySQL Community
Server.
1
Trang 802 Cài đặt
Chọn nền tảng máy của bạn và chọn Go
to Download Page.
2
Trang 902 Cài đặt
Chọn bản Community phù hợp với cấu hình máy tính và chọn Download.
3
Trang 1002 Cài đặt
Tại trang tiếp theo, chọn No thanks, just
start my download
4
Trang 1102 Cài đặt
Chọn nơi tải về và chọn Save.
5
Trang 1202 Cài đặt
Nhấn đúp vào file vừa tải và đợi một chút
để chương trình chuẩn bị cài đặt
6
Trang 1302 Cài đặt
Chọn loại cài đặt theo nhu cầu sử dụng
của bạn và chọn Next.
7
Trang 1402 Cài đặt
Nhấn Next.
8
Trang 1502 Cài đặt
Bộ cài hiển thị danh sách các gói sẽ được
cài vào, chọn Execute.
9
Trang 1602 Cài đặt
Đợi một chút để chương trình kiểm tra cài
đặt và chọn Next.
10
Trang 1702 Cài đặt
Bộ cài đặt tiếp tục tới phần cấu hình
MySQL Server, chọn Next.
11
Trang 1802 Cài đặt
Chọn tính khả dụng cho nhu cầu cài đặt,
chọn Next.
12
Trang 2002 Cài đặt
Tại mục Phương thức chứng thực
(Authentication method) chọn đặt mật khẩu khi sử dụng hay sử dụng chung Ở đây mình sẽ chọn sử dụng với mật khẩu
Tiếp đến chọn Next.
14
Trang 2102 Cài đặt
Đặt mật khẩu và xác nhận lại mật khẩu
của bạn, tiếp đến chọn Add user để thêm
tài khoản sử dụng.
15
Trang 2202 Cài đặt
Đặt tên tài khoản và nhập mật khẩu Kế
tiếp chọn Next
16
Trang 2302 Cài đặt
Chọn Next
17
Trang 2402 Cài đặt
Chọn Next
18
Trang 2502 Cài đặt
Ở mục Áp dụng cấu hình (Apply
configuration) , chọn Execute để áp dụng
19
Trang 2602 Cài đặt
Chọn Finish để kết thúc quá trình thiết lập
bảo mật 20
Trang 2702 Cài đặt
Tại mục Product Configuration,
chọn Next.
21
Trang 2802 Cài đặt
Chọn Finish.
22
Trang 30QUẢN TRỊ VẬN HÀNH
❖ Biến hệ thống và biến trạng thái
03
Trang 31Giao diện khởi động
Khi khởi động phầm mềm, màn hình sẽ hiển thị giao diện chào mừng và hỗ trợ
các liên kết đến Browse
Documentation >, Read the Blog > và Discuss
on the Forums >.
Ngoài ra, ở giao diện này
có thể truy cập nhanh đến MySQL connections,
Models, và The MySQL Workbench Migration Wizard.
Trang 32Giao diện khởi động
( ) thêm một mô hình mới.
( ) duyệt hoặc mở các mô hình đã lưu
đã có thể bắt đầu quá trình
di chuyển, mở quản trị viên ODBC hoặc xem tài liệu.
The MySQL Workbench Migration Wizard
Trang 33BIẾN HỆ THỐNG –
BIẾN TRẠNG THÁI
Thẻ “biến hệ thống và biến trạng thái” đặt ở khu vực bộ
điều hướng (Navigator) hoặc nhấp vào Server -> Status and System Variables từ thanh menu
Trong biến hệ thống liệt kê tất cả các biến hệ thống toàn cầu đối với máy chủ đang hoạt động Mỗi biến có 3 đặc trưng: tên biến, giá trị biến, mô tả cho biến
Biến hệ thống cố định (Persist System Variables): có thể duy trì một hoặc nhiều biến hệ thống để các biến được cập nhật trong khi hệ thống hoạt động và liên tục khi khởi động lại
Nhóm biến tùy chỉnh (Custom Variable Grouping): đây là nhóm biến do người dung tạo từ nhóm biến hệ thống, biến trạng thái
Trang 34cơ sở dữ liệu lớn, quan trọng cần được phục hồi nhanh chóng khi xảy ra
Sao lưu logic
• Sao lưu thư mục và tệp cơ sở dữ liệu bao gồm tệp tin nhật ký hoặc tệp tin cấu hình
• Thực hiện nhanh, đầu ra nhỏ gọn, tính di động thấp
• Có thể sao lưu khi máy chủ MySQL ngoại tuyến.
• Thực hiện chậm, đầu ra lớn, tính di động cao.
• Chỉ sao lưu khi máy chủ đang hoạt động
• Công cụ sao lưu gồm chương trình mysqldump và câu lệnh SELECT INTO OUTFILE.
• Tệp kết xuất định dạng SQL có thể khôi phục bằng máy khách MySQL
• Để tải các tệp văn bản được phân tách thì sử dụng lệnh LOAD DATA hoặc ứng dụng khách mysqlimport.
Trang 35SAO LƯU VÀ PHỤC HỒI
SAO LƯU TRỰC TUYẾN SAO LƯU NGOẠI TUYẾN
Bản sao lưu ít xâm phạm đến các
máy khách khác, người dùng có
thể kết nối với máy chủ MySQL
trong quá trình sao lưu và có thể
truy cập dữ liệu tùy thuộc vào hoạt
động họ cần thực hiện
Cần đặt khóa thích hợp để không
diễn ra các sửa đổi dữ liệu làm
ảnh hưởng đến tính toàn vẹn của
bản sao lưu
Khách hàng có thể bị ảnh hưởng bất lợi vì máy chủ không khả dụng trong quá trình sao lưu Vì lý do đó, các bản sao lưu như vậy thường được lấy từ một bản sao có thể được thực hiện ngoại tuyến mà không ảnh hưởng đến tính khả dụng
Thủ tục sao lưu đơn giản hơn vì không có khả năng bị can thiệp từ hoạt động của máy khách
Sự khác biệt giữa khôi phục trực tuyến và ngoại tuyến cũng tương tự như sao lưu Tuy nhiên trong quá trình sao lưu trực tuyến, khách hàng có thể đọc dữ liệu khi hệ
thống đang sao lưu nhưng đối với quá trình khôi phục thì máy khách sẽ bị ngăn
chặn quyền truy cập vào dữ liệu
Trang 36QUẢN TRỊ THÀNH PHẦN
KIỂU DỮ
LIỆU BẢNG
KHUNG NHÌN
THỦ TỤC
LƯU TRỮ
CHỈ MỤC BẪY LỖI
04
Trang 38KIỂU DỮ LIỆU
Kiểu dữ liệu CHAR - VARCHAR và BINARY - VARBINARY
Trang 39KIỂU DỮ LIỆU
➢ BLOB là “đối tượng lớn nhị
phân” lưu trữ lượng lớn dữ
liệu nhị phân, có phân biệt
chữ hoa, chữ thường.
➢ TEXT cũng chứa một lượng
lớn dữ liệu., giá trị lưu trữ
được coi như một chuỗi các
ký tự có mã hóa, không phân
biệt chữ hoa, chữ thường.
➢ Cả hai có độ dài tối đa là
65535.
Kiểu dữ liệu BLOB và TEXT
Trang 40Bảng MyISAM chỉ đọc để tăng tính truy vấn dữ liệu Do đó bảng MyISAM hỗ trợ chỉ mục toàn văn bản (full text index) và các đặc tính cho việc tìm kiếm
Hỗ trợ khả năng lưu trữ cao (256TB)
có tối đa là 64 khóa và chiều dài tối đa của khóa là 1024byte
MyISAM
Hỗ trợ giao dịch: commit rollback crash-recovery nhằm đảm bảo sự an toàn cho dữ liệu và hỗ trợ khóa dòng
-Tổ chức dữ liệu thông qua khóa chính, khóa ngoại, các thao tác thêm - cập nhật - xóa đều được kiểm tra, có thể dùng phép kết giữa các bảng có kiểu lưu trữ khác
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
InnoDB
❑Các loại bảng trong MySQL
Trang 41Là bảng ảo với sự kết hợp của nhiều bảng MyISAM có cấu trúc tương tự, có quy tắc giống như MyISAM.
Sử dụng để tăng tốc độ hiệu suất trong truy vấn, cho phép thực hiện các thao tác SELECT, INSERT, UPDATE, DELETE trên bảngMERGE
MERGE
Bảng Heap được lưu trữ trong
bộ nhớ nên được thao tác
nhanh nhất, đôi khi gây tràn
dữ liệu của DB không thể chuyển đổi giữa các
Trang 42Thêm dữ liệu vào
bảng
INSERT INTO table_name VALUES (value1,value2,value3);
INSERT INTO table_name (column1,column2,column3) VALUES
Xoá bảng DROP TABLE table_name;
Trang 43View là tập hơp các câu truy vấn
SELECT được lưu lại như bảng, sau
đó người dùng có thể truy vấn dữ
liệu từ view như thực hiện với bảng.
View có đầy đủ các tính chất của một
bảng nên có thể truy vấn bằng các
lệnh T-SQL.
VIEW
Ưu điểm khi sử dụng View
o Đơn giản háo các truy vấn dữ liệu phúc tạp
o Cung cấp đầy đủ, chính xác dữ liệu người dùng cần
o Giúp bảo mật cơ sở dữ liệu gốc.
Trang 44❑ Tạo View
Giải thích:
Giải thuật (Algorithms): quyết định cơ chế tạo ra bảng ảo, gồm
MERGE, TAMPTABLE và UNDEFINED (thông thường sử dụng
MERGE hoặc UNDEFINED)
Tạo khung nhìn mới cần lưu ý
▪ Không sử dụng biến local, user hay session
▪ Những lệnh dịch sẵn cũng không thể sử dụng
▪ Không thể tạo trigger cho bảng ảo
▪ Bảng tạm hay các bảng ảo khác cũng không được sử dụng làm nguồn dữ liệu cho câu truy vấn này
[ALGORITHM = {MERGE | TEMPTABLE | UNDEFINED}]
CREATE VIEW [database_name]
[view_name]
AS
[SELECT statement]
Trang 45Đổi tên View RENAME TABLE view_name TO new_view_name;
Xoá View DROP VIEW [IF EXISTS] view_name;
Trang 46THỦ TỤC LƯU TRỮ
Stored Procedure tương tự như thủ
tục hoặc phương thức trong các
ngôn ngữ lập trình.
Cơ chế của Stored Procedure là các câu truy
vấn sẽ được biên dịch và lưu trữ sẵn trong bộ
nhớ của hệ quản trị cơ sở dữ liệu, các ứng
dụng gửi tên của Stored Procedure cần sử
dụng, như vậy truy vấn sẽ được thực thi ngay
thay vì phải thông qua bước biên dịch.
Ưu điểm:
▪ Tăng hiệu suất xử lý của ứng dụng web
▪ Giảm thời gian giao tiếp giữa các ứng dụng với máy chủ MYSQL
▪ Dễ sử dụng và ứng dụng nhìn minh bạch hơn
▪ Giúp nâng cao tính bảo mật dữ liệu
Nhược điểm:
▪ Nếu tạo ra quá nhiều thủ tục thì hệ quản trị
sẽ hao tốn dung lượng lưu trữ lớn
▪ MySQL thì không có tool hỗ trợ Debug Store.
Trang 47- DELIMITER $$ dùng để phân cách bộ nhớ lưu trữ
thủ tục Cache và mở ra một ô lưu trữ mới
- CREATE PROCEDURE là từ khoá dùng để khai
báo tạo một Procedure mới, trong đó
procedureName là tên của thủ tục
- BEGIN và END; $$ dùng để khai báo bắt đầu của
Procedure và kết thúc Procedure
- DELIMITER; là thông điệp để đóng lại ô lưu trữ
❑ Khai báo biến và gán giá trị
DECLARE variable_name datatype(size) DEFAULT default_value
-SET variable_name = 'value';
Giải thích:
- DECLARE: là từ khóa tạo biến
- DEFAULT default_value: là gán giá trị mặc định
- variable_name là tên biến
- datatype(size) là kiểu dữ liệu của biến và kích thước của nó
Trang 48THỦ TỤC LƯU TRỮ
❑ Các thao tác khác
Gọi thủ tục đã khai báo CALL procedure_name ([param1, param2,…]);
Xoá thủ tục DROP PROCEDURE IF EXISTS procedure_name
❑ 3 loại tham số trong Store Procedure
• IN: Đây là tham số mặc định (nghĩa là nếu người dùng không chỉ
định loại tham số truyền vào thì được mặc định là IN).
• OUT: Đây là loại tham số chứa giá trị đầu ra trong quá trình
chương trình thực hiện một Procedure và giá trị đầu vào được mặc
định là giá trị NULL.
• INOUT: là tham số kết hợp giữa IN và OUT Nghĩa là có thể gán giá
trị trước và có thể bị thay đổi trong quá trình thực hiện Procedure.
Trang 49CHỈ MỤC (INDEX)
Chỉ mục (Index) là một mô hình bảng tra cứu được Database Search Engine sử dụng để tăng tốc độ và hiệu suất truy xuất dữ liệu thông qua con trỏ
Một chỉ mục giúp tăng tốc các truy vấn SELECT cũng như các mệnh đề WHERE, nhưng làm chậm việc nhập dữ liệu, với các lệnh UPDATE và INSERT Các chỉ mục có thể được tạo hoặc xóa mà không gây ảnh hưởng gì đến
dữ liệu
Cấu trúc của Index
o Cột Search Key: chứa bản sao các giá trị của cột được tạo Index
o Cột Data Reference: chứa con trỏ trỏ đến địa chỉ của bản ghi có giá trị cột index tương ứng
Trang 50Một số lưu ý để sử hiệu
chỉ mục hiệu quả
CHỈ MỤC (INDEX)
Nên Không nên
Tạo chỉ mục đối với cột thường được
truy vấn trong mệnh đề WHERE, JOIN
và ORDER BY
Không dùng chỉ mục cho các bảng thường xuyên có UPDATE, INSERT
Dùng thuộc tính NOT NULL cho những
cột được thiết lập chỉ mục
Không dùng chỉ mục cho các cột mà giá trị thường xuyên bị thay đổi
Dùng câu lệnh EXPLAIN để biết được
MySQL chạy truy vấn như thế nào Nó
thể hiện thứ tự các câu lệnh được thực
hiện hỗ trợ viết truy vấn tối ưu, chọn cột
để lập chỉ mục dễ dàng hơn
Không nên tạo chỉ mục trên các bảng có
ít dữ liệu
Trang 51CHỈ MỤC (INDEX)
❑ Các thao tác khác
Tạo chỉ mục cơ bản
CREATE INDEX index_name ON table_name;
Thêm index cho bảng, với index
mang tính duy nhất nhưng có thể
null
ALTER TABLE table_name ADD UNIQUE
index_name (column 1, column 2, )
Thêm index cho bảng, có thể trùng
lặp ALTER TABLE table_name ADD INDEX
index_name (column 1, column 2, )
Thêm index đặc biệt thường cho tìm
kiếm văn bản ALTER TABLE table_name ADD FULLTEXT
index_name (column 1, column 2, )Xóa index
DROP INDEX index_name;
Trang 52BẪY LỖI (TRIGGER)
Triggers là một đối tượng cơ sở dữ liệu trong MySQL được liên kết với một bảng Trigger được thực thi tự động khi xuất hiện một hành động thay đổi trong bảng, nên được ứng dụng để tự động kiểm tra dữ liệu, đồng bộ hóa dữ liệu, đảm bảo các mối quan hệ giữa các bảng
Một số giới hạn cần chú ý khi sử dụng trigger:
• Không thể gọi thủ tục thường trú từ trigger
• Không thể tạo ra trigger theo dõi bảng ảo hay bảng tạm
• Không thể sử dụng giao tác trong trigger
• Trigger không cho phép sử dụng lệnh RETURN
• Sử dụng trigger sẽ làm ảnh hưởng đến bộ nhớ tạm danh cho lệnh truy vấn
• Tất cả các trigger của cơ sở dữ liệu không được trùng tên
Trang 53BẪY LỖI (TRIGGER)
Dễ dàng kiểm tra tính toàn vẹn của cơ
sở dữ liệu Trigger có thể bắt lỗi logic
nghiệp vụ (business logic) ở mức cơ
sở dữ liệu.
Trigger chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này.
Có thể dùng trigger là một cách để
thay thế việc thực hiện những công
việc hẹn theo giờ theo lịch.
Trigger hoạt động ngầm ở trong csdl, không hiển thị ở tầng giao diện Do
đó, khó chỉ ra được điều gì xảy ra ở tầng cơ sở dữ liệu.
Trigger rất hiệu quả khi được sử dụng
để kiểm soát những thay đổi của dữ
liệu trong bảng.
Trigger thực hiện các cập nhật lên bảng dữ liệu vì thế nó làm gia tăng lượng công việc lên cơ sở dữ liệu và làm cho hệ thống chạy chậm.
BẪY LỖI (TRIGGER)
Trang 54❑ Tạo Trigger
Giải thích:
➢ trigger_name là tên của trigger do người tạo đặt
➢ INSERT | UPDATE| DELETE: hành động được trigger kiểm soát
➢ BEFORE | AFTER: là thời điểm xác định để trigger được kích hoạt
thực hiệm nhiệm vụ
➢ ON table_name: tên bảng liên kết với trigger thực hiện hành động
➢ FOR EACH ROW là trigger sẽ duyệt qua từng dòng lệnh
➢ –statements: là nội dung trigger xử lý khi xảy ra sự kiện trên bảng
liên kết Ta sẽ dựa vào hai biến tạm là OLD và NEW để phân biệt
giữa dữ liệu trước và sau khi thay đổi
CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE| DELETE }
ON table_name FOR EACH ROW BEGIN
statements
END
BẪY LỖI (TRIGGER)