Giới thiệu sơ lược về MySQL

Một phần của tài liệu Báo cáo kết thúc học phần cơ sở dữ liệu nâng cao Đề tài fabric agency database (Trang 27 - 35)

CHƯƠNG 2. KIẾN THỨC NỀN TẢNG

2.3 Công nghệ BACK-END

2.3.6 Giới thiệu sơ lược về MySQL

● MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) được sử dụng rộng rãi. Nó là một phần quan trọng của bộ công cụ LAMP, tức là Linux, Apache, MySQL và PHP/Python/Perl, được sử dụng để xây dựng và triển khai ứng dụng web.

● MySQL được phát triển, phân phối và duy trì bởi công ty Oracle Corporation. Tuy là một dự án mã nguồn mở, MySQL

vẫn có một phiên bản cung cấp dịch vụ và hỗ trợ từ Oracle cho các doanh nghiệp và tổ chức có nhu cầu cao cấp.

● MySQL sử dụng ngôn ngữ truy vấn SQL (Structured Query Language) để thực hiện các thao tác truy vấn và quản lý cơ sở dữ liệu. Nó hỗ trợ nhiều tính năng như giao dịch, khóa chính ngoại, các hàm và thủ tục lưu trữ, cũng như các tính năng bảo mật để bảo vệ dữ liệu.

● Với khả năng linh hoạt, hiệu suất đáng kể, và sự ổn định, MySQL thường được sử dụng trong nhiều ứng dụng web và dự án phát triển phần mềm.

2.3.6.2 Đôi nét về MySQL

● MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phổ biến và mã nguồn mở. Dưới đây là một số đặc điểm quan trọng về MySQL:

● Mã nguồn mở: MySQL là một dự án mã nguồn mở, điều này có nghĩa là mã nguồn của nó có sẵn và có thể được sửa đổi, phát triển bởi cộng đồng người dùng trên toàn thế giới.

● Quản trị Cơ sở Dữ liệu Quan hệ: MySQL là một hệ quản trị cơ sở dữ liệu quan hệ, nghĩa là dữ liệu được tổ chức thành các bảng có mối quan hệ với nhau thông qua các khóa.

● Ngôn ngữ Truy vấn SQL: MySQL sử dụng ngôn ngữ truy vấn SQL để thực hiện các thao tác như truy vấn dữ liệu, cập nhật, xóa và thêm mới.

● Tính Di động và Độ linh hoạt: MySQL có thể chạy trên nhiều hệ điều hành như Linux, Windows, macOS và nhiều nền tảng

khác. Nó cũng hỗ trợ nhiều ngôn ngữ lập trình và có khả năng tích hợp dễ dàng với nhiều loại ứng dụng.

● Hiệu suất Cao: MySQL nổi tiếng với hiệu suất cao, đặc biệt là trong các ứng dụng web nơi cần xử lý đồng thời nhiều truy vấn từ nhiều nguồn.

● Cộng đồng Lớn và Hỗ trợ Chính thức: Có một cộng đồng người dùng lớn xung quanh MySQL, cùng với sự hỗ trợ chính thức từ Oracle. Điều này đảm bảo người dùng có nguồn lực và thông tin để giải quyết vấn đề và tối ưu hóa hiệu suất.

● Tính Năng Mở Rộng: MySQL hỗ trợ nhiều tính năng như giao dịch, khóa chính ngoại, xác thực người dùng và quản lý quyền truy cập.

● Phổ Biến trong Ứng dụng Web: Do tính linh hoạt và hiệu suất, MySQL thường được sử dụng trong các ứng dụng web như các trang web thương mại điện tử, blog, diễn đàn, và nhiều ứng dụng khác.

Tổng kết:

MySQL là một lựa chọn phổ biến cho các dự án phát triển phần mềm và ứng dụng web, đặc biệt là khi cần một giải pháp cơ sở dữ liệu đơn giản, mạnh mẽ và hiệu suất cao.

2.3.6.3 Kiến trúc cơ sở dữ liệu của MySQL

Kiến trúc cơ sở dữ liệu của MySQL là một cấu trúc linh hoạt và có thể mở rộng để đáp ứng nhu cầu của các ứng dụng cơ sở dữ liệu đa dạng. Dưới đây là mô tả tổng quan về kiến trúc của MySQL:

1. Server MySQL:

MySQL chạy dưới dạng một quy trình server. Mỗi instance của MySQL Server quản lý một hoặc nhiều cơ sở dữ liệu.

Server MySQL có thể chạy trên nhiều hệ điều hành như Linux, Windows, macOS.

2. Storage Engines:

MySQL hỗ trợ nhiều "Storage Engines" (đôi khi được gọi là

"table types") để lưu trữ dữ liệu. Mỗi Storage Engine có đặc điểm và tính năng riêng.

Các Storage Engines phổ biến bao gồm InnoDB (mặc định từ MySQL 5.5 trở đi, hỗ trợ giao dịch và khóa ngoại), MyISAM (đơn giản, hiệu suất cao), MEMORY (lưu trữ tạm thời trong bộ nhớ), và nhiều loại khác.

3. Cơ sở Dữ liệu:

Một cơ sở dữ liệu trong MySQL là một tập hợp các bảng, lưu trữ dữ liệu theo cấu trúc quan hệ.

Mỗi cơ sở dữ liệu có thể có nhiều bảng, và mỗi bảng chứa các dòng và cột.

4. Bảng (Table):

Bảng là thành phần chính trong cơ sở dữ liệu quan hệ. Mỗi bảng đại diện cho một loại đối tượng hoặc thực thể và bao gồm các cột và dòng dữ liệu.

Các cột đại diện cho các thuộc tính của đối tượng, trong khi các dòng chứa dữ liệu cụ thể.

5. Cột (Column):

Mỗi cột trong bảng đại diện cho một thuộc tính cụ thể của đối tượng. Các cột có kiểu dữ liệu xác định (ví dụ: INT, VARCHAR, DATETIME).

6. Dòng (Row):

Mỗi dòng trong bảng chứa thông tin cụ thể về một thực thể hoặc đối tượng.

7. SQL Layer:

SQL Layer giữ vai trò quan trọng trong kiến trúc của MySQL.

Nó bao gồm trình thông dịch SQL, trình tối ưu hóa truy vấn, và trình quản lý bộ nhớ đệm để tối ưu hóa hiệu suất truy vấn.

8. Connector API:

MySQL cung cấp các API (Application Programming Interface) để kết nối từ ứng dụng và các ngôn ngữ lập trình khác nhau.

Các Connector giúp ứng dụng tương tác với cơ sở dữ liệu MySQL.

9. Buffer Pool (InnoDB):

Đối với InnoDB, một trong những Storage Engine phổ biến của MySQL, có một thành phần quan trọng là Buffer Pool. Đây là một khu vực trong bộ nhớ RAM được sử dụng để lưu trữ dữ liệu và chỉ mục, giúp tăng cường hiệu suất bằng cách giảm số lần truy cập đĩa.

2.3.6.4 Ưu và nhược điểm của MySQL

Ưu điểm:

➢Dễ dàng sử dụng: là hệ thống khá dễ sử dụng, khiến nó trở thành sự chọn lựa khá phổ biến dành cho các nhà phát triển ở tất cả cấp độ kỹ năng. Sử dụng ngôn ngữ

truy vấn đơn giản sẽ giúp dễ dàng truy xuất và thao tác dữ liệu.

➢Khả năng tương thích rộng – MySQL tương thích với nhiều nền tảng, bao gồm Windows, Linux và macOS.

Điều này có nghĩa là nó có thể được sử dụng trên nhiều loại thiết bị, từ máy tính để bàn đến thiết bị di động.

➢Hiệu suất cao – được thiết kế cho hiệu suất cao, có nghĩa là nó có thể xử lý lượng lớn dữ liệu và lưu lượng truy cập mà không bị chậm. Nó sử dụng các kỹ thuật lập chỉ mục nâng cao và cơ chế lưu vào bộ nhớ đệm để tối ưu hóa hiệu suất

➢Các tính năng bảo mật mạnh mẽ – cung cấp các tính năng bảo mật mạnh mẽ, bao gồm xác thực người dùng, mã hóa và kiểm soát truy cập. Điều này có nghĩa là dữ liệu nhạy cảm có thể được bảo vệ khỏi truy cập trái phép, giúp ngăn chặn vi phạm dữ liệu và các sự cố bảo mật khác.

➢Hỗ trợ từ cộng đồng – có một cộng đồng lớn và tích cực bao gồm các nhà phát triển và người dùng, những người đóng góp cho sự phát triển của nó và cung cấp hỗ trợ cho những người khác sử dụng nó.

Nhược điểm:

➢Khả năng mở rộng – đặc biệt khi xử lý một lượng lớn dữ liệu.

Điều này là do nó sử dụng một kiến trúc tập trung, có thể dẫn đến các vấn đề về hiệu suất khi cơ sở dữ liệu tăng kích thước.

➢Độ phức tạp – để thiết lập và bảo trì, đòi hỏi kiến thức và kỹ năng chuyên môn. Điều này có thể gây khó khăn cho các tổ chức hoặc cá nhân nhỏ hơn trong việc sử dụng hiệu quả.

➢Bảo mật – có thể dễ bị vi phạm bảo mật, đặc biệt nếu nó không được cấu hình đúng cách hoặc nếu các bản cập nhật không được áp dụng kịp thời.

➢Chức năng hạn chế – có chức năng hạn chế so với một số hệ thống quản lý cơ sở dữ liệu khác, đặc biệt khi xử lý các cấu trúc dữ liệu hoặc kiểu dữ liệu phức tạp.

➢Chi phí – Mặc dù MySQL là nguồn mở và miễn phí, nhưng có thể có chi phí liên quan đến việc sử dụng nó một cách hiệu quả. Ví dụ: các tổ chức có thể cần thuê nhân viên chuyên trách hoặc mua phần mềm hoặc phần cứng bổ sung để hỗ trợ việc sử dụng MySQL.

2.3.6.5 Một số tính năng và tùy chọn của cơ sở dữ liệu MySQL

MySQL là một hệ quản trị cơ sở dữ liệu rất linh hoạt và mạnh mẽ, cung cấp nhiều tính năng và tùy chọn để đáp ứng các yêu cầu đa dạng của người dùng. Dưới đây là một số tính năng và tùy chọn quan trọng của cơ sở dữ liệu MySQL:

1. Storage Engines:

MySQL hỗ trợ nhiều loại storage engines (MyISAM, InnoDB, MEMORY, etc.), mỗi loại có các đặc điểm và tính năng riêng.

2. Giao Dịch (Transaction):

MySQL hỗ trợ giao dịch ACID (Atomicity, Consistency, Isolation, Durability), giúp đảm bảo tính toàn vẹn và đồng nhất của dữ liệu trong quá trình thực hiện các thao tác

3. Khóa Ngoại (Foreign Key):

Cơ sở dữ liệu MySQL hỗ trợ khóa ngoại, cho phép xác định mối quan hệ giữa các bảng và đảm bảo tính nhất quán trong cơ sở dữ liệu.

4. Xác Thực Người Dùng và Quản Lý Quyền Truy Cập:

MySQL cung cấp hệ thống xác thực người dùng và quản lý quyền truy cập chi tiết, giúp bảo vệ dữ liệu và tài nguyên cơ sở dữ liệu.

5. Views:

Views là các bảng ảo được tạo từ các truy vấn SELECT, giúp đơn giản hóa truy cập dữ liệu và bảo vệ dữ liệu thực tế.

6. Procedures và Functions:

MySQL hỗ trợ việc định nghĩa và sử dụng stored procedures và functions, giúp tăng cường khả năng xử lý logic trên cơ sở dữ liệu.

7.Triggers:

Triggers là các khối lệnh được kích hoạt tự động khi có sự thay đổi trong bảng, cung cấp khả năng tự động hóa các tác vụ.

8. Replication:

MySQL hỗ trợ replication, cho phép sao chép và đồng bộ dữ liệu giữa nhiều máy chủ MySQL, giúp tăng cường tính sẵn sàng và khả năng chịu lỗi.

9. Partitioning (Phân vùng):

MySQL hỗ trợ phân vùng bảng để tăng hiệu suất và quản lý dữ liệu một cách hiệu quả trong các bảng lớn.

10. Full-Text Search (Tìm kiếm toàn văn bản):

MySQL cung cấp tính năng tìm kiếm toàn văn bản, cho phép thực hiện các truy vấn tìm kiếm phức tạp trên dữ liệu văn bản.

11.Event Scheduler:

Event Scheduler cho phép lên lịch thực hiện các sự kiện tự động trong cơ sở dữ liệu theo khoảng thời gian được xác định trước.

12. JSON Support:

Tính năng hỗ trợ JSON cho phép lưu trữ và truy vấn dữ liệu dưới dạng JSON, tương tác với ứng dụng web và di động một cách thuận lợi.

13.InnoDB Cluster và Group Replication:

MySQL cung cấp InnoDB Cluster và Group Replication cho các giải pháp mô hình máy chủ và cụm máy chủ, giúp tăng khả năng mở rộng và sẵn sàng.

Một phần của tài liệu Báo cáo kết thúc học phần cơ sở dữ liệu nâng cao Đề tài fabric agency database (Trang 27 - 35)

Tải bản đầy đủ (PDF)

(78 trang)