Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5.1 - Phạm Nguyên Thảo

34 12 0
Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5.1 - Phạm Nguyên Thảo

Đ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

Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 5.1 giúp người học hiểu về Bảo mật và an toàn dữ liệu Trigger. Nội dung trình bày cụ thể gồm có: Trigger, khung nhìn, quản trị quyền người dùng, sao lưu và phục hồi dữ liệu.

Chương 5: Bảo mật an toàn liệu Trigger Phạm Nguyên Thảo Trường Đại học Khoa học Tự nhiên Khoa Công nghệ Thông tin Bộ môn Hệ thống Thông tin pnthao@fit.hcmuns.edu.vn Nội dung • Trigger • Khung nhìn • Quản trị quyền người dùng • Sao lưu phục hồi liệu Trigger -Giới thiệu • Là loại stored procedure đặc biệt – Tự động thực có thao tác insert, delete update liệu – Thường dùng để kiểm tra ràng buộc toàn vẹn CSDL qui tắc nghiệp vụ – Một trigger định nghĩa bảng, xử lý trigger sử dụng nhiều bảng khác Trigger – giới thiệu (tt) • Xử lý trigger thường cần sử dụng đến hai bảng tạm: – Inserted: chứa dòng vừa thao tác insert/ update thêm vào bảng – Deleted: chứa dịng vừa bị xóa khỏi bảng thao tác update/delete (update = delete dòng chứa giá trị cũ+ insert dịng chứa giá trị mới) – Được HQT tạo/xóa tự động lính canh tương ứng được/bỏ kích hoạt Trigger – giới thiệu • Inserted Deleted bảng nhớ – Cục cho trigger – Có cấu trúc giống bảng (table) mà trigger định nghĩa – Chỉ tồn thời gian trigger xử lý Trigger – giới thiệu(tt) • Nếu thao tác insert/ delete/ update thực nhiều dòng, trigger gọi lần Bảng inserted/ deleted chứa nhiều dịng Khai báo trigger • Cú pháp: Create trigger tên_trigger On {tên_bảng|tên_view} {For| After| Instead of } { [delete] [,] [insert] [,] [update] } As { lệnh T-sql } go Khai báo trigger (tt) • For | After: – Trigger gọi thực sau thao tác delete/ insert/ update tương ứng thực thành công Các dòng thêm chứa đồng thời bảng liệu bảng inserted Các dịng bị xố nằm bảng deleted (đã bị xoá khỏi bảng liệu) – Có thể xử lý quay lui thao tác thực lệnh rollback transaction Khai báo trigger (tt) • Instead of: – Trigger gọi thực thay cho thao tác delete/ insert/ update tương ứng Các dòng thêm chứa bảng inserted Các dịng bị định xố nằm đồng thời bảng deleted bảng liệu (dữ liệu khơng bị xố) – Trigger Instead of thường dùng để xử lý cập nhật khung nhìn (view) Khai báo trigger (tt) • Lưu ý: – Lệnh tạo trigger phải lệnh query batch – Trên bảng định nghĩa nhiều trigger for/after cho thao tác… – …nhưng định nghĩa trigger instead of cho thao tác 10 Nội dung • Trigger • Khung nhìn • Quản trị quyền người dùng • Sao lưu phục hồi liệu 20 View – Khái niệm • View (khung nhìn) bảng ảo định nghĩa lệnh select – Đối với người dùng: view giống bảng thật – Dữ liệu view liệu nhiều bảng thật (view không chứa liệu thật sự) Sự thay đổi liệu tương ứng bảng thật phản ánh lên view 21 View – Khái niệm (tt) • Mục đích sử dụng: – Thể liệu dạng phù hợp với nhóm nghiệp vụ/ nhóm NSD – Bảo mật liệu(security) – Lược đồ ngồi 22 View – Khai báo • Cú pháp: Create view view_name [(column_name [ , n ])] [with Schemabinding] As select_statement 23 View – khai báo (tt) – Schemabinding: gắn kết view với lược đồ, đó: Khơng thể xóa bảng hay view khác có liên quan đến định nghĩa view có schemabinding Khơng thể thay đổi cấu trúc bảng/ view việc thay đổi ảnh hưởng đến định nghĩa view có schemabinding Các tên bảng, view câu select phải viết dạng owner.Tênbảng/Tênview tất phải database Nếu view schemabinding định nghĩa view khác, view phải dạng schemabinding – Câu select định nghĩa view phải định rõ thuộc tính (khơng select * ) 24 View – Khai báo (tt) • Ví dụ: Create view ThiSinh_Nganh (SBD, HoTen, MaNganh, TenNganh) as select ts.SBD, ts.HoTen, ts.Nganh, n.TenNganh from ThiSinh ts, Nganh n where ts.Nganh = n.MaNganh 25 Khai báo view – Lưu ý • Lệnh select định nghĩa view không chứa: – Order by, có phải kèm với TOP – Compute/ Compute…by – Select into • Khơng thể gắn kết rule hay default vào view • Khơng thể khai báo trigger for/after view (chỉ khai báo trigger instead of) • Một view định nghĩa view khác, không 32 cấp 26 View – Sử dụng • Truy xuất liệu từ view (select) – Như truy xuất bảng • Cập nhật liệu (insert/ delete/ update) – Dùng lệnh insert / delete / update tương tự thao tác bảng cần xem xét thêm số vấn đề nguyên tắc chung: cập nhật liệu dịng view xác định xác dịng liệu cập nhật tương ứng bảng gốc – Dữ liệu cập nhật view cập nhật bảng liệu thật bên view 27 Cập nhật liệu view • View cập nhật (insert/ update/ delete) nếu: – lệnh select định nghĩa view khơng chứa: Cột dẫn suất (tính tốn từ cột liệu thật sự) Trong số trường hợp xóa Các hàm tổng hợp (count, sum, avg, max,…) Group by,Top, Select distinct Union (trừ partitioned view) 28 Cập nhật liệu view (tt) – Trong mệnh đề from lệnh select phải tham chiếu đến bảng ( view với liệu lấy từ bảng), phải select cột từ liệu – Lệnh cập nhật phải viết cho làm thay đổi liệu thật bảng (lệnh xóa thực view tham chiếu đến bảng) – Không thỏa điều kiện trên, có trigger instead of for insert/ update/ delete tương ứng 29 Cập nhật liệu view (tt) • Ví dụ: Các view định nghĩa sau cập nhật được: Create view V_SoNV As Select MaPhong, Count (*) as SoNV From NhanVien Group by MaPhong Create View V_NhanVien As select MaNV, HoNV + ‘ ‘ +TenNV as HoTen Có thể From NhanVien xóa Create View V1 As select getdate() as NgayHienHanh 30 Cập nhật view với Trigger Instead of • Có thể dùng trigger instead of để cập nhật view – Tự xử lý thao tác cập nhật • Ví dụ: Viết trigger instead of phép insert view V_NhanVien 31 Cập nhật view với Trigger Instead of create trigger tr_Ins_View_NV on V_NhanVien instead of insert as insert into NhanVien (MaNV, HoNV, TenNV) select MaNV, left(TenNV, CharIndex(' ',TenNV)), right(TenNV, len(TenNV) - CharIndex(‘ ',TenNV)) from inserted go 32 Indexed View • Dùng liệu view lớn, truy xuất thường xuyên • Cài đặt cluster index view  view trở thành index view – Dữ liệu index view lưu trữ lại bảng – Có thể định nghĩa thêm mục nonclustered indexed view – View phải khai báo với SchemaBinding 33 Thay đổi xóa view • Thay đổi cấu trúc view: Thay từ khóa create lệnh tạo view từ khóa alter • Xóa view Drop view tên_view_cần _xóa [,…n] 34 ... tầm ảnh hưởng: Thêm Xoá Sửa DatHang - -( *) +(NgayDH) GiaoHang + - +(NgayGH, MaPDH) Cần cài đặt trigger cho thao tác sửa đặt hàng, thêm/sửa giao hàng 13 Trigger -Ví dụ (tt) • Trigger cho thao tác...Nội dung • Trigger • Khung nhìn • Quản trị quyền người dùng • Sao lưu phục hồi liệu Trigger -Giới thiệu • Là loại stored procedure đặc biệt – Tự động thực có thao... nhỏ ngày ĐH,15,1) rollback tran end go 15 Trigger -Ví dụ (tt) • Trigger cho thao tác sửa đặt hàng? 16 Trigger - Ví dụ • Cho CSDL: 17 Trigger - Ví dụ (tt) • Qui định: – Các trận đấu đội bóng phải

Ngày đăng: 11/05/2021, 04:49

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan