Làm mới gia tăng Incremental Refresh: Chỉ cập nhậtnhững phần dữ liệu thay đổi kể từ lần làm mới trước đó.Điều này yêu cầu cơ sở dữ liệu phải theo dõi nhữngthay đổi trong các bảng gốc v
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM
Đà Nẵng, 2024
Trang 2
Đà Nẵng, Ngày Tháng Năm 202 Giảng viên hướng dẫn
Trang 3MỤC LỤC
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI
1 Khái niệm
2 Cấu trúc và cơ chế hoạt động
2.1 Cấu trúc khung nhìn thực 1
2.2 Cơ chế hoạt động 2
3 Trường hợp sử dụng KNT
3.1 Truy vấn thường xuyên được sử dụng 4
3.2 Đơn giản hóa truy vấn phức tạp 5
3.3 Tương tác dữ liệu từ xa 5
3.4 Hỗ trợ truy vấn Kỹ thuật truy vấn ngữ nghĩa 5
4 Lợi ích khi dùng KNT (Materialized View)
4.1 Tối ưu hóa truy vấn 5
4.2 Đơn giản hóa kho lưu trữ dữ liệu 5
4.3 Tính nhất quán 6
4.4 Cải thiện kiểm soát truy cập 6
5 Quy trình tạo khung nhìn thực
5.1 Xác định truy vấn SQL 6
5.2 Chọn loại Khung nhìn thực 7
5.3 Tạo Khung nhìn thực 7
5.4 Cập Nhật, Bổ Sung, Xóa Thông Qua Khung Nhìn 8
5.5 Sửa Khung Nhìn 9
5.6 Xoá khung nhìn 9
Trang 4CHƯƠNG II: HQT CSDL SQL SERVER HỖ TRỢ KNT
1 Hệ quản trị cơ sở dữ liệu Microsoft Sql Server
1.1 Khái niệm
1.2 Kiến trúc SQL Server 10
1.3 Các tính năng chính của SQL Server 11
1.4 Các phiên bản SQL Server 11
1.5 Ưu điểm của SQL Server 12
1.6 Nhược điểm của SQL Server 12
2 Khung nhìn chỉ mục hóa trong Sql Server (Indexed view)
2.1 Khái niệm 13
2.2 Trường hợp dùng khung nhìn chỉ mục hóa 13
2.3 Tạo khung nhìn chỉ mục 13
2.4 Ưu điểm 14
2.5 Nhược điểm 14
CHƯƠNG III: TẠO KNT THỰC CHO HQT QUẢN LÍ NHÂN VIÊN
1 Tạo View trong SQL
2 Ví dụ về View trong SQL
3 Tùy chọn With Check Option trong SQL
4 UPDATE một VIEW trong SQL
5 Chèn hàng vào View trong SQL
6 Xóa hàng từ VIEW trong SQL
7 Xóa View trong SQL
8 Những cách sử dụng View phổ biến trong SQL
2
Trang 59 Trình bày 1 thuật toán cập nhật
10 Phân tích thực nghiệm
KẾT LUẬN
DANH MỤC HÌNH ẢNH & BẢNG BIỂU Hình 1: Câu lệnh CREATE VIEW 11
Hình 2: Cú pháp sửa khung nhìn 13
Hình 3: Cú pháp xoá khung nhìn 13
Hình 4: Microsoft Sql Server 14
Bảng 1: Ví dụ về Indexed View 18
Bảng 2: NHANVIEN 20
Bảng 3: Bảng NHANVIEN sau khi sử dụng VIEW 21
Bảng 4: Bảng NHANVIEN sau khi được UPDATE 22
Bảng 5: Bảng NHANVEN sau khi xoá đi hàng TUOI = 22 23
Trang 6CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI
2 Cấu trúc và cơ chế hoạt động
2.1 Cấu trúc khung nhìn thực
Cấu trúc khung nhìn thực
Khung nhìn thực (materialized view) là một dạng bảng lưu trữ kết quả củamột truy vấn phức tạp Khác với khung nhìn logic (logical view) chỉ lưu trữđịnh nghĩa truy vấn, khung nhìn thực lưu trữ cả dữ liệu kết quả của truyvấn đó Điều này giúp giảm thiểu thời gian truy vấn dữ liệu từ các bảngnguồn mỗi khi cần sử dụng kết quả đó
4
Trang 7 Thành phần của khung nhìn thực:
o Định nghĩa truy vấn: Khung nhìn thực được xác định bằngmột truy vấn SQL, thường là các truy vấn phức tạp kết hợpnhiều bảng và phép tính
o Dữ liệu kết quả: Dữ liệu kết quả của truy vấn được lưu trữtrong một bảng vật lý trong cơ sở dữ liệu
2.2 Cơ chế hoạt động
Cập nhật và đồng bộ hóa
Quá trình duy trì tính nhất quán giữa khung nhìn thực và các bảng dữ liệugốc là một thách thức lớn Có một số chiến lược khác nhau để cập nhật vàđồng bộ hóa khung nhìn thực:
Chiến lược làm mới (Refresh Strategy):
Làm mới toàn phần (Full Refresh): Khung nhìn thựcđược làm mới bằng cách tái thực hiện toàn bộ truy vấnđịnh nghĩa Đây là cách đơn giản nhất nhưng tốn kém
về mặt tài nguyên và thời gian
Làm mới gia tăng (Incremental Refresh): Chỉ cập nhậtnhững phần dữ liệu thay đổi kể từ lần làm mới trước đó.Điều này yêu cầu cơ sở dữ liệu phải theo dõi nhữngthay đổi trong các bảng gốc và chỉ áp dụng các thay đổi
đó vào khung nhìn thực
Trang 8 Thời gian làm mới (Refresh Timing):
Làm mới tức thời (Immediate Refresh): Khung nhìn
thực được cập nhật ngay khi có thay đổi trong các bảnggốc Điều này đảm bảo dữ liệu luôn nhất quán nhưng cóthể ảnh hưởng đến hiệu suất hệ thống
Làm mới theo lịch (Scheduled Refresh): Khung nhìnthực được cập nhật vào các thời điểm định trước, chẳnghạn như hàng giờ hoặc hàng ngày Cách làm này giúpcân bằng giữa tính nhất quán và hiệu suất
Đồng bộ hóa dữ liệu
6
Trang 9Đồng bộ hóa khung nhìn thực là một vấn đề quan trọng để đảm bảo dữ liệuluôn nhất quán và chính xác Các phương pháp đồng bộ hóa bao gồm:
Log-based Synchronization: Sử dụng các log thay đổi (changelogs) để theo dõi và áp dụng các thay đổi từ bảng gốc vàokhung nhìn thực
Trigger-based Synchronization: Sử dụng các trigger để tựđộng cập nhật khung nhìn thực mỗi khi có thay đổi trong cácbảng gốc Phương pháp này thường phức tạp hơn nhưng cóthể đảm bảo tính nhất quán ngay lập tức
3.1 Truy vấn thường xuyên được sử dụng
Khung nhỉn thực phù hợp khi có các truy vấn phức tạp được thực hiện thườngxuyên trên một lượng lớn dữ liệu MV sẽ lưu trữ kết quả của truy vấn, giúp giảm thờigian thực thi truy vấn và cải thiện hiệu suất tổng thể
Ví dụ: Báo cáo doanh số bán hàng theo tháng, danh sách khách hàng tiềm năng, v.v
Trang 103.2 Đơn giản hóa truy vấn phức tạp
Khung nhìn thực có thể được sử dụng để đơn giản hóa các truy vấn phức tạp,giúp người dùng dễ dàng truy cập dữ liệu họ cần Thay vì viết các truy vấn phức tạp,người dùng có thể truy vấn MV một cách đơn giản
Ví dụ: Thay vì viết truy vấn phức tạp để tính toán tổng doanh số bán hàng theo sảnphẩm và khu vực, bạn có thể tạo MV lưu trữ thông tin này và truy vấn MV một cáchđơn giản
3.3 Tương tác dữ liệu từ xa
Trong hệ thống cơ sở dữ liệu phân tán, bạn có thể sử dụng Materialized View đểtối ưu hóa các truy vấn liên quan đến dữ liệu từ các máy chủ từ xa
3.4 Hỗ trợ truy vấn Kỹ thuật truy vấn ngữ nghĩa
Khung nhìn thực có thể được sử dụng để lưu trữ kết quả của các truy vấn KNT,giúp cải thiện hiệu suất và tính dễ sử dụng của các truy vấn này
Ví dụ: Thay vì thực hiện truy vấn KNT trực tiếp trên các bảng cơ sở, bạn có thể tạo
MV lưu trữ kết quả của truy vấn KNT và truy vấn MV để lấy dữ liệu
4 Lợi ích khi dùng KNT (Materialized View)
4.1 Tối ưu hóa truy vấn
Materialized View là một bảng dữ liệu trùng lặp được tạo bằng cách kết hợp dữliệu từ nhiều bảng hiện có để truy xuất dữ liệu nhanh hơn
Thay vì tính toán dữ liệu mỗi khi truy vấn, Materialized View lưu trữ kết quảcủa truy vấn vào bộ nhớ hoặc đĩa cứng Điều này giúp cải thiện hiệu suất truy vấn, đặcbiệt là trong các trường hợp có dữ liệu lớn và truy vấn phức tạp
4.2 Đơn giản hóa kho lưu trữ dữ liệu
8
Trang 11Materialized View cho phép bạn hợp nhất logic truy vấn phức tạp trong mộtbảng Điều này làm cho việc chuyển đổi dữ liệu và bảo trì mã hóa trở nên dễ dàng hơncho các nhà phát triển.
Nó cũng giúp quản lý các truy vấn phức tạp dễ dàng hơn và thiết lập tập dữ liệucon để giảm lượng dữ liệu cần sao chép trong chế độ xem
4.3 Tính nhất quán
Materialized View cung cấp một cái nhìn nhất quán về dữ liệu được ghi lại tạimột thời điểm cụ thể Bạn có thể định cấu hình tính nhất quán đọc trong chế độ xem cụthể hóa và tạo ra khả năng truy cập vào dữ liệu ngay cả trong môi trường nhiều ngườidùng
Nó cũng cung cấp quyền truy cập dữ liệu ngay cả khi dữ liệu nguồn thay đổihoặc bị xóa, giúp bạn báo cáo về bản kết xuất nhanh dữ liệu dựa trên thời gian
4.4 Cải thiện kiểm soát truy cập
Bạn có thể sử dụng Materialized View để kiểm soát ai có quyền truy cập vào dữliệu cụ thể Bạn có thể lọc thông tin cho người dùng mà không cần cấp cho họ quyềntruy cập vào các bảng nguồn
5 Quy trình tạo khung nhìn thực
Trang 12 Nên sử dụng các kỹ thuật tối ưu hóa truy vấn như sử dụng chỉ mục, tối ưuhóa mệnh đề WHERE, v.v để đảm bảo truy vấn thực thi nhanh chóng vàhiệu quả.
5.2 Chọn loại Khung nhìn thực
MV không cập nhật (Non-updatable materialized view): Loại MV nàykhông được cập nhật tự động khi dữ liệu trong các bảng cơ sở thay đổi.Người dùng cần phải thực hiện thao tác cập nhật thủ công bằng cách sửdụng lệnh REFRESH hoặc MATERIALIZE
MV cập nhật (Updatable materialized view): Loại MV này được cập nhật
tự động khi dữ liệu trong các bảng cơ sở thay đổi Hệ quản trị cơ sở dữliệu (HTQT CSDL) sẽ theo dõi các thay đổi trong bảng cơ sở và cập nhật
MV tương ứng
5.3 Tạo Khung nhìn thực
Câu lệnh CREATE VIEW được sử dụng để tạo ra khung nhìn và có cú pháp nhưsau:
Hình 1: Câu lệnh CREATE VIEW
Nếu trong câu lệnh CREATE VIEW, ta không chỉ định danh sách các tên cột chokhung nhìn, tên các cột trong khung nhìn sẽ chính là tiêu đề các cột trong kết quảcủa câu lệnh SELECT Trong trường hợp tên các cột của khung nhìn đươc chỉđịnh, chúng phải có cùng số lượng với số lượng cột trong kết quả của câu truyvấn Một số nguyên tắc khi tạo Khung Nhìn:
10
Trang 13 Tên khung nhìn và tên cột trong khung nhìn, cũng giống như bảng, phải tuân theo qui tắc định danh.
Không thể qui định ràng buộc và tạo chỉ mục cho khung nhìn
Câu lệnh SELECT với mệnh đề COMPUTE BY không được sử dụng
để định nghĩa khung nhìn
Phải đặt tên cho các cột của khung nhìn trong các trường hợp sau đây:
o Trong kết quả của câu lệnh SELECT có ít nhất một cột được sinh rabởi một biểu thức (tức là không phải là một tên cột trong bảng cơ sở) và cột đó không được đặt tiêu đề
o Tồn tại hai cột trong kết quả của câu lệnh SELECT có cùng tiêu đề cột
5.4 Cập Nhật, Bổ Sung, Xóa Thông Qua Khung Nhìn
Đối với một số khung nhìn, ta có thể tiến hành thực hiện các thao tác cập nhập,
bổ sung và xoá dữ liệu Thực chất, những thao tác này sẽ được chuyển thànhnhững thao tác tương tự trên các bảng cơ sở và có tác động đến những bảng cơ
sở Về mặt lý thuyết, để có thể thực hiện thao tác bổ sung, cập nhật và xoá, mộtkhung nhìn trước tiên phải thoả mãn các điều kiện sau đây:
Trong câu lệnh SELECT định nghĩa khung nhìn không được sử dụng từ khoá DISTINCT TOP GROUP BY, , và UNION
Các thành phần xuất hiện trong danh sách chọn của câu lệnh SELECT phải
là các cột trong các bảng cơ sở Trong danh sách chọn không được chứacác biểu thức tính toán, các hàm gộp Ngoài những điều kiện trên, các thao tác thay đổi đến dữ liệu thông qua khung nhìn còn phải đảm bảo thoả mãn các ràng buộc trên các bảng cơ sở, tức là vẫn đảm bảo tính toàn vẹn dữ liệu
Trang 145.5 Sửa Khung Nhìn
Câu lệnh ALTER VIEW được sử dụng để định nghĩa lại khung nhìn hiện có nhưngkhông làm thay đổi các quyền đã được cấp phát cho người sử dụng trước đó Câulệnh này sử dụng tương tự như câu lệnh CREATE VIEW và có cú pháp như sau:
Trang 15CHƯƠNG II: HQT CSDL SQL SERVER HỖ TRỢ
1.2 Kiến trúc SQL Server
Trang 16 Máy chủ cơ sở dữ liệu: Là phần mềm chịu trách nhiệm lưu trữ
Ngôn ngữ truy vấn cấu trúc (SQL): Là ngôn ngữ được sử dụng
để tương tác với cơ sở dữ liệu, bao gồm các thao tác như tạo,truy xuất, cập nhật và xóa dữ liệu
Công cụ quản lý: Giúp người dùng quản lý cơ sở dữ liệu, baogồm SQL Server Management Studio (SSMS) và Azure DataStudio
1.3 Các tính năng chính của SQL Server
Bảo mật: Bảo vệ dữ liệu khỏi truy cập trái phép bằng cách sửdụng xác thực, ủy quyền và mã hóa
Hiệu suất: Cung cấp hiệu suất cao để xử lý các truy vấn phứctạp và khối lượng dữ liệu lớn
Khả năng mở rộng: Hỗ trợ mở rộng quy mô để đáp ứng nhu cầu
dữ liệu ngày càng tăng
Tính sẵn sàng cao: Đảm bảo tính sẵn sàng của dữ liệu bằngcách sử dụng bản sao lưu, phục hồi và cụm
Phân tích dữ liệu: Cung cấp các công cụ để phân tích dữ liệu vàđưa ra quyết định kinh doanh sáng suốt
1.4 Các phiên bản SQL Server
14
Trang 17 SQL Server Enterprise: Phiên bản đầy đủ tính năng, được sửdụng cho các doanh nghiệp lớn và các ứng dụng đòi hỏi hiệusuất cao.
SQL Server Standard: Phiên bản có ít tính năng hơn Enterprise,nhưng vẫn phù hợp cho nhiều doanh nghiệp
SQL Server Developer: Phiên bản dành cho nhà phát triển, baogồm các công cụ để phát triển và thử nghiệm ứng dụng SQLServer
SQL Server Express: Phiên bản miễn phí, phù hợp cho các ứngdụng nhỏ và phát triển
1.5 Ưu điểm của SQL Server
Dễ sử dụng: Cung cấp giao diện người dùng trực quan và ngônngữ SQL dễ học
Bảo mật cao: Bảo vệ dữ liệu khỏi truy cập trái phép bằng cách
sử dụng các tính năng bảo mật mạnh mẽ
Hiệu suất cao: Cung cấp hiệu suất cao để xử lý các truy vấnphức tạp và khối lượng dữ liệu lớn
Khả năng mở rộng: Hỗ trợ mở rộng quy mô để đáp ứng nhu cầu
dữ liệu ngày càng tăng
Tính sẵn sàng cao: Đảm bảo tính sẵn sàng của dữ liệu bằngcách sử dụng bản sao lưu, phục hồi và cụm
Hỗ trợ cộng đồng lớn: Có một cộng đồng người dùng và nhàphát triển lớn cung cấp hỗ trợ và tài nguyên
1.6 Nhược điểm của SQL Server
Chi phí cao: Phiên bản Enterprise có thể đắt đỏ cho các doanhnghiệp nhỏ
Yêu cầu phần cứng cao: Yêu cầu phần cứng mạnh mẽ để chạyhiệu quả
Trang 18 Độ phức tạp: Việc quản lý và bảo trì SQL Server có thể phứctạp.
2 Khung nhìn chỉ mục hóa trong Sql Server (Indexed view)
2.1 Khái niệm
Indexed View là một loại khung nhìn (view) trong SQL Server, nhưngkhác với view thông thường, nó lưu trữ dữ liệu vật lý giống như một bảng.Điều này giúp cải thiện hiệu suất truy vấn nếu được sử dụng đúng cách
2.2 Trường hợp dùng khung nhìn chỉ mục hóa
Khi cần truy vấn dữ liệu từ nhiều bảng hoặc khi truy vấn phức tạp
Khi cần truy vấn dữ liệu trên lượng dữ liệu lớn
Khi cần hạn chế quyền truy cập vào dữ liệu
Khi cần đơn giản hóa các truy vấn phức tạp
2.3 Tạo khung nhìn chỉ mục
Đầu tiên, chúng ta tạo một view (khung nhìn) sử dụng tùychọn WITH SCHEMABINDING Điều này đảm bảo rằngview sẽ kết nối với schema của các bảng cơ sở dữ liệu
Kết nối view với schema của các bảng cơ sở dữ liệu
Tạo một chỉ mục gom cụm duy nhất trên view
Ví dụ: Tạo Indexed View dựa trên các cột của các bảng
production.products, production.brands và production.categories từ
cơ sở dữ liệu mẫu.
Tạo một view có tên product_master với các cột product_id,product_name, model_year, list_price, brand_name vàcategory_name
Trong phần SELECT của view, chúng ta kết nối cácbảng production.products, production.brands và production categories bằng các điều kiện liên kết (INNER JOIN)
16
Trang 19CREATE VIEW product_master WITH SCHEMABINDING AS
SELECT product_id, product_name, model_year, list_price, brand_name, category_name
FROM production.products p
INNER JOIN production.brands b ON b.brand_id = p.brand_id
INNER JOIN production.categories c ON c.category_id = p.category_id;
Giảm tải cho hệ thống: Việc sử dụng khung nhìn chỉ mục hóa
có thể giảm tải cho hệ thống bằng cách giảm số lượng truy vấntrực tiếp vào các bảng gốc
Tăng tính bảo mật: Khung nhìn chỉ mục hóa có thể được sửdụng để hạn chế quyền truy cập vào dữ liệu, chỉ cung cấp chongười dùng quyền truy cập vào các cột và hàng cần thiết
Tăng tính linh hoạt: Khung nhìn chỉ mục có thể được sử dụng
để đơn giản hóa các truy vấn phức tạp, giúp người dùng dễdàng truy cập dữ liệu mà không cần phải hiểu rõ cấu trúc bảng
2.5 Nhược điểm
Tốn dung lượng lưu trữ: Khung nhìn chỉ mục hóa có thể tốndung lượng lưu trữ vì nó lưu trữ kết quả truy vấn dưới dạngbảng tạm thời
Trang 20 Có thể lỗi thời: Khung nhìn chỉ mục có thể bị lỗi thời nếu dữliệu trong các bảng gốc thay đổi.
Có thể phức tạp để quản lý: Việc quản lý khung nhìn chỉ mục
có thể phức tạp hơn so với quản lý các bảng thông thường
CHƯƠNG III: TẠO KNT THỰC CHO HQT QUẢN
LÍ NHÂN VIÊN
Trong SQL, một khung nhìn VIEW là một bảng ảo trong cơ sở dữ liệu có nộidung được định nghĩa thông qua một câu lệnh SQL nào đó Một VIEW bao gồmcác hàng và cột giống như một bảng thực Các trường trong một khung nhìn làcác trường từ một hoặc nhiều bảng thực trong Database
Điểm khác biệt giữa khung nhìn VIEW và bảng là VIEW không được xem làmột cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở dữ liệu Thực chất dữ liệu quansát được trong VIEW được lấy từ các bảng thông qua câu lệnh truy vấn dữ liệu
và được sử dụng để hạn chế truy cập cơ sở dữ liệu hoặc để ẩn dữ liệu phức tạp
1 Tạo View trong SQL
VIEW được tạo ra bởi câu lệnh CREATE VIEW Các VIEW có thể được tạo
từ một bảng đơn, nhiều bảng hoặc từ VIEW khác
Cú pháp cơ bản của lệnh CREATE VIEW trong SQL như sau:
SQL > CREATE VIEW NHANVIEN_VIEW ASSELECT ten, tuoiFROMNHANVIEN;
18