SQL

DBMS là gì? Chức năng, các loại và ví dụ SQL cơ bản

Tìm hiểu hệ quản trị cơ sở dữ liệu, các chức năng lưu trữ, truy vấn, bảo mật và sao lưu; phân biệt mô hình phân cấp, mạng, quan hệ, hướng đối tượng và NoSQL qua ví dụ cụ thể.

DBMS là gì? Chức năng, các loại và ví dụ SQL cơ bản

Dữ liệu ở khắp mọi nơi — từ hồ sơ khách hàng đến giao dịch ứng dụng — và việc giữ cho chúng ngăn nắp là vô cùng quan trọng. Trên thực tế, lượng dữ liệu được tạo ra, thu thập, sao chép và tiêu thụ được dự báo sẽ đạt 394 zettabyte vào năm 2028. Đó là một lượng thông tin khổng lồ, và nếu không có hệ thống quản lý, mọi thứ sẽ nhanh chóng trở nên hỗn loạn.

Đó là lý do chúng ta sử dụng Hệ quản trị cơ sở dữ liệu (DBMS). Nó giúp lưu trữ và quản lý dữ liệu để doanh nghiệp và ứng dụng vận hành trơn tru. Hướng dẫn này phân tích DBMS là gì, cách hoạt động, các loại khác nhau, và vì sao nó thiết yếu cho việc lưu trữ và quản lý dữ liệu hiện đại.

DBMS là gì?

Hệ quản trị cơ sở dữ liệu (DBMS) lưu trữ, tổ chức và quản lý dữ liệu một cách hiệu quả. Nếu không có DBMS, dữ liệu sẽ bị rải rác trong nhiều tệp, gây khó khăn khi tìm kiếm hoặc cập nhật. DBMS đơn giản hóa các tác vụ này bằng cách cung cấp một hệ thống tập trung, cho phép người dùng dễ dàng thêm, sửa hoặc xóa dữ liệu đồng thời đảm bảo độ chính xác và nhất quán.

Các chức năng chính của DBMS

DBMS làm rất nhiều việc nặng nhọc khi quản lý dữ liệu. Nó tổ chức và bảo vệ thông tin để chúng ta có thể tìm thấy điều mình cần, đúng lúc cần, mà không đau đầu. Hãy cùng khám phá chi tiết các chức năng chính.

Định nghĩa dữ liệu

Cơ sở dữ liệu lưu thông tin theo cấu trúc bằng DDL (Data Definition Language — Ngôn ngữ định nghĩa dữ liệu). Với DDL, chúng ta có thể tạo bảng, thêm trường và liên kết chúng với nhau, chẳng hạn thiết lập danh sách khách hàng với tên, số điện thoại và email.

Dưới đây là một số lệnh DDL thường gặp:

1) CREATE thiết lập bảng, trường và quan hệ mới. Nó giúp chúng ta xác định sẽ lưu kiểu dữ liệu nào. Giả sử bạn đang xây dựng cơ sở dữ liệu khách hàng. Khi đó, đây là cách bạn tạo một bảng để lưu chi tiết khách hàng:

Lưu ý thực hành: Các ví dụ SQL minh họa từng thao tác riêng. Cú pháp có thể khác giữa các hệ quản trị; RENAME TABLE trong ví dụ dùng cú pháp MySQL. Ví dụ lọc theo city giả định bảng đã có cột city. Hãy thử trên dữ liệu mẫu và kiểm tra sao lưu trước thao tác xóa hoặc thay đổi cấu trúc.

CREATE TABLE Customers (
ID INT PRIMARY KEY, 
Name VARCHAR(100)
);

2) ALTER sửa đổi một bảng hiện có (thêm, xóa hoặc thay đổi cột). Ví dụ sau thêm một trường mới (email) vào bảng Customers :

ALTER TABLE Customers ADD Email VARCHAR(255);

3) DROP xóa vĩnh viễn một đối tượng trong cơ sở dữ liệu. Ví dụ xóa bảng Customers:

DROP TABLE Customers;

4) TRUNCATE xóa toàn bộ bản ghi khỏi bảng nhưng giữ nguyên cấu trúc. Không giống DROP, lệnh này giữ bảng để chúng ta vẫn có thể dùng tiếp. Đây là cách sử dụng lệnh:

TRUNCATE TABLE Customers;

5) RENAME  đổi tên bảng hoặc cột. Ví dụ, để đổi tên bảng Customers thành Clients, có thể dùng lệnh sau:

RENAME TABLE Customers TO Clients;

Thao tác dữ liệu

Sau khi thiết lập cơ sở dữ liệu, chúng ta có thể bắt đầu thao tác dữ liệu — thêm, cập nhật hoặc xóa bản ghi — bằng Ngôn ngữ thao tác dữ liệu (DML).

Dưới đây là một số lệnh DML thường gặp:

1) INSERT thêm một hàng dữ liệu mới vào bảng. Ví dụ, để thêm một khách hàng mới vào bảng Customers của chúng ta, có thể dùng đoạn mã sau:

INSERT INTO Customers 
(ID, Name, Email) 
VALUES 
(1, 'Drake White', 'drake@example.com');

Lệnh này thêm một khách hàng với ID 1, tên Drake White, và email drake@example.com vào bảng.

2) UPDATE sửa đổi các bản ghi hiện có trong bảng. Để thay đổi email của một khách hàng, có thể cập nhật bản ghi như sau:

UPDATE Customers SET Email = 'drake.new@example.com' WHERE ID = 1;

Lệnh này cập nhật email của khách hàng có ID 1 thành drake.new@example.com.

3) DELETE xóa dữ liệu cụ thể khỏi bảng. Để xóa một khách hàng có ID là 1, có thể dùng lệnh sau:

DELETE FROM Customers WHERE ID = 1;

LƯU Ý: DELETE xóa các bản ghi khớp điều kiện. Khả năng khôi phục phụ thuộc vào giao dịch, nhật ký và bản sao lưu. Hãy kiểm tra điều kiện WHERE và chuẩn bị phương án khôi phục trước khi xóa dữ liệu.

4) SELECT truy xuất dữ liệu từ bảng. Ví dụ, để xem tất cả khách hàng trong bảng, có thể dùng:

SELECT * FROM Customers;

Để xem các khách hàng có một tên cụ thể, có thể dùng:

SELECT * FROM Customers WHERE Name = 'Drake White';

Lệnh này chỉ trả về những bản ghi mà trường Name khớp với Drake White.

Truy xuất dữ liệu

Như đã thấy ở phần trước, DBMS truy xuất thông tin nhanh chóng bằng SQL hoặc các ngôn ngữ truy vấn khác. Thay vì phải tìm thủ công giữa hàng nghìn bản ghi, chúng ta có thể dùng truy vấn để tìm chính xác điều mình cần chỉ trong vài giây.

Giả sử cần tìm tất cả khách hàng ở New York. Thay vì cuộn qua hàng nghìn bản ghi, có thể dùng truy vấn SQL sau:

SELECT * FROM customers WHERE city = 'New York';

Toàn vẹn và bảo mật dữ liệu

DBMS giữ cho dữ liệu chính xác bằng cách gán cho mỗi bản ghi một ID duy nhất và liên kết các bảng có liên quan. Nó kết nối các hàng bằng khóa chính và duy trì tính nhất quán giữa các bảng bằng khóa ngoại. Để bảo mật dữ liệu, DBMS sử dụng:

  • Xác thực để kiểm soát ai có thể truy cập dữ liệu.
  • Mã hóa để bảo vệ khỏi tin tặc.
  • Kiểm soát truy cập để quản lý ai có thể xem hoặc chỉnh sửa.

Lưu trữ và sao lưu dữ liệu

DBMS lưu trữ dữ liệu hiệu quả và duy trì các bản sao lưu. Nó sử dụng lập chỉ mục để tăng tốc tìm kiếm và tích hợp tính năng sao lưu, khôi phục nhằm ngăn mất dữ liệu do xóa nhầm hoặc lỗi hệ thống. Nhờ vậy, nếu có sự cố, chúng ta có thể khôi phục dữ liệu mà không mất thông tin quan trọng.

Các loại DBMS

Không phải DBMS nào cũng hoạt động giống nhau. Thực tế có nhiều loại, mỗi loại được thiết kế cho các dạng dữ liệu và trường hợp sử dụng cụ thể. Hãy cùng phân loại với các ví dụ dễ hiểu.

DBMS phân cấp (Hierarchical)

DBMS phân cấp cấu trúc dữ liệu như cây gia phả, trong đó mỗi bản ghi có một bản ghi cha, và mỗi cha có thể có nhiều con. Tuy nhiên, mỗi con chỉ có một cha (quan hệ một-nhiều).

Hãy nghĩ đến sơ đồ tổ chức của một công ty: Một quản lý (cha) giám sát nhiều nhân viên (con), nhưng mỗi nhân viên chỉ báo cáo cho một quản lý.

Sơ đồ DBMS phân cấp: công ty, hai quản lý và bốn nhân viên theo quan hệ cha-con.

Cấu trúc DBMS phân cấp.

Một ví dụ nổi tiếng về DBMS phân cấp là Information Management System (IMS) của IBM, một trong những hệ thống đầu tiên sử dụng cấu trúc này để xử lý lượng dữ liệu lớn.

DBMS mạng (Network)

DBMS mạng linh hoạt hơn DBMS phân cấp vì cho phép các bản ghi có nhiều cha và nhiều con (quan hệ nhiều-nhiều). Điều này giúp xử lý các mối quan hệ phức tạp dễ dàng hơn. Một ví dụ cho loại này là Integrated Data Store.

Ví dụ, trong cơ sở dữ liệu của một trường đại học, sinh viên có thể đăng ký nhiều học phần, và mỗi học phần có thể có nhiều sinh viên.

Sơ đồ DBMS mạng: sinh viên liên kết với nhiều học phần.

Cấu trúc DBMS mạng.

DBMS quan hệ (RDBMS)

Một DBMS quan hệ lưu trữ dữ liệu trong các bảng, mỗi bảng gồm các hàng và cột (như bảng tính). Các bảng này được liên kết bằng các khóa duy nhất, giúp tổ chức và truy xuất dữ liệu dễ dàng:

  • Khóa chính định danh duy nhất mỗi hàng.
  • Khóa ngoại kết nối các bảng bằng cách tham chiếu đến khóa chính của bảng khác.

Loại DBMS này được sử dụng rộng rãi vì đáng tin cậy, có khả năng mở rộng và dễ quản lý. Một số ví dụ phổ biến bao gồm MySQL, PostgreSQL, và Oracle.

Giả sử chúng ta có hai bảng:

  • Students: lưu tên sinh viên, số báo danh và học phần.
  • Marks: lưu số báo danh và điểm thi tương ứng.

Cột Roll No. trong bảng Students là khóa chính, còn trong bảng Marks là khóa ngoại liên kết ngược về bảng Students.

SELECT Students.Name, Students.Course, Marks.Marks
FROM Students
JOIN Marks ON Students.RollNo = Marks.RollNo;

Truy vấn trên trả về một chế độ xem tổng hợp gồm tên sinh viên, học phần đăng ký và điểm của họ.

Hai bảng Students và Marks liên kết qua Roll No., minh họa khóa chính và khóa ngoại.

Cấu trúc DBMS quan hệ.

DBMS hướng đối tượng (OODBMS)

DBMS hướng đối tượng lưu trữ dữ liệu dưới dạng đối tượng, tương tự cách các ngôn ngữ lập trình như Java hoặc Python xử lý đối tượng. Các đối tượng này chứa cả dữ liệu và phương thức để làm việc với chúng. Một ví dụ phổ biến là db4o, cơ sở dữ liệu mã nguồn mở cho nhà phát triển Java và .NET.

Ví dụ, một trường đại học lưu thông tin sinh viên dưới dạng đối tượng, trong đó mỗi đối tượng Student có các thuộc tính như Name, Age và Student ID cùng các hành vi như Enroll() và Drop_Course(). Sinh viên được liên kết với các đối tượng Course có chi tiết như Course_Name, Instructor, Credits_hours, và các đối tượng Enrollment theo dõi Enrollment_Date và Grades.

Sơ đồ đối tượng Student liên kết với Course và Enrollment cùng các thuộc tính, phương thức.

Cấu trúc DBMS hướng đối tượng.

NoSQL DBMS

Một DBMS NoSQL lưu trữ dữ liệu theo các mô hình phi quan hệ, như tài liệu (document), cặp khóa-giá trị, cột hoặc đồ thị. Cấu trúc và ngôn ngữ truy vấn phụ thuộc vào từng hệ quản trị. Các cơ sở dữ liệu tài liệu có thể sử dụng biểu diễn tương tự JSON (JavaScript Object Notation) để lưu dữ liệu bán cấu trúc.

Không giống cơ sở dữ liệu quan hệ, nó không dùng các bảng cố định và cho phép linh hoạt hơn trong cách lưu trữ và truy xuất dữ liệu. Điều này khiến NoSQL rất phù hợp cho big data, ứng dụng thời gian thực và hệ thống đám mây. Một số ví dụ tiêu biểu gồm MongoDB, Apache Cassandra, và Couchbase.

Dưới đây là cách chúng ta có thể lưu dữ liệu sinh viên bằng định dạng JSON:

{
  "student_id": "101",
  "name": "Emma",
  "age": 16,
  "grade": 11,
  "subjects": ["Math", "Science", "English"]
}

Phần mềm DBMS phổ biến

Các DBMS khác nhau được xây dựng cho các nhu cầu khác nhau. Một số miễn phí và phù hợp cho website, trong khi số khác được thiết kế cho doanh nghiệp lớn cần bảo mật và hiệu năng hàng đầu. Hãy cùng khám phá một số phần mềm DBMS phổ biến và cách chúng được sử dụng.

MySQL

MySQL là một trong những Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở được sử dụng rộng rãi nhất. Nó được dùng cho website và ứng dụng vì nhanh và có khả năng mở rộng. Các nền tảng lớn như WordPress và các trang thương mại điện tử dựa vào MySQL để quản lý lượng dữ liệu lớn một cách hiệu quả mà không làm chậm hệ thống.

PostgreSQL

PostgreSQL là Hệ quản trị cơ sở dữ liệu hướng đối tượng-quan hệ (ORDBMS) mã nguồn mở tiên tiến, có tính linh hoạt và mạnh mẽ cao. Nó hỗ trợ các truy vấn phức tạp và làm việc với nhiều ngôn ngữ lập trình như Java và Python. Những tên tuổi lớn như Netflix và Instagram dùng PostgreSQL vì nó có thể xử lý lượng lớn dữ liệu có cấu trúc và không có cấu trúc trên nhiều nền tảng, bao gồm Windows, macOS và Linux.

Microsoft SQL Server

Microsoft SQL Server (SQL Server) là một RDBMS thương mại do Microsoft phát triển, có các khả năng về hiệu năng và bảo mật cho doanh nghiệp. Nó tích hợp với hệ sinh thái Microsoft, bao gồm Azure và Power BI. Dữ liệu được tổ chức trong các bảng; Transact-SQL (T-SQL) là ngôn ngữ truy vấn, còn Tabular Data Stream là giao thức trao đổi giữa máy khách và máy chủ.

MongoDB

MongoDB là một cơ sở dữ liệu NoSQL mã nguồn mở, nghĩa là nó không dùng các bảng truyền thống như MySQL hay SQL Server. Thay vào đó, nó lưu thông tin trong các tài liệu (tương tự định dạng JSON). Điều này giúp linh hoạt và mở rộng cao, phù hợp để xử lý lượng lớn dữ liệu động hoặc không có cấu trúc. Nhờ tốc độ và khả năng mở rộng, MongoDB là lựa chọn hàng đầu cho ứng dụng thời gian thực, ứng dụng di động và xử lý big data.

Cơ sở dữ liệu Oracle

Oracle Database là một RDBMS hướng đến doanh nghiệp lớn, với các khả năng về bảo mật, hiệu năng và tự động hóa.

Oracle cung cấp các khả năng quản lý dữ liệu quy mô lớn và tự động tối ưu hiệu năng. Các tính năng mã hóa, kiểm soát truy cập và công cụ giám sát hỗ trợ bảo vệ dữ liệu nhạy cảm khỏi truy cập trái phép.

Tổng kết

Hệ quản trị cơ sở dữ liệu (DBMS) là xương sống của việc xử lý dữ liệu có tổ chức, an toàn và hiệu quả. Nếu không có chúng, việc quản lý lượng lớn thông tin sẽ chậm chạp và dễ sai sót.

Đối với doanh nghiệp, DBMS đảm bảo dữ liệu luôn chính xác, được bảo vệ và dễ truy cập khi cần.

Câu hỏi thường gặp

Sự khác nhau chính giữa cơ sở dữ liệu SQL và NoSQL là gì?

Cơ sở dữ liệu SQL thường lưu dữ liệu theo mô hình quan hệ, với các bảng gồm hàng và cột cùng lược đồ được định nghĩa. NoSQL bao gồm nhiều mô hình phi quan hệ như tài liệu, khóa-giá trị, cột và đồ thị; đặc điểm lược đồ và cách truy vấn phụ thuộc từng hệ quản trị.

Sự khác biệt giữa lược đồ (schema) và thể hiện (instance) trong DBMS là gì?

Lược đồ (schema) là cấu trúc của một cơ sở dữ liệu, bao gồm bảng, quan hệ và ràng buộc; còn thể hiện (instance) là dữ liệu thực tế được lưu tại một thời điểm nhất định.

Deadlock trong DBMS là gì và làm sao để ngăn chặn?

Deadlock xảy ra khi hai hoặc nhiều giao dịch chặn lẫn nhau vì mỗi bên chờ tài nguyên do bên kia nắm giữ. Bạn có thể ngăn chặn bằng cách luôn lấy khóa theo cùng một thứ tự và giải phóng chúng ngay khi không còn cần.

Chuẩn hóa trong DBMS là gì và vì sao quan trọng?

Chuẩn hóa (normalization) là quá trình tổ chức dữ liệu thành nhiều bảng liên quan nhằm giảm dư thừa và cải thiện tính toàn vẹn dữ liệu. Nó giúp giảm bất thường và nâng cao hiệu quả cơ sở dữ liệu.

Mô hình thực thể - quan hệ (ER) là gì?

Mô hình ER là sơ đồ biểu diễn các thực thể và mối quan hệ của chúng, được dùng để thiết kế và cấu trúc cơ sở dữ liệu trước khi triển khai.

Ứng dụng thực tế với STALI

Với chủ đề DBMS là gì? Chức năng, các loại và ví dụ SQL cơ bản, hãy thử trên dữ liệu và tiêu chí thành công của chính bạn, gồm độ chính xác, độ trễ và tổng chi phí. Với dữ liệu tiếng Việt, nên thử thêm cách diễn đạt địa phương, tài liệu dài và yêu cầu định dạng đầu ra. Lưu lại cấu hình và kết quả để so sánh các phương án bằng cùng một phép thử.

Kiểm tra mô hình đang được hỗ trợ và mức phí hiện hành tại bảng giá STALI. Giá nhà cung cấp được phân tích trong bài là dữ kiện tham khảo, không thay thế giá bán và điều kiện sử dụng trên STALI.

Để triển khai, đọc tài liệu tích hợp API STALI, sau đó đăng ký tài khoản STALI để quản lý khóa API và sử dụng các mô hình có trong danh mục.

Đọc thêm các phân tích liên quan trên STALI:

GÓC ỨNG DỤNG STALI

Từ thông tin mới đến lựa chọn API phù hợp

Trước khi đưa một model mới vào công việc, hãy thử cùng một bộ tác vụ thực tế và so sánh độ đúng, thời gian phản hồi cùng tổng chi phí. Điểm benchmark trong bài giúp chọn ứng viên; kết quả trên dữ liệu của bạn giúp quyết định.

Chưa xác định được model ID trùng khớp với chủ đề bài trong danh mục giá STALI. Bạn có thể tra cứu model đang được liệt kê và đơn vị thanh toán tại bảng giá STALI.

Bắt đầu với STALI

  1. Tạo tài khoản hoặc đăng nhập tài khoản hiện có.
  2. Đối chiếu model ID, đơn vị tính phí và mức thu tối thiểu trên bảng giá.
  3. Nạp số dư, sau đó làm theo tài liệu tích hợp API để tạo và sử dụng khóa API.

Giải đáp về sử dụng API tại STALI

Bài viết có đồng nghĩa sản phẩm đã có trên STALI không?
Khả dụng trên STALI được xác định theo từng model ID trong danh mục giá. Các ứng dụng, gói thuê bao hoặc biến thể của nhà cung cấp được nhắc trong bài có thể có phạm vi cung cấp khác.
Giá theo token khác giá theo lượt gọi thế nào?
Giá token được niêm yết cho 1.000.000 token và có thể áp dụng mức thu tối thiểu mỗi lượt. Giá theo lượt gọi dùng đơn vị mỗi request; model tạo video còn có thể thay đổi giá theo thời lượng. Xem đúng dòng model ID trên bảng giá STALI trước khi sử dụng.
Làm sao để bắt đầu tích hợp?
Đăng ký tài khoản STALI, kiểm tra giá của model bạn chọn, nạp số dư và làm theo tài liệu API. Hãy thử một số tác vụ thực tế rồi đối chiếu mức sử dụng trước khi triển khai rộng.
Nguyễn Lê Ngọc Vũ
VỀ TÁC GIẢ

Nguyễn Lê Ngọc Vũ

STALI

Nguyễn Lê Ngọc Vũ chia sẻ tại STALI những góc nhìn về trí tuệ nhân tạo, mô hình ngôn ngữ và cách đưa AI vào công việc thực tế. Các bài viết tập trung vào tính năng, chi phí và khả năng ứng dụng, giúp người đọc có thêm cơ sở lựa chọn công cụ phù hợp.

Đọc thêm tại STALI
Cùng chủ đề
Zalo groupTelegram group