DBMS: Three-schema architecture and Data independence

Trước hết, cần nhắc lại về 3 trong 4 tính chất quan trọng của một DBMS:
1. Lưu trữ database description (còn gọi là schema) để đạt được tính self-describing (có nghĩa là bản thân DBMS khi được đưa đến cho người dùng thì đã có đầy đủ dữ liệu và mô tả cấu trúc của tập dữ liệu đó, giúp người dùng có cái nhìn toàn diện về tập dữ liệu để có thể dễ dàng sử dụng).
2. Tách biệt program và data, tức data abstraction. Tính chất này bao gồm program-data independence và program-operation independence.
Để làm rõ các tính chất này, cùng nhìn lại vấn đề mà các hệ thống cũ đã gặp phải trong quá khứ. Trước đây, thông tin về dữ liệu được lưu trữ ngay trong application program. Và khi cần thay đổi cấu trúc, thông tin dữ liệu thì phải viết lại chương trình. Còn với DBMS, cấu trúc của tập dữ liệu sẽ được lưu trong DBMS catalog, tách biệt hoàn toàn với program. Như vậy thì 2 module program và DBMS sẽ hoạt động độc lập, những thay đổi về data sẽ được thực hiện trên DBMS mà không ảnh hưởng đến program. Ta gọi tính chất này là program-data independence.
Tính chất thứ hai, program-operation independence, đề cập đến interface và implementation. Có một số database system cho phép định nghĩa operation (còn gọi là function hoặc method) như là một thành phần của database definitions. Operation sẽ bao gồm hai phần là: interface (còn gọi là signature) bao gồm các tên tác vụ (operation name) và kiểu dữ liệu của các tham số (data types of arguments/parameters); implementation (còn gọi là method) tức là chi tiết hiện thực của operation này. Đối với user application program, họ chỉ cần quan tâm và làm việc với interface mà không cần quan tâm nội dung chi tiết trong implementation. Và việc thay đổi, chỉnh sửa implementation cũng không ảnh hưởng đến interface.
3. Đưa ra nhiều góc nhìn với database, tùy thuộc vào loại user sẽ có view khác nhau. Chi tiết sẽ được đề cập trong phần architecture ngay sau đây.
Để đạt được ba tính chất trên, người ta sử dụng đến three-schema architecture (hình minh họa).

   
Three-schema architecture hướng đến mục tiêu tách biệt user application và physical database, nhằm cung cấp cho user những gì đầy đủ và cần thiết để làm việc với database (thiếu là sai, mà dư thì là dở). Ngay như trong cái tên, kiến trúc này được chia thành ba tầng, bắt đầu từ dưới lên:
1. Internal schema (ở internal level) mô tả cách dữ liệu được lưu trữ thực sự ở tầng vật lý như thế nào.
2. Conceptual schema (ở conceptual level) mô tả cấu trúc tập dữ liệu mà chúng ta hay được thấy dưới dạng các diagram. Tại đây, các thông tin lưu trữ vật lý không được thể hiện, mà thay vào đó là entities, data types, relationships, user operations và constraint.
3. External schemas/user views (ở external level/view level) chỉ mô tả một phần dữ liệu cần thiết cho mỗi loại user, và ẩn đi các nội dung còn lại trong database.

Một trong những ưu điểm của kiến trúc trên có thể kể đến là data independence, đề cập đến việc thay đổi schema tại một tầng nào đó mà không ảnh hưởng đến schema của tầng trên. Vì có ba tầng nên sẽ có hai loại data independence:
1. Logical data independence: Khi cần thay đổi conceptual schema (ví dụ như cần thay đổi cho phù hợp với yêu cầu nghiệp vụ mới so với thiết kế ban đầu) thì không cần phải thay đổi external schema.
2. Physical data independence: Ví dụ như khi cần thay đổi cách tổ chức file ở tầng vật lý, thì không ảnh hưởng đến tầng conceptual, do đó cũng không ảnh hưởng đến tầng external.

Tham khảo: Fundamentals of Database Systems (7th edition) - Ramez Elmasri, Shamkant B. Navathe.

Comments

Popular posts from this blog

[Kiến trúc máy tính] Phần 1: Từ tín hiệu sóng điện từ đến phần mềm máy tính

Chặng đường thứ nhất: Toán học và khát khao

Hợp và tan