Chương 5: View
1. Khái niệm view
       Views là một table ảo, được dùng để lưu trữ một truy vấn (query) đã định nghĩa
 trước thành một đối tượng trong database và có thể dùng lại sau này. View là một cách
 để che dấu những dữ liệu của một thiết kế database và cung cấp các thông tin mà không
 đòi hỏi người dùng phải biết cách viết hoặc thực hiện các lệnh Transact-SQL. Chúng ta
 có thể đặt tên và lưu trữ bất kỳ một lệnh SELECT nào thành một VIEW. Lệnh SELECT
 này có thể được trích từ một hoặc nhiều table hoặc view có trước đó.




 a) Lợi ích của view
 Tập trung vào dữ liệu cần thiết
       Views tạo ra một môi trường mà chỉ cho phép user truy xuất các thông tin trong
 quyền hạn của user, còn các dữ liệu không cần thiết, hoặc cần bảo mật hoặc không phù
 hợp với mục địch yêu cầu sử dụng sẽ bị che/ẩn. User có thể thao tác, sử dụng view như
 là một table. Trong một số trường hợp thuộc quyền hạn cũng như một số hạn chế, Users
 có thể thao tác (modify) dữ liệu mà view xuất ra.
 Che dấu sự phức tạp của database
       Views che đậy tính phức tạp của thiết kế database đối với user, qua đó, developers
 có thể thay đổi thiết kế database mà không ảnh hưởng đến sự tương tác của user với
 database. Các query phức tạp, ví dụ như các query được phân bố tới các dữ liệu hỗn
 hợp, cũng có thể che đậy thông qua view, user truy vấn view thay vì phải viết và thực
 hiện script.
 Đơn giản hoá việc quản lý quyền
       Thay vì phải gán quyền cho user để truy vấn đến một một số field nào đó trong các
 table, chúng ta có thể gán quyền cho user truy vấn dữ liệu thông qua view.
 views only.
Hoàn thiện tính thực hiện (Improve Performance)
       Views cho phép chúng ta lưu trữ kết quả của một query phức tạp và các query
 khác có thể dùng lại kết quả này . View cũng cung cấp cho chúng ta cách để chia dữ liệu
 thành nhiều phần và các phần có thể được đặt trên các máy tính khác nhau.
 Tổ chức dữ liệu để xuất ra cho các ứng dụng khác
 Chúng ta có thể tạo view dựa trên một query phức tạp được kết nối từ hai hay nhiều
 tables rồi xuất kết quả cho một ứng dụng khác.
 b) Tạo view
   Để tạo view chúng ta sử dụng lệnh CREATE VIEW theo cú pháp sau:
   CREATE VIEW view_name [(column [,n ])]
   [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA} [,n ]]
   AS
   select_statement
   [WITH CHECK OPTION]
 Trong đó,
 column: là danh sách tên các field của view. Mỗi tên field cách nhau dấu phẩy.
 WITH CHECK OPTION: ép buộc việc cậo nhật dữ liệ thông qua view phải thoả điều
 kiện trong câu lệnh select của view.
 WITH ENCRYPTION: Khi chúng ta tạo một view, đoạn mã lệnh (text) để tạo ra view
 sẽ được lưu vào table syscomments. Khi chúng ta dùng tham số WITH ENCRYPTION
 thì nội dung lưu vào table syscomments sẽ bị mã hoá.
 SCHEMABINDING: Ràng buộc view với schema. Khi SCHEMABINDING được chỉ
 định, lệnh select_statement phải bao gồm 2 phần tên (owner.object) của tables, views,
 hoặc các user-defined functions mà view tham chiếu.
 Các view hoặc table có tham gia trong view được tạo với tham số SCHEMABINDING
 thì không thể bị xoá trừ khi view bị xoá hoặc thay đổi để không còn tham chiếu đến đối
 tượng cần xoá nữa.
 VIEW_METADATA: chỉ định rằng SQL Server sẽ trả về DBLIB, ODBC, và OLE DB
 APIs các thông tin metadata về view.
2. Quản trị view
       Cũng tương tư như các đối tượng khác trong database, để sửa và xoá view, chúng
 ta cũng dùng lệnh Alter view và Drop view.
 Cú pháp lệnh ALTER VIEW như sau:
   ALTER VIEW view_name [(column[,...n])]
   AS    select_statement
[WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}]
   [WITH CHECK OPTION ]
3. Những lưu ý khi tạo view
      Chúng ta chỉ tạo được view trong database hiện hành mặc dù dữ liệu của view
 được lấy từ các table hoặc view của các database khác.
 Query trong định nghĩa view không thể chứa mệnh đề ORDER BY mà không có TOP,
 COMPUTE, hoặc COMPUTE BY hoặc từ khoá INTO.
 View không thể truy xuất đến dữ liệu của table tạm
 Bình thường, view có thể được dùng để cập nhật (thêm, xoá và sửa) dữ liệu.

Qtu.vn sql - chuong 5

  • 1.
    Chương 5: View 1.Khái niệm view Views là một table ảo, được dùng để lưu trữ một truy vấn (query) đã định nghĩa trước thành một đối tượng trong database và có thể dùng lại sau này. View là một cách để che dấu những dữ liệu của một thiết kế database và cung cấp các thông tin mà không đòi hỏi người dùng phải biết cách viết hoặc thực hiện các lệnh Transact-SQL. Chúng ta có thể đặt tên và lưu trữ bất kỳ một lệnh SELECT nào thành một VIEW. Lệnh SELECT này có thể được trích từ một hoặc nhiều table hoặc view có trước đó. a) Lợi ích của view Tập trung vào dữ liệu cần thiết Views tạo ra một môi trường mà chỉ cho phép user truy xuất các thông tin trong quyền hạn của user, còn các dữ liệu không cần thiết, hoặc cần bảo mật hoặc không phù hợp với mục địch yêu cầu sử dụng sẽ bị che/ẩn. User có thể thao tác, sử dụng view như là một table. Trong một số trường hợp thuộc quyền hạn cũng như một số hạn chế, Users có thể thao tác (modify) dữ liệu mà view xuất ra. Che dấu sự phức tạp của database Views che đậy tính phức tạp của thiết kế database đối với user, qua đó, developers có thể thay đổi thiết kế database mà không ảnh hưởng đến sự tương tác của user với database. Các query phức tạp, ví dụ như các query được phân bố tới các dữ liệu hỗn hợp, cũng có thể che đậy thông qua view, user truy vấn view thay vì phải viết và thực hiện script. Đơn giản hoá việc quản lý quyền Thay vì phải gán quyền cho user để truy vấn đến một một số field nào đó trong các table, chúng ta có thể gán quyền cho user truy vấn dữ liệu thông qua view. views only.
  • 2.
    Hoàn thiện tínhthực hiện (Improve Performance) Views cho phép chúng ta lưu trữ kết quả của một query phức tạp và các query khác có thể dùng lại kết quả này . View cũng cung cấp cho chúng ta cách để chia dữ liệu thành nhiều phần và các phần có thể được đặt trên các máy tính khác nhau. Tổ chức dữ liệu để xuất ra cho các ứng dụng khác Chúng ta có thể tạo view dựa trên một query phức tạp được kết nối từ hai hay nhiều tables rồi xuất kết quả cho một ứng dụng khác. b) Tạo view Để tạo view chúng ta sử dụng lệnh CREATE VIEW theo cú pháp sau: CREATE VIEW view_name [(column [,n ])] [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA} [,n ]] AS select_statement [WITH CHECK OPTION] Trong đó, column: là danh sách tên các field của view. Mỗi tên field cách nhau dấu phẩy. WITH CHECK OPTION: ép buộc việc cậo nhật dữ liệ thông qua view phải thoả điều kiện trong câu lệnh select của view. WITH ENCRYPTION: Khi chúng ta tạo một view, đoạn mã lệnh (text) để tạo ra view sẽ được lưu vào table syscomments. Khi chúng ta dùng tham số WITH ENCRYPTION thì nội dung lưu vào table syscomments sẽ bị mã hoá. SCHEMABINDING: Ràng buộc view với schema. Khi SCHEMABINDING được chỉ định, lệnh select_statement phải bao gồm 2 phần tên (owner.object) của tables, views, hoặc các user-defined functions mà view tham chiếu. Các view hoặc table có tham gia trong view được tạo với tham số SCHEMABINDING thì không thể bị xoá trừ khi view bị xoá hoặc thay đổi để không còn tham chiếu đến đối tượng cần xoá nữa. VIEW_METADATA: chỉ định rằng SQL Server sẽ trả về DBLIB, ODBC, và OLE DB APIs các thông tin metadata về view. 2. Quản trị view Cũng tương tư như các đối tượng khác trong database, để sửa và xoá view, chúng ta cũng dùng lệnh Alter view và Drop view. Cú pháp lệnh ALTER VIEW như sau: ALTER VIEW view_name [(column[,...n])] AS select_statement
  • 3.
    [WITH {ENCRYPTION |SCHEMABINDING | VIEW_METADATA}] [WITH CHECK OPTION ] 3. Những lưu ý khi tạo view Chúng ta chỉ tạo được view trong database hiện hành mặc dù dữ liệu của view được lấy từ các table hoặc view của các database khác. Query trong định nghĩa view không thể chứa mệnh đề ORDER BY mà không có TOP, COMPUTE, hoặc COMPUTE BY hoặc từ khoá INTO. View không thể truy xuất đến dữ liệu của table tạm Bình thường, view có thể được dùng để cập nhật (thêm, xoá và sửa) dữ liệu.