intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Hệ Quản Trị Cơ Sở Dữ Liệu - TRIGGER & CURSOR

Chia sẻ: Lê Trinh Vàng | Ngày: | Loại File: PPT | Số trang:23

132
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Cấu trúc gần giống như một thủ tục nội tại nhưng không có tham số đầu vào và đầu ra và phải được liên kết với một bảng hoặc bảng ảo trong CSDL. Không thể gọi mà được thực hiện tự động và được sử dụng trong việc : tính toán, cập nhật giá trị tự động và kiểm tra dữ liệu nhập.

Chủ đề:
Lưu

Nội dung Text: Hệ Quản Trị Cơ Sở Dữ Liệu - TRIGGER & CURSOR

  1. Hệ Quản Trị Cơ Sở Dữ Liệu TRIGGER & CURSOR
  2. Nội dung I.Trigger I.1. Khái quát về trigger I.2.Làm việc với trigger I.3.Trigger kiểm tra ràng buộc dữ liệu I.4.Trigger cập nhật giá trị tự động II.Cursor II.1.Khái niệm về CurSor : II.2Thứ tự các thao tác khi xử lý dữ liệu trên CurSor :
  3. I.Trigger I.1 Khái quát về trigger I.1.1Trigger là gì? - Cấu trúc gần giống như một thủ tục nội tại nhưng không có tham số đầu vào và đầu ra và phải được liên kết với một bảng hoặc bảng ảo trong CSDL. - Không thể gọi mà được thực hiện tự động và được sử dụng trong việc : tính toán, cập nhật giá trị tự động và kiểm tra dữ liệu nhập.  Khai báo sử dụng : − Kết hợp với các hành động INSERT/ UPDATE/ DELETE trên bảng hay bảng ảo. - Khi tạo ra, tham gia vào transaction khởitạobởi câu lệnh cập nhật dữ liệu tương ứng.
  4. I.1.2.Các xử lý bên trong trigger : - Kiểm tra các ràng buộc dữ liệu phức tạp: + Các ràng buộc mô tả phức tạp không thể dùng constraint. + Gọi ràng buộc Rollback Tran để hủy thao tác cập nhật khi vi phạm ràng buộc. + Bảo đảm dữ liệu luôn được toàn vẹn. + Bảo đảm việc kiểm tra thử ứng dụng không làm hư dữ liệu có sẵn.
  5. - Tính toán, tự động cập nhật giá trị : + Bổ sung các hành động cập nhật dữ liệu để đảm bảo tính toàn vẹn dữ liệu. + Đơn giản hóa việc xây dựng ứng dụng. - Chỉ định các bẫy lỗi dễ hiểu: + Tăng tính thân thiện của ứng dụng. + Dễ dàng nhận ra các lỗi khi lập trình.
  6. I.1.3. Các hạn chế trên trigger : - Không được tạo và tham chiếu bảng tạm. - Không tạo hay thay đổi, xóa cấu trúc các đối tượng sẵn có trong CSDL. - CREATE/ ALTER/ DROP - Không gán, cấp quyền cho người dùng - GRAND/ REVOKE
  7. I.1.4. Các loại trigger : Có hai loại : - AFTER(FOR)trigger : là loại ngầm định, loại trigger này sẽ thực hiện các lệnh bên trong sau khi đã thực hiện xong sự kiện kích hoạt trigger. INSTEAD OF trigger : là loại trigger mà hoạt động của sự kiện gọi trigger sẽ bị bỏ qua và thay vào đó là các lệnh trong trigger được thực hiện.
  8. I.1.5 Các bảng trung gian Inserted và Deleted  Khi trigger thực thi theo các sự kiện Insert ho ặc Delete thì dữ liệu khi thay đổi sẽ được chuyển sang các bảng Inserted và Deleted, là 2 bảng tạm thời.  Các bảng này chỉ được sử dụng với các lệnh trong trigger và dùng để khôi phục lại phần dữ liệu đã thay đổi (roll back).
  9. a. Inserted : - Chứa dữ liệu được thêm mới trong hành động Insert/Update - Có ở cả hai loại trigger - Cấu trúc bảng giống với bảng thực sự được cập nhật dữ liệu b. Deleted : - Chứa dữ liệu bị xóa trong hành động Delete/Update - Có ở cả hai loại trigger - Cấu trúc bảng giống với bảng thực sự được cập nhật dữ liệu c. Hành động update trong SQL Server - Xóa dòng dữ liệu cũ - Thêm vào dòng dữ liệu mới với thông tin đã cập nhật.
  10. I.1.6.Khi nào cần dùng Trigger ? a. Kiểm tra các ràng buộc dữ liệu phức tạp. - Đối với ràng buộc toàn vẹn dữ liệu đơn giản như kiểm tra ràng buộc miền giá trị,kiểm tra ràng buộc thuộc tính...thì nên dùng Constraint. - Đối với các ràng buộc phức tạp: Vd: kiểm tra tính toàn vẹn trên nhiều cột hoặc dòng thì dùng trigger. Nó cho phép ta xây dựng các câu lệnh để dữ liệu thay đổi theo ý muốn. b. Khi các biện pháp bảo đảm toàn vẹn dữ liệu như Constraints không thể thỏa mãn yêu cầu của ứng dụng. VD: muốn kiểm tra ràng buộc kèm theo những thông báo... Constraints sẽ kiểm tra dữ liệu trước khi Nhập vào Table, còn Trigger được kích hoạt khi các sự kiện Insert, Update, Delete xảy ra rồi.
  11. c. Khi CSDL chưa được chuẩn hóa thì có thể xảy ra dữ liệu thừa, chứa ở nhiều vị trí trong CSDL. Yêu cầu đặt ra là dữ liệu cần cập nhật thống nhất trong mọi nơi. d. Khi xảy ra thay đổi dây chuyền dữ liệu giữa các bảng với nhau.Dữ liệu bảng này thay đổi kéo theo dữ liệu trong bảng khác cũng được thay đổi theo.
  12. I.2. Làm việc với trigger I.2.1.Tạo mới Trigger. Create Trigger Ten_Trigger On Ten_Bang {[Instead of] | [For | After] } { [Insert] ,[Update] , [Delete] } AS [Declare Bien_Cuc_Bo] Các Lệnh bên trong I.2.2. Xóa Trigger: Drop Trigger Ten_Trigger
  13. I.2.3. Sửa nội dung Trigger: Alter Trigger Ten_Trigger On Ten_Bang For [Insert], [Update],[Delete] As [Declare bien_cuc_bo] Các lệnh bên trong.
  14. Trong đó: - Ten_Bang: là tên bảng mà trigger tạo mới sẽ liên kết. - Instead of: Chỉ định đây là trigger loại Instead of trigger. Mỗi bảng chỉ có quyền tạo 1 instead of trigger cho 1 hành động cập nhật. - For hoặc After: nếu tạo trigger thông th ường. - Insert, Update, Delete: Hành động cập nhật dữ liệu tác động vào bảng để kích hoạt Trigger.
  15. + Khi Delete thực thi, dữ liệu bị xoá sẽ sao chép vào bảng Delete. Delete Bảng Imsert lúc này không có dữ liệu. + Khi Insert thực thi, dữ liệu được thêm sẽ sao chép vào bản Inserted. Inserted Bảng Deleted lúc này không có dữ liệu. + Khi Update thực thi, dữ liệu cũ chịu tác động của câu lệnh sẽ được sao chép vào bảng Deleted, Deleted còn trong bảng Inserted sẽ là các dòng sau khi đã được cập nhật.
  16. I.2.4. Trigger lồngnhau: - Hành động cậpnhật -> Trigger -> Cập nhật bảng khác -> Trigger trên bảng tương ứng. - Instead of trigger không phát sinh lại trên chính bảng mà nó liên kết. - Hành động cập nhật ->Instead of trigger ->gọi câu lệnh cập nhật xuống bảng -> Instead of trigger
  17. II. CURSOR : II.1. Khái niệm về Cursor : _ Các lệnh của SQL Server làm việc trên một nhóm nhiều mẫu tin. _ Cursor là cấu trúc giúp làm việc với từng mẫu tin tại một thời điểm. Hay cursor là đối tượng dùng để chứa dữ liệu lấy từ CSDL, giống đối tượng recordset trong VB II.2 Thứ tự các thao tác khi xử lý dữ liệu trên Cursor : II.2.1. Định nghĩa biến Cursor II.2.2. Mở Cursor II.2.3. Duyệt và xử lý dữ liệu trên Cursor II.2.4. Đóng và giải phóng Cursor
  18. II.2.1. Định nghĩa biến Cursor bằng lệnh DECLARE :  Cú pháp khai báo biến Cursor : Declare Tên_cursor Cursor [Local/Global] [Forward_only/Scroll] [Static/Dynamic/Keyset] [Read_only/Scroll_lock] For câu lệnh Select [For update [Of danh sách cột]]
  19. _ Có hai loại Cursor: Local và Global LoCal :chỉ sử dụng trong phạm vi khai báo(mặc định) Global :sử dụng chung cho cả kết nối _ Cách di chuyển mẫu tin trong Cursor: Forward only và Scroll ForWard_Only :chỉ di chuyển một hướng từ trước ra sau(mặcđịnh) Scroll : di chuyển tùy ý _ Cách quản lý dữ liệu trong Cursor: Static, Dynamic và Keyset Static : dữ liệu trên Cursor không thay đổi mặc dù dữ liệu trong bảng nguồn thay đổi(mặc định) Dynamic :dữ liệu trên Cursor sẽ thay đổi khi dữ liệu trong bảng nguồn thay đổi
  20. * Xử lý : Read_Only :chỉ đọc(mặc định) Scroll_Lock : đọc/ghi *Câu lệnh select : không chứa các mệnh đề Into,Compute,Compute by *Danh sách cột cập nhật : là danh sách các cột sẽ thay đổi được II.2.2. Sử dụng lệnh OPEN để mở ra Cursor đã định nghĩa trước đó: Cú pháp: Open tên_Cursor II.2.3. Đọc và xử lý trên từng dòng dữ liệu bên trong cursor: Cú pháp : Fetch [ Next / Prior / First / Last / Absolute n / Relative n ] From Tên_Cursor
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2