1. Trang chủ
  2. » Công Nghệ Thông Tin

Điểm mạnh và điểm yếu của trigger_Hệ quản trị cơ sở dữ liệu_DBMS

3 2,3K 87

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 15,82 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Điểm mạnh: Tính toán cập nhật dữ liệu tự động Kiểm tra dữ liệu nhập Kiểm tra ràng buộc phức tạp Kiểm tra tính toàn vẹn của Cơ sở dữ liệu Bẫy lỗi dễ hiểu, bắt lỗi logic nghiệp vụ ở mức cơ sở dữ liệu Kiểm soát những thay đổi của dữ liệu trong bảng  Điểm yếu: Không tạo và tham chiếu bảng Không tạo, thay đổi xóa cấu trúc đối tượng sẵn có trong Cơ sở dữ liệu Không gán cấp quyền cho người dùng Trigger có thể tạo ra 1 bảng ảo mà khi thao tác trên Cơ sở dữ liệu nó sẽ tự động cập nhật Chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này. Hoạt động ngầm ở trong cơ sở dữ liệu, không hiển thị ở tầng giao diện. Do đó, khó chỉ ra được điều gì xảy ra ở tầng cơ sở dữ liệu. Thực hiện các update lên bảng dữ liệu vì thế nó làm gia tăng lượng công vieejcc lên cơ sở dữ liệu và làm cho hệ thống chạy chậm.

Trang 1

Câu 6 Hãy cho biết điểm mạnh và điểm yếu của cơ chế trigger Trình bày sự tương phản giữa trigger với các ràng buộc toàn vẹn khác được hỗ trợ bởi SQL Trả lời:

 Điểm mạnh:

- Tính toán cập nhật dữ liệu tự động

- Kiểm tra dữ liệu nhập

- Kiểm tra ràng buộc phức tạp

- Kiểm tra tính toàn vẹn của Cơ sở dữ liệu

- Bẫy lỗi dễ hiểu, bắt lỗi logic nghiệp vụ ở mức cơ sở dữ liệu

- Kiểm soát những thay đổi của dữ liệu trong bảng

 Điểm yếu:

- Không tạo và tham chiếu bảng

- Không tạo, thay đổi xóa cấu trúc đối tượng sẵn có trong Cơ sở dữ liệu

- Không gán cấp quyền cho người dùng

- Trigger có thể tạo ra 1 bảng ảo mà khi thao tác trên Cơ sở dữ liệu nó sẽ tự động cập nhật

- Chỉ là một phần mở rộng của việc kiểm tra tính hợp lệ của dữ liệu chứ không thay thế được hoàn toàn công việc này

- Hoạt động ngầm ở trong cơ sở dữ liệu, không hiển thị ở tầng giao diện

Do đó, khó chỉ ra được điều gì xảy ra ở tầng cơ sở dữ liệu

- Thực hiện các update lên bảng dữ liệu vì thế nó làm gia tăng lượng công vieejcc lên cơ sở dữ liệu và làm cho hệ thống chạy chậm

Câu 7 Cho lược đồ quan hệ dưới đây Một nhân viên có thể làm viêc ờ nhiều phòng ban Cột pct_time trong quan hê Works chỉ tỉ lệ % thời gian nhân viên đó làm việc cho phòng ban tương ứng

Viết các RBTV, assertions hoặc triggers để đảm bảo các yêu cầu sau:

1 Mỗi nhân viên phải có lương tối thiểu là 1000

2 Mọi người quản lý cũng là một nhân viên

3 Tổng tỉ lệ % thời gian làm việc cho các phòng ban của một nhân viên phải dưới 100%

4 Một người quản lý phải luôn có lương cao hơn bất kỳ một nhân viên nào mà người đó quản lý

5 Bất cứ khi nào một nhân viên được tăng lương, lương người quản lý cũng phải được tăng tương ứng

Trang 2

6 Bất cứ khi nào một nhân viên được tăng lương, lương người quản lý cũng phải được tăng tương ứng Hơn nữa, bất cứ khi nào một nhân viên được tăng lương, ngân sách của phòng ban tương ứng cũng phải được tăng lớn hơn tổng lương của tất cả nhân viên thuộc phòng đó

Bài làm Create database BT2

go

use BT2

go

Create table Emp

(

eid int primary key,

ename nvarchar(max),

age int,

salary real

);

go

create table Dept

(

did int primary key,

budget real,

managerid int not null,

foreign key (managerid) references Emp(eid)

);

go

create table Works

(

eid int,

did int,

foreign key (eid) references Emp(eid),

foreign key (did) references Dept(did),

pct_time int

);

1. Mỗi nhân viên phải có lương tối thiểu là 1000

Trang 3

CREATE TRIGGER TG_SALARY_LESS

ON Emp

AFTER INSERT,DELETE

AS

declare @new int, @old int, @ssn int;

select @new = ne.salary, @old = ol.salary, @ssn = ol.ename from inserted ne, deleted ol;

where ne.ename = ol.ename

if(@new >= 1000)

BEGIN

UPDATE Emp

SET salary = @new

where ename = @ssn

END

Ngày đăng: 06/05/2017, 11:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w