Kiến trúc ba cấp độ (Three-Level Architecture) được ANSI/SPARC (American National Standards Institute / Standards Planning and Requirements Committee) chuẩn hóa năm 1975. Mục tiêu: **Tách biệt góc nhìn dữ liệu** để đạt được **Data Independence (Độc lập dữ liệu)** - lý tưởng của DBMS.
Sơ đồ ba cấp độ
+---------------------------+
| External Level (View) | ← Người dùng cuối, Application
| (Nhiều External View) |
+------------+--------------+
| Mapping (External/Conceptual)
+------------v--------------+
| Conceptual Level (Logical)| ← DBA, Data Architect
| (Global Schema - One) |
+------------+--------------+
| Mapping (Conceptual/Internal)
+------------v--------------+
| Internal Level (Physical)| ← DBA, System Admin
| (Physical Schema - One) |
+---------------------------+
|
v
Stored Database (Disk)
1. Internal Level (Cấp độ Pvật lý / Internal / Physical)
- Mô tả: Cách dữ liệu **thực sự được lưu trữ** trên đĩa cứng.
- Nội dung: Cấu trúc file, index (B-tree, Hash, Bitmap), nén (compression), mã hóa (encryption), phân vùng (partitioning), clustering, thứ tự bản ghi, block size, page layout.
- Schema: Internal Schema (Physical Schema) - chỉ có **một** cho toàn database.
- Người liên quan: DBA, System Admin, Storage Engineer.
- Mục tiêu: Tối ưu hiệu suất I/O, lưu trữ, concurrency control.
2. Conceptual Level (Cấp độ Logic / Conceptual / Global)
- Mô tả: **Cấu trúc logic toàn cục** của database: Entity, Attribute, Relationship, Constraint (PK, FK, Unique, Check), View definition, Security policy (grant/revoke).
- Schema: Conceptual Schema (Logical Schema / Global Schema) - chỉ có **một** cho toàn database.
- Người liên quan: DBA, Data Architect, Data Modeler.
- Đặc điểm: Trừu tượng hóa chi tiết vật lý. Không quan tâm dữ liệu lưu như nào trên đĩa, chỉ quan tâm "dữ liệu là gì, liên hệ như thế nào".
- Mục tiêu: Cung cấp góc nhìn chung, nhất quán cho toàn tổ chức.
3. External Level (Cấp độ Ngoại / View / User)
- Mô tả: **Góc nhìn của từng nhóm người dùng / ứng dụng** cụ thể. Chỉ thấy tập con dữ liệu liên quan, ẩn đi phần không cần thiết hoặc nhạy cảm.
- Schema: External Schema (View Schema / Subschema) - có **nhiều** (mỗi user group/app một view).
- Đối tượng: View, Stored Procedure, Synonym, Permission (GRANT/REVOKE).
- Người liên quan: End-user, Application Developer, Report Writer.
- Mục tiêu: Bảo mật (che cột nhạy cảm), đơn giản hóa (gộp join phức tạp thành view), tùy biến định dạng.
Hai loại Data Independence (Độc lập dữ liệu) - Trái tim của kiến trúc
Logical Data Independence (Độc lập Logic)
- Khả năng: Thay đổi **Conceptual Schema** (thêm/bớt bảng, cột, constraint, relationship) **KHÔNG** làm thay đổi **External Schema** (View, App code).
- Cơ chế: Mapping External/Conceptual tự điều chỉnh. View được định nghĩa bằng query trên conceptual schema.
- Ví dụ: Thêm cột
Phonevào bảngStudent(Conceptual) -> ViewStudent_Basic_View (ID, Name)không ảnh hưởng. - Khó khăn: Đổi tên/xóa cột đang dùng trong View -> View bị lỗi. Cần ALTER VIEW.
Physical Data Independence (Độc lập Vật lý)
- Khả năng: Thay đổi **Internal Schema** (tạo index, đổi file organization, partitioning, compression, move tablespace) **KHÔNG** làm thay đổi **Conceptual Schema**.
- Cơ chế: Mapping Conceptual/Internal che giấu chi tiết vật lý. SQL truy vấn logic không đổi.
- Ví dụ: Tạo index trên
Student_Name, chuyển bảng sang partitioned table, nén dữ liệu -> Ứng dụng SQLSELECT * FROM Studentchạy y hệt, chỉ nhanh hơn. - Độ khó: Dễ đạt được hơn Logical Independence (DBMS hiện đại làm tốt).
Tóm tắt so sánh
| Cấp độ | Tên khác | Schema | Số lượng | Đối tượng | Nội dung chính |
|---|---|---|---|---|---|
| External | View, User, Subschema | External Schema | Nhiều | End-user, App Dev | View, SP, Permission, Subset data |
| Conceptual | Logical, Global | Conceptual Schema | Một | DBA, Architect | ER Diagram, Table, PK/FK, Constraint |
| Internal | Physical, Storage | Internal Schema | Một | DBA, SysAdmin | File, Index, Page, Compression, Encryption |
Thực tế trong DBMS hiện đại
- PostgreSQL, MySQL, SQL Server, Oracle: Hỗ trợ đầy đủ 3 cấp độ qua System Catalog, View, Tablespace, Index, Partition.
CREATE VIEW= External Schema.CREATE TABLE,ALTER TABLE, Constraint = Conceptual Schema.CREATE INDEX,TABLESPACE,PARTITION,COMPRESSION= Internal Schema.- Mapping được DBMS quản lý tự động (Data Dictionary / System Catalog).
Tại sao quan trọng?
- Giảm thiểu tác động thay đổi: Thay đổi vật lý không đụng logic, thay đổi logic không đụng app (nếu thiết kế view tốt).
- Bảo mật: External level che giấu cột nhạy cảm (lương, mật khẩu hash).
- Tái sử dụng: Conceptual schema ổn định, nhiều app/view dùng chung.
- Vận hành: DBA tune performance (Internal) không lo break App (External).
Kết luận: Kiến trúc 3 cấp ANSI/SPARC là nền tảng lý thuyết của mọi DBMS quan hệ hiện đại. Mục tiêu tối thượng: **Physical & Logical Data Independence** - cho phép thay đổi "cách lưu" và "cấu trúc logic" mà không làm hỏng ứng dụng.