Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
330 KB
Nội dung
Nhập mơn sở liệu An tồn tồn vẹn ẹ liệu ệ Vũ Tuyết Trinh trinhvt@it-hut.edu.vn Bộ môn Các hệ thống thông tin, Khoa Công nghệ thông tin Đại học Bách Khoa Hà Nội Ví dụ Giáo viên CSDL hệ QTCSDL H tậ Học tập Giáo viên Sinh viên Lớp học Mô h Môn học Điểm thi Sinh viên Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu GIAO_VIEN (maGV, hoten, ngaysinh, gioitinh, diachi, h h hocham, hocvi, h i bacluong) b l ) LOP (malop, tenlop, khoa, maloptruong, maGVCN,TSSV) SINH_VIEN(maSV, hoten, ngaysinh, tuoi, gioitinh, diachi, malop) MON_HOC(mamon, tenmon, soHT) DIEM_THI(maSV, mamon, lanthi, diem) Đặt vấn đề { Mục đích CSDL z z { Lưu trữ lâu dài Khai thác hiệu Yêu cầu đ/v thiết kế CSDL z Đảm bảo tính đắn DL { { z Tránh sai sót cập nhật DL Ö định nghĩa kiểm tra ràng buộc DL Tránh sai sót q trình thao tác với DL Ư kiểm tra tính tồn vẹn thao tác với DL Đảm bảo tính an tồn DL { Tránh truy nhập DL khơng hợp lệ từ phía người dùng Ư phân quyền kiểm tra quyền hạn người sử dụng Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu Nội dung { An toàn liệu { Ràng buộc liệu { Toàn vẹn liệu An toàn liệu { ¾ Bảo vệ CSDL chống lại truy nhập bất hợp pháp Cần chế cho phép z z Nhận biết người dùng Xác định thao tác hợp lệ với (nhóm) người dùng Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu Phân quyền người dùng { Đ/v người khai thác CSDL z z z z z { Đ/v người quản trị CSDL z z z z { Quyền Q ề đọc đ liệu liệ Quyền sửa đổi liệu Quyền bổ sung liệu Quyền xoá liệu Quyền tạo dẫn Q ề quản Quyền ả lý tài nguyên: ê thê thêm/xoá / quan hệ Quyền thay đổi cấu trúc DL: thêm/sửa/xố thuộc tính quan hệ Xác minh người dùng { Sử dụng tài khoản người dùng z z { Sử dụng hàm kiểm tra F(x) z z { { Tên truy nhập Mật Cho giá trị ngẫu nhiên x Người dùng phải biết hàm F để tính giá trị Sử dụng thẻ điện tử tử, thẻ thơng minh Sử dụng nhận dạng tiếng nói, vân tay, Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập mơn sở liệu Lệnh tạo (nhóm) người dùng { { Cú pháp z Tạo người dùng CREATE USER username IDENTIFIED {BY password | EXTERNALLY | GLOBALLY AS 'external_name'}; z Xố người dùng DROP USER name [CASCADE]; Ví dụ CREATE USER tin123K47 IDENTIFIED BY nmcsdl Kiểm tra quyền người dùng { { { Xác định quyền hạn (nhóm) người dùng Xác định khung nhìn để hạn chế truy nhập đến DL Xác định kiểm soát lưu chuyển liệu 10 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu Lệnh phân quyền cho người dùng { Cú pháp Grantt < G i il > On O TTo < > [With Grant Option] REVOKE ON FROM [RESTRICT | CASCADE] Privilege = {Insert | Update | Delete | Select | Create Alter | Drop | Read | Write} Object = {Table | View} { Ví dụ: GRANT SELECT ON DIEM_THI TO tin123K47 GRANT SELECT, UPDATE ON DIEM_THI TO vutrinh WITH GRANT OPTION 11 Ràng buộc liệu { { Mục đích: định nghĩa tính đắn DL toàn CSDL Phân loại z z Ràng buộc miền giá trị { Trên thuộc tính { Trên nhiều thuộc tính (cùng ghi) { Trên nhiều ghi Ràng buộc khoá { Trên quan hệ: khố { Trên nhiều quan hệ: khố ngồi 12 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu Lệnh đ/n ràng buộc miền giá trị { Cú pháp CONSTRAINT CHECK { Ví dụ: Trong bảng DIEM CONSTRAINT gtdiem CHECK ((diem>=0) and (diem END ; 17 Ví dụ LOP (malop, tenlop, khoa, maloptruong, maGVCN,TSSV) SINH VIEN(maSV hoten, SINH_VIEN(maSV, hoten ngaysinh, ngaysinh tuoi tuoi, gioitinh, gioitinh diachi diachi, malop) CREATE TRIGGER tang_TSSV AFTER INSERT ON SINH_VIEN FOR EACH ROW BEGIN update LOP set TSSV= TSSV+1 where malop = :new.malop END; 18 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com https://fb.com/sinhvienzonevn Nhập môn sở liệu Ví dụ LOP (malop, tenlop, khoa, maloptruong, maGVCN,TSSV) SINH VIEN(maSV hoten, SINH_VIEN(maSV, hoten ngaysinh, ngaysinh tuoi tuoi, gioitinh, gioitinh diachi diachi, malop) CREATE TRIGGER giam_TSSV AFTER DELETE ON SINH_VIEN FOR EACH ROW BEGIN update LOP set TSSV= TSSV-1 where malop = :old.malop END; 19 Giao dịch – ví dụ 500USD Tài khoản A Tài khoản B Đọc số dư tài khoản A Kiểm tra (số dư > số tiền cần rút) Tăng số dư tài khoản B Giảm số dư tài khoản A Sự cố Ngân g hàng g chịu lỗ ??? 20 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 10 https://fb.com/sinhvienzonevn Nhập môn sở liệu Giao dịch { Đ/n: tập thao tác xử lý đơn vị không chia cắt ắ z { Cho phép đảm bảo tính quán tính đắn liệu Tính chất ACID z z z z Ngun tố (Atomicity) Tính qn (Consistency) Tính lập (Isolation) Tính bền vững (Durability) Điều khiển tương tranh Phục hồi liệu 21 Tính nguyên tố { { Đ/n: Hoặc toàn hành động giao dịch đ thực th hiệ h ặ khô khơng có ó hành hà h động độ thực Ví dụ: T: Read(A,t1); If t1 > 500 { Read(B,t2); t2:=t2+500; Write(B,t2); t1:=t1-500; Write(A,t1); } stop 22 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 11 https://fb.com/sinhvienzonevn Nhập môn sở liệu Tính quán { { Đ/n: Tính quán liệu trước bắt đầ đầu sau kết thúc thú giao i dị dịch h Ví dụ T: Read(A,t1); If t1 > 500 { Read(B,t2); t2:=t2+500; Write(B,t2); t1:=t1-500; Write(A,t1); } A+B = C A+B = C 23 Tính lập { { Đ/n: giao dịch tiến hành độc lập với giao i dị dịch h khác tiế tiến hành hà h đồng đồ thời Ví dụ: A= 5000, B= 3000 T: Read(A,t1); If t1 > 500 { Read(B,t2); t2:=t2+500; Write(B,t2); t1:=t1-500; Write(A,t1); } T’: A+B (= 5000+3500) (A+B = 4500+3500) 24 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 12 https://fb.com/sinhvienzonevn Nhập môn sở liệu Tính bền vững { Đ/n z { Mọi thay đổi ổ mà giao dịch thực CSDL phải ghi nhận bền vững Ví dụ: A= 5000, B= 3000 T: Read(A,t1); If t1 > 500 { Read(B,t2); t2:=t2+500; Write(B,t2); t1:=t1-500; Write(A,t1); } cố A= 4500, B=3500 25 Trạng thái giao dịch 26 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 13 https://fb.com/sinhvienzonevn Nhập môn sở liệu Giao diện cho giao dich { Giao diện z z z { Begin Trans Commit () Abort() Điểm ghi nhớ (save point) z z Savepoint Save() Rollback o bac (savepoint) (sa epo t) // sa savepoint epo t = ==> Abort bo t 27 Điều khiển tương tranh { Mục đích: tránh đụng độ giao dịch (một dãy thao tác) đối ố tượng ể làm tính quán DL T0: read(A); A := A -50; write(A); read(B); B := B + 50; write(B); T1: read(A); temp := A *0.1; A := A -temp; write(A); read(B); B := B + temp; write(B); 28 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 14 https://fb.com/sinhvienzonevn Nhập môn sở liệu Ví dụ thực giao dịch 29 Kỹ thuật khố { Mục đích z { Các kiểu khố z z { Chia sẻ: đọc không ghi DL Độc quyền: đọc ghi DL Ký hiệu z z z { Đảm bảo Đả bả việc iệ truy t nhập hậ đến đế DL đ thực th hiệ theo phương pháp loại trừ LS(D): khoá LS(D) kh chia hi sẻ ẻ LX(D): khố độc quyền UN(D): mở khố Tính tương thích LS LX LS true false LX false false Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 30 15 https://fb.com/sinhvienzonevn Nhập môn sở liệu Ví dụ T0: LX(A); read(A); A := A -50; write(A); LX(B); read(B); B := B + 50; ( ); write(B); UN(A); UN(B); T1: LX(A); read(A); temp := A *0.1; A := A -temp; write(A) LX(B); read(B); B:=B+temp; p; write(B); UN(A); UN(B); 31 Khoá chết (deadlock) T0: LX(B); read(B); B := B +50; write(B); LX(A); read(A); A := A - 50; ( ); write(A); UN(A); UN(B); T1: LX(A); read(A); temp := A *0.1; A := A -temp; write(A) LX(B); read(B); B:=B+temp; p; write(B); UN(A); UN(B); 32 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 16 https://fb.com/sinhvienzonevn Nhập môn sở liệu Các vấn đề quản trị giao dịch { Các kỹ thuật điều khiển tương tranh z z { { { chế độ khoá, giải khoá chết kỹ thuật gán nhãn Lập lịch Các kỹ thuật phục hồi (recovery) 33 Kết luận Để đảm bảo tính an tồn tồn vẹn liệu { Đ/v người thiết ế kế ế CSDL z { Đ/v người quản trị hệ thống z z { Phải định nghĩa ràng buộc toàn vẹn liệu Phải định nghĩa khung nhìn Phải phần quyền cho (nhóm) người dùng Đ/v hệ CSDL z z z Phải xác minh người dùng Phải kiểm tra ràng buộc DL cách tự động Phải đảm bảo tính chất ACID cho giao dịch người dùng 34 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone.com 17 https://fb.com/sinhvienzonevn ... thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone. com https://fb .com/ sinhvienzonevn Nhập môn sở liệu Nội dung { An toàn liệu { Ràng buộc liệu { Toàn vẹn liệu An toàn liệu { ¾ Bảo vệ CSDL chống lại... chuyển liệu 10 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN SinhVienZone. com https://fb .com/ sinhvienzonevn Nhập môn sở liệu Lệnh phân quyền cho người dùng { Cú pháp Grantt