Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 15 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
15
Dung lượng
1,81 MB
Nội dung
BÀI TRIGGER VÀ TRANSACTION ThS Trần Ngọc Thăng B1_2011.11.26 TÌNH HUỐNG DẪN NHẬP Làm giao dịch xảy cố chừng? Trong sống ngày, thường xuyên phải thực giao dịch chuyển khoản ngân hàng hay trạm ATM Giả sử người A phải chuyển tỉ đồng cho người B Hệ thống quản trị liệu phải thực thao tác trừ tỉ đồng tài khoản người A Sau cộng thêm tỉ đồng vào tài khoản người B Điều xảy thời điểm thực hai thao tác hệ thống bị tạm dừng? Câu hỏi đặt là: Hệ quản trị sở liệu SQL có hỗ trợ giải pháp để xử lý cố thực giao dịch hay thao tác liệu trên? B1_2011.11.26 MỤC TIÊU Tạo Trigger theo 02 loại Liệt kê và thực loại Transaction Sử dụng Trigger vào việc thiết lập ràng buộc toàn vẹn tham chiếu Sử dụng Transaction vào việc quản lý giao dịch liệu B1_2011.11.26 NỘI DUNG Trigger ứng dụng Trigger Các loại Transaction ứng dụng B1_2011.11.26 TRIGGER VÀ ỨNG DỤNG CỦA TRIGGER • After Trigger; • Instead of Trigger B1_2011.11.26 TRIGGER VÀ ỨNG DỤNG CỦA TRIGGER (tiếp theo) Trigger loại stored procedure đặc biệt, định nghĩa để tự động thực thi có câu lệnh Update, Insert, Delete phát bảng View Đặc điểm giới hạn Trigger • Trigger (After trigger) Reactive; constraints instead of trigger proactive (Reactive: delete/insert dòng vào table, sau insert trigger đuợc tự động thực thi gọi reactive, proactive kiểm tra trước Insert/Delete) • Các constraint kiểm tra trước, sau tới Trigger • Các bảng có nhiều Trigger cho hành động Nếu có nhiều Trigger đối tượng gặp nhiều rắc rối có nhiều Trigger không xác định thứ tự • Không thể tạo Trigger đối tượng temporary • Nên thiết kế Trigger không trả tập kết nhằm đảm bảo tính chất chuyển tác user lập trình • Các Trigger xử lý hành động nhiều dòng • Trigger không ngăn ngừa thay đổi cấu trúc, Trigger quan tâm đến thay đổi liệu bảng Khi bạn xóa đối tượng CSDL với bước hợp lý, SQL Server cho phép xóa đối tượng Trigger kiểm soát • Trigger Events: Có biến cố mà Trigger tự động thực thi biến cố xảy ra, 6là Insert, Update, Delete Trigger gọi cách trực tiếp B1_2011.11.26 • TRIGGER VÀ ỨNG DỤNG CỦA TRIGGER (tiếp theo) Cơ cấu thực thi Trigger: • Khi insert update liệu bảng bật Trigger, Trigger lưu trữ dòng liệu dòng liệu hiệu chỉnh vào bảng có tên Inserted nhớ cash • Khi xóa liệu bảng bật Trigger lên, Trigger lưu trữ dòng liệu bị xóa vào bảng có tên Deleted nhớ cash • Các bảng tồn nhớ truy vấn lệnh T-SQL Trigger Có thể sử dụng thông tin bảng Inserted Deleted để so sánh, lưu trữ, rollback,… Nếu cần, bạn không cần tạo biến để lưu trữ thông tin tốc độ truy xuất nhanh Tạo Trigger CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [DELETE] [,] [ INSERT ] [, ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS sql_statement [ n ] }} B1_2011.11.26 TRIGGER VÀ ỨNG DỤNG CỦA TRIGGER (tiếp theo) Quản lý trigger • Alter Trigger Hiệu chỉnh Trigger • Drop Trigger: Xóa Trigger • Sp_rename: Đổi tên • Sp_helptrigger, Sp_heltext: Xem code Trigger • DISABLE TRIGGER/ ENABLE TRIGGER câu lệnh Alter Table Chất lượng CSDL đánh giá phần tính quán độ xác liệu CSDL Để đảm bảo tính toàn vẹn liệu ta có nhiều phương pháp, Trigger phương pháp hữu hiệu • Trigger công cụ mạnh mà dùng để ràng buộc qui tắc quản lý tự động liệu bị hiệu chỉnh • Trigger nới rộng tính toàn vẹn kiểm soát logic SQL Server B1_2011.11.26 TRIGGER VÀ ỨNG DỤNG CỦA TRIGGER (tiếp theo) Những trường hợp sử dụng Trigger: • Ràng buộc toàn vẹn liệu cho phù hợp với mô hình quan hệ CSDL Sử dụng Trigger biện pháp toàn vẹn liệu như: Constraint, rule,… không bảo đảm Khác với công cụ bao đảm toàn vẹn liệu nêu, công cụ thực kiểm tra tính toán vẹn trước đưa liệu vào CSDL (còn gọi Declarative Data Integrity), Trigger thực kiểm tra tính toàn vẹn công việc thực (còn gọi Procedural Data Integrity) • Kiểm soát liệu có thay đổi đến giá trị mẫu tin bảng • Kiểm tra liệu nhập vào phù hợp với mối quan hệ liệu bảng • Định nghĩa thông báo lỗi người dùng • So sánh trạng thái liệu trước sau hiệu chỉnh B1_2011.11.26 CÁC LOẠI TRANSACTION VÀ ỨNG DỤNG • Transaction tự động; • Transaction tường minh; • Transaction ẩn; • Transaction lồng 10 B1_2011.11.26 CÁC LOẠI TRANSACTION VÀ ỨNG DỤNG (tiếp theo) • Transaction: Một transactin định nghĩa chuỗi thao tác thực thi với khối thống đơn công việc Một khối thống công việc phải có bốn đặc điểm gọi ACID (Atomicity – Nguyên tố, Consistency – Nhất quán, Isolation – Tách biệt, Durability – Bền vững) • Ba loại Transaction: Implicip Transactions (Transaction ngầm định), Explicip Transactions (Transaction tường minh), Distributed Transaction Bắt đầu transaction BEGIN TRAN [ SACTION ] [ transaction_name | @tran_name_variable] Hoàn tất Transaction COMMIT [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] ] Lưu vị trí Transaction SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable } Hũy Transaction ROLLBACK [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable | savepoint_name | @savepoint_variable ] ] 11 B1_2011.11.26 CÁC LOẠI TRANSACTION VÀ ỨNG DỤNG (tiếp theo) • Transaction: Transaction log Tranction dùng lock để ngăn chặn người dùng hiệu chỉnh liệu ảnh hưởng từ Transaction chưa hoàn tất • Công dụng transaction log Phục hồi Transaction đặc biệt: Khi application đưa lệnh ROLL BACK SQL Server nhận lỗi, bảng ghi log dùng để roll back hiệu chỉnh suốt trình Transaction chưa hoàn tất Phục hồi tất transaction chưa hoàn tất Sql Server bắt đầu: Hoàn trả lại database lại đến thời điểm bị lỗi: Nhằm đảm bảo không phát sinh mâu thuẩn sau có cố Check point: Là hành động thực định kỳ CSDL, ghi lại tất Transaction liên quan đến data lên Transaction log, nhằm phục vụ cho việc recovery data Check point xảy khi: Gặp câu lệnh Check point Có hiệu chỉnh CSDL Trước SQL Server Shutdow Áp định định kỳ B1_2011.11.26 12 CÂU HỎI TRẮC NGHIỆM Một thủ tục tự động thực ta thay đổi liệu table SQL Server qua lệnh Update, Insert, Delete thuộc loại? a Trigger b Stored Procedure c Extended Stored Procedure d Rule Jack cần chèn điểm dừng (save point) có tên ’Returnback’ vào Transaction Nên dùng lệnh sau đây: a INSERT SAVEPOINT Returnback b SAVE SAVEPOINT Returnback c SAVE TRANSACTION Returnback d INSERT TRANSACTION Returnback Thuộc tính Transaction bảo đảm tính tuần tự? a Atomicity b Consistency c Durability d Isolation Bảo toàn (integrity) dùng cho Trigger DELETE? a Thực thể (entity) b Miền (Domain) c Tham chiếu (referential) d Người dùng (user defined) Hai bảng phép dùng UPDATE Trigger? a Bảng deleted bảng trigger b Bảng inserted bảng deleted c Bảng inserted bảng updated d Bảng inserted bảng trigger B1_2011.11.26 13 ĐÁP ÁN TRẮC NGHIỆM Một thủ tục tự động thực ta thay đổi liệu table SQL Server qua lệnh Update, Insert, Delete thuộc loại? a Trigger b Stored Procedure c Extended Stored Procedure d Rule Jack cần chèn điểm dừng (save point) có tên ’Returnback’ vào Transaction Nên dùng lệnh sau đây: a INSERT SAVEPOINT Returnback b SAVE SAVEPOINT Returnback c SAVE TRANSACTION Returnback d INSERT TRANSACTION Returnback Thuộc tính Transaction bảo đảm tính tuần tự? a Atomicity b Consistency c Durability d Isolation Bảo toàn (integrity) dùng cho Trigger DELETE? a Thực thể (entity) b Miền (Domain) c Tham chiếu (referential) d Người dùng (user defined) Hai bảng phép dùng UPDATE Trigger? a Bảng deleted bảng trigger b Bảng inserted bảng deleted c Bảng inserted bảng updated d Bảng inserted bảng trigger B1_2011.11.26 14 TÓM LƯỢC CUỐI BÀI Sau học xong Bài Trigger và Transaction, học viên : • Tạo Trigger theo 02 loại • Liệt kê và thực loại Transaction • Sử dụng Trigger vào việc thiết lập ràng buộc toàn vẹn tham chiếu • Sử dụng Transaction vào việc quản lý giao dịch liệu 15 B1_2011.11.26 ... @tran_name_variable] Hoàn tất Transaction COMMIT [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable ] ] Lưu vị trí Transaction SAVE TRAN [ SACTION ] { savepoint_name | @savepoint_variable... Hũy Transaction ROLLBACK [ TRAN [ SACTION ] [ transaction_name | @tran_name_variable | savepoint_name | @savepoint_variable ] ] 11 B1_2011.11.26 CÁC LOẠI TRANSACTION VÀ ỨNG DỤNG (tiếp theo) •... trigger B1_2011.11.26 14 TÓM LƯỢC CUỐI BÀI Sau học xong Bài Trigger va Transaction, học viên : • Tạo Trigger theo 02 loại • Liệt kê va thực loại Transaction • Sử dụng Trigger vào việc thiết lập