Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> SQL

Các thuật ngữ cơ bản trong RDBMS (RDBMS Terminologies)


Nắm vững thuật ngữ RDBMS là nền tảng để giao tiếp, thiết kế, thao tác và hiểu tài liệu cơ sở dữ liệu quan hệ.

1. Database (Cơ sở dữ liệu)

Tập hợp có tổ chức các bảng (tables), view, index, stored procedure, function, trigger... liên quan đến một domain/ứng dụng.

Ví dụ: Database "University" chứa bảng Student, Course, Enrollment, Professor...

2. Table / Relation (Bảng / Quan hệ)

Cấu trúc dữ liệu 2 chiều: Hàng (Row/Tuple) và Cột (Column/Attribute). Mỗi bảng đại diện cho một Entity Type (Loại thực thể) hoặc Relationship Type.

Bảng Student:
+-----------+------------+-------------+
| StudentId | StudentName| StudentRank |
+-----------+------------+-------------+
| 052       | Tom        | 1           |
| 035       | David      | 2           |
| 077       | John       | 3           |
+-----------+------------+-------------+

3. Column / Attribute / Field (Cột / Thuộc tính / Trường)

Đặc tính mô tả cho entity. Mỗi cột có: Tên, Kiểu dữ liệu (Data Type), Constraint (NOT NULL, DEFAULT, CHECK...).

StudentName: VARCHAR(100) NOT NULL

4. Row / Tuple / Record (Hàng / Tuple / Bản ghi)

Một instance (thể hiện) cụ thể của Entity. Tập hợp giá trị của tất cả các cột cho một đối tượng.

(052, 'Tom', 1) là một tuple/record của bảng Student.

5. Primary Key (Khóa chính - PK)

  • Duy nhất xác định một hàng trong bảng.
  • NOT NULL, UNIQUE.
  • Chỉ có **một** PK mỗi bảng (có thể composite).
  • Ví dụ: ProjectID trong bảng Project.
Project Table:
+---------+---------------------------+
|ProjectID| ProjectName               |
+---------+---------------------------+
| P01     | Cluster Grouping System   |
| P02     | Hospital Management System|
+---------+---------------------------+
PK = ProjectID

6. Foreign Key (Khóa ngoại - FK)

  • Tạo liên kết (relationship) giữa 2 bảng.
  • Cột (hoặc tổ hợp cột) trong bảng con (Child) tham chiếu PK (hoặc UK) của bảng cha (Parent).
  • Đảm bảo Referential Integrity.
Employee Table:          Department Table:
+--------+--------+--------+    +---------+------------+----------+
| EmpID  |EmpName |DeptID  |    |DeptID   |DeptName    |DeptZone  |
+--------+--------+--------+    +---------+------------+----------+
| E001   | An     | D01    |    | D01     | IT         | Ha Noi   |
| E002   | Binh   | D02    |    | D02     | HR         | HCM      |
+--------+--------+--------+    +---------+------------+----------+
FK: Employee.DeptID → Department.DeptID (PK)

7. Super Key (Khóa siêu)

  • Tập hợp thuộc tính (1 hoặc nhiều) **duy nhất xác định** tuple.
  • Là **Superset** của Candidate Key (có thể chứa thuộc tính thừa).
  • Ví dụ: Nếu {Student_ID} là CK, thì {Student_ID, Student_Name}, {Student_ID, Student_Email}... đều là Super Key.

8. Candidate Key (Khóa ứng viên)

  • Super Key **tối thiểu** (Minimal Super Key) - không bỏ bớt thuộc tính nào mà vẫn duy nhất.
  • Mỗi bảng có ≥ 1 Candidate Key.
  • Một trong số đó được chọn làm Primary Key.
  • Các Candidate Key còn lại → Alternate Key / Secondary Key.

9. Composite Key (Khóa tổ hợp)

  • Primary Key (hoặc Candidate Key) gồm **2 hoặc nhiều cột**.
  • Ví dụ: PRIMARY KEY (OrderID, ProductID) trong bảng OrderDetail.
  • Khác với Composite Index (index trên nhiều cột, không nhất thiết là PK).

10. Surrogate Key (Khóa đại diện / Khóa thay thế)

  • PK do hệ thống sinh (Auto-increment, Sequence, UUID, Snowflake).
  • Không có ý nghĩa nghiệp vụ.
  • Thay thế Natural Key (Business Key) làm PK để ổn định, hiệu suất.

11. Alternate Key / Secondary Key (Khóa thay thế / Khóa phụ)

  • Candidate Key **không được chọn** làm Primary Key.
  • Vẫn Unique, NOT NULL (thường), dùng cho lookup, index, business rule.
  • KHÔNG phải Foreign Key.

12. Normalization (Chuẩn hóa)

  • Quy trình tổ chức bảng để giảm redundancy (dư thừa), tránh anomaly (insert/update/delete anomaly).
  • Các dạng: 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF.

13. Transaction (Giao dịch)

  • Đơn vị công việc logic: Toàn thành hoàn toàn (COMMIT) hoặc hoàn tác hoàn toàn (ROLLBACK).
  • Đặc tính ACID: Atomicity, Consistency, Isolation, Durability.

14. Index (Chỉ mục)

  • Cấu trúc dữ liệu tăng tốc truy vấn (B-tree, Hash, Bitmap, GIN, GiST...).
  • Trade-off: Tăng tốc READ, chậm WRITE (insert/update/delete), tốn storage.

15. View (Khung nhìn)

  • Bảng ảo (Virtual Table) định nghĩa bằng query SELECT.
  • Không lưu dữ liệu vật lý (trừ Materialized View).
  • Dùng cho: Security (che cột), Simplify (gộp join phức tạp), Backward compatibility.

Bảng tóm tắt mối quan hệ khóa

Khái niệmMối quan hệ
Super KeyBao chứa Candidate Key
Candidate KeySuper Key tối thiểu → Chọn 1 làm PK, các cái kia thành Alternate Key
Primary KeyCandidate Key được chọn → NOT NULL, UNIQUE, 1/bảng
Alternate/Secondary KeyCandidate Key không được chọn làm PK
Foreign KeyTham chiếu PK/UK của bảng khác
Surrogate KeySystem-generated PK (thường là ID/UUID)
Composite KeyPK/CK gồm ≥ 2 cột