1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực

28 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Cơ Sở Dữ Liệu Nâng Cao Đề Tài Khung Nhìn Thực
Tác giả Nguyễn Văn Lâm, Phùng Trung Hiếu, Ngô Thị Kim Oanh, Nguyễn Quốc Huy, Phan Cường, Mai Lê Hoàng Sơn
Người hướng dẫn Phạm Dương Thu Hằng
Trường học Đại học Đà Nẵng
Chuyên ngành Khoa Tin Học
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 28
Dung lượng 2,2 MB

Nội dung

 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 1

TRƯỜ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 3

MỤ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 4

CHƯƠ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 5

9 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 6

CHƯƠ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 10

3.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 11

Materialized 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 14

5.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 15

CHƯƠ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 production categories bằng các điều kiện liên kết (INNER JOIN)

16

Trang 19

CREATE 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

Ngày đăng: 07/01/2025, 16:04

HÌNH ẢNH LIÊN QUAN

Hình 4: Microsoft Sql Server - Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực
Hình 4 Microsoft Sql Server (Trang 15)
Bảng 1: Ví dụ về Indexed View - Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực
Bảng 1 Ví dụ về Indexed View (Trang 19)
Bảng 2: NHANVIEN - Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực
Bảng 2 NHANVIEN (Trang 21)
Bảng 3: Bảng NHANVIEN sau khi sử dụng VIEW - Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực
Bảng 3 Bảng NHANVIEN sau khi sử dụng VIEW (Trang 22)
Bảng 4: Bảng NHANVIEN sau khi được UPDATE - Cơ sở dữ liệu nâng cao Đề tài khung nhìn thực
Bảng 4 Bảng NHANVIEN sau khi được UPDATE (Trang 23)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w