Một khung nhỡn dữ liệu là một cửa sổ động theo nghĩa là nú phỏn ỏnh cỏc hoạt động cập nhật trờn cơ sở dữ liệu, là một quan hệ ảo được định nghĩa như là một kết quả truy vấn trờn quan hệ cơ sở hoặc trờn cỏc quan hệ trung gian. Quản lý khung nhỡn cú tỏc dụng bảo đảm
được tớnh an tồn dữ liệụ Nú cung cấp một cỏch nhỡn tổng quỏt và trực diện nhất về cỏc
thao tỏc đựoc thực hiện trờn CSDL. Người sử dụng chỉ được phộp truy nhập CSDL qua khung nhỡn, khơng thể nhỡn thấy hoặc khụng thể thao tỏc trờn cỏc dữ liệu ẩn, vỡ vậy dữ liệu
được bảo vệ.
4.2.1 Khung nhỡn trong cỏc hệ quản trị cơ sử dữ liệu tập trung
Một khung nhỡn là một quan hệ được dẫn xuất từ cỏc quan hệ nguồn như kết quả của một cõu truy vấn. Khung nhỡn được định nghĩa bằng cỏch gỏn tờn của khung cho cõu truy vấn.
Vớ dụ 4.1: Xột cõu truy vấn sau:
CREAT VIEW SYSAN(ENO,ENAME) AS SELECT ENO, ENAME
FROM EMP
WHERE TITLE = “Syst. Anal,” 4
Kết quả cõu truy vấn là định nghĩa một khung nhỡn, một quan hệ gỏn bằng tờn SYSAN gồm cú cỏc thuộc tớnh ENO và ENAME và cỏc bộ là tờn của cỏc phõn tớch viờn hệ thống “Syst. Anal,.” và lưu vào bộ nhớ.
Khung nhỡn SYSAN là quan hệ ảo trung gian, vỡ vậy cú thể thao tỏc cõu truy vấn bất kỳ cú liờn quan đến quan hệ này:
Vớ dụ 4.2: Tỡm tờn của cỏc phõn tớch viờn hệ thống cựng với mó dự ỏn mà họ tham gia
và nhiệm vụ của họ. Cõu truy vấn SQL cú liờn quan đến khung nhỡn SYSAN như sau: SELECT ENAME, PNO, RESP
FROM ASG, SYSAN
WHERE SYSAN.ENO=ASG.ENO ENO ENAME TITLE
E1 J.Doe Elect.Eng E2 M.Smith Syst Anal E2 M.Smith Syst Anal E3 ẠLee Mech.Eng E3 ẠLee Mech.Eng E4 J.Miller Programmer E5 B.Casey Syst.Anal E6 L.Chu Elect.Eng E7 R.David Mech.Eng E8 J.Jones Syst.Anal EMP ENO ENAME E2 M.Smith E5 B.Casey E8 J.Jones SYSAN
(a) Quan hệ gốc (b) Khung nhỡn Hỡnh 4.1 Quan hệ kết quả truy vấn tương ứng với khung nhỡn
ENO PNO RESP DUR E1 P1 Manager 12 E2 P1 Analyst 24 E2 P2 Analyst 6 E3 P3 Consultant 10 E3 P4 Engineer 48 E4 P2 Programmer 18 E5 P2 Manager 24 E6 P4 Manager 48 E7 P3 Engineer 36 E8 P3 Manager 40 ASG
Cú thể hiệu chỉnh cõu truy vấn trong thớ dụ 4.2 bằng cỏch cỏc biến chạy trờn cỏc quan hệ cú sở và lượng từ hoỏ truy vấn được nối với lượng từ hố khung nhỡn.
SELECT ENAME, PNO, RESP FROM ASG, EMP
WHERE EMP.ENO = ASG.ENO AND TITLE = “Syst. Anal,”
Khung nhỡn được sử dụng để hạn chế người sử dụng truy xuất cơ sở dữ liệu, chỉ cho
phộp truy xuất phạm vi dữ liệu nhất định.
Vớ dụ 4.3: Xột cõu truy vấn sau:
CREAT VIEW ESAME AS SELECT *
FROM EMP E1, EMP E2 WHERE E1.TITLE = E2.TITLE
AND E1.ENO = USER
Khung nhỡn ESAM chỉ cho phộp người sử dụng truy xuất thụng tin của nhõn viờn cú cựng nhiệm vụ. Trong định nghĩa khung nhỡn ESAM, ký tự “*” nghĩa là tất cả cỏc thuộc tớnh trong quan hệ EMP và cỏc biến E1 và E2 được gỏn tờn cho quan hệ EMP thành hai qiuan hệ E1 và E2, biểu diễn phộp kết nối E1 và E2.trờn TITLE nhiệm vụ như nhaụ Chẳng hạn cõu truy vấn sau sẽ trả về quan hệ kết quả bao gồm cỏc nhõn viờn cú cựng nhiệm vục với J. Doe (hỡnh 4.3). Nếu người tạo ra ESAM là một kỹ sư điện thỡ kết quả
khung nhỡn biểu thị cỏc nhõn viờn cũng là kỹ sư điện. SELECT *
FROM ESAM
ENAME PNO RESP M.Smith P1 Analyst M.Smith P2 Analyst B.Casey P3 Manager J.Jones P4 Manager
Hỡnh 4.2 Kết quả truy vấn sử dụng khung nhỡn
ENO ENAME TITLE E1 J.Doe Elect.Eng E6 L.Chu Elect.Eng Hỡnh 4.3 Kết quả vấn tin khung nhỡn ESAM
4.2.2 Cập nhật qua khung nhỡn
Khung nhỡn cú thể được định nghĩa bằng cỏc cõu truy vấn bao gồm cỏc phộp chiếu, chọn, kết nối hoặc bằng cỏc hàm gộp nhúm...và được truy vấn như là một quan hệ cơ sở. Cập nhật qua khung nhỡn được xử lý tự động nếu chỳng được lan truyền chớnh xỏc đến cỏc quan hệ cơ sở. Cú hai loại khung nhỡn: loại khung nhỡn cập nhật được và loại khung nhỡn khụng cập nhật được. Khung nhỡn cập nhật được là khung nhỡn nếu khi thực hiện cỏc phộp cập nhật trờn nú sẽ lan truyền chớnh xỏc đến cỏc quan hệ cơ sở mà khơng cú sự nhầm lẫn nàọ Khung nhỡn SYSAN trong cỏc thớ dụ ở trờn là khung nhỡn cập nhật được, vỡ khi thực hiện việc chốn thờn thụng tin về một phõn tớch viờn mới vào khung nhỡn SYSAN, hệ thống sẽ ỏnh xạ thành thao tỏc chốn thụng tin về một nhõn viờn mới vào quan hệ EMP. Nếu cỏc thuộc tớnh bị che khuất khung nhỡn, chỳng cú thể nhận giỏ trị khụng hoặc null.
Cỏc hệ thống hỗ trợ cập nhật được qua khung nhỡn rất hạn chế. Cỏc khung nhỡn chỉ cú thể cập nhật được khi chỳng được dẫn xuất từ một quan hệ duy nhất bằng phộp chọn hoặc phộp chiếụ Cỏc khung nhỡn được định nghĩa bởi phộp kết nối hay cỏc phộp gộp nhúm
thường khụng thuộc loại cập nhật được. Xột khung nhỡn sau đõy:
CREAT VIEW EG(ENAME, RESP) AS SELECT ENAME, RESP
FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO
Khung nhỡn EG thuộc laọi khung nhỡn khung cập nhật được. Vỡ khi thực hiện phộp xoỏ bộ <Smith, Syst. Anal> qua khung nhỡn EG sẽ khụng lan truyền được, bởi vỡ xoỏ “Smith” trong quan hệ EMP hoặc xoỏ “Syst, Anal”” trong quan hệ ASG là cú nghĩa và rỗ ràng, nhưng hệ thống khụng thể phõn biệt như thế nào là đỳng, lệnh xố khơng rừ ràng.
Khung nhỡn được dẫn xuất từ phộp kết nối cú thể là khung nhỡn cập nhật được nếu cú chứa khoỏ của cỏc quan hệ cơ sở.
4.2.3 Khung nhỡn trong cỏc hệ quản trị cơ sở dữ liệu phõn tỏn
Định nghĩa khung nhỡn trong cỏc hệ quản trị cơ sở dữ liệu phõn tỏn giống như trong cỏc
hệ quản trị cơ sở dữ liệu tập trung. Tuy nhiờn, trong cỏc hệ thống phõn tỏn, cỏc quan hệ cơ sở dẫn xuất là cỏc mảnh quan hệ được lưu trữ trờn cỏc vị trớ khỏc nhaụ Vỡ vậy định nghĩa khung nhỡn, tờn khung nhỡn , cấu trỳc của khung nhỡn và cõu truy vấn truy xuất của cỏc mảnh được sử dụng làm cỏc quan hệ cơ sở trong cỏc ứng dụng phải được lưu trữ trong cỏc thư mục mụ tả quan hệ cơ sở. Phụ thuộc vào mức độ tự trị của vị trớ, cỏc định nghĩa khung nhỡn cú thể tập trung tại một vị trớ, hoặc được nhõn bản một phần hoặc toàn bộ. Trong cỏc trường hợp, thụng tin liờn kết khung nhỡn với vị trớ định nghĩa của nú phải được nhõn bản. Nếu định nghĩa khung nhỡn khơng cú tại vị trớ của cõu truy vấn thỡ phải truy xuất từ xa đến vị trớ cú định nghĩa khung nhỡn.
Ánh xạ một cõu truy vấn được diễn tả theo khung nhỡn thành một cõu truy vấn được diễn tả theo quan hệ cơ sở giống như trong cỏc hệ thống tập trung. Nghĩa là qua phương phỏp
hiệu chỉnh. Vỡ vậy lượng từ hoỏ dựng để định nghĩa khung nhỡn được lấy từ thư mục phõn tỏn, được trộn với cõu truy vấn thành cõu truy vấn theo cỏc quan hệ cơ sở. Một cõu truy vấn như vậy được gọi là cõu truy vấn phõn tỏn.
Khung nhỡn trong cỏc hệ thống phõn tỏn được dẫn xuất từ cỏc quan hệ phõn tỏn, vỡ vậy cú thể cú chi phớ cao khi ước lượng. Một khung nhỡn cú trhể cú nhiều người cựng sử dụng, vỡ vậy cần đưa ra cỏc giải phỏp nhằm tối ưu hoỏ dẫn xuất khung nhỡn.