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
Post a Comment