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

Ba cấp độ kiến trúc cơ sở dữ liệu (ANSI/SPARC Three-Level Architecture)


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 Phone vào bảng Student (Conceptual) -> View Student_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 SQL SELECT * FROM Student chạ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ácSchemaSố lượngĐối tượngNội dung chính
ExternalView, User, SubschemaExternal SchemaNhiềuEnd-user, App DevView, SP, Permission, Subset data
ConceptualLogical, GlobalConceptual SchemaMộtDBA, ArchitectER Diagram, Table, PK/FK, Constraint
InternalPhysical, StorageInternal SchemaMộtDBA, SysAdminFile, 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?

  1. 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).
  2. Bảo mật: External level che giấu cột nhạy cảm (lương, mật khẩu hash).
  3. Tái sử dụng: Conceptual schema ổn định, nhiều app/view dùng chung.
  4. 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.