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

Bài giảng An toàn và toàn vẹn dữ liệu - Vũ Tuyết Trinh

Chia sẻ: Sinh Nhân | Ngày: | Loại File: PDF | Số trang:17

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

Bài giảng "An toàn và toàn vẹn dữ liệu" cung cấp cho sinh viên các kiến thức về 3 nội dung chính bao gồm: An toàn dữ liệu, dàng buộc dữ liệu, toàn vẹn dữ liệu. Hi vọng đây là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.

Chủ đề:
Lưu

Nội dung Text: Bài giảng An toàn và toàn vẹn dữ liệu - Vũ Tuyết Trinh

  1. Nhập môn cơ sở dữ liệu An toàn và toàn vẹn ẹ dữ 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 Giáo viên hệ QTCSDL Sinh viên Lớp học H tậ Học tập Mô h Môn học Điểm thi Sinh viên 2 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 1
  2. Nhập môn cơ sở dữ 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) 3 Đặt vấn đề { Mục đích của CSDL z Lưu trữ lâu dài z Khai thác hiệu quả { Yêu cầu đ/v thiết kế CSDL z Đảm bảo tính đúng đắn của DL { Tránh sai sót khi cập nhật DL Ö định nghĩa và kiểm tra các ràng buộc DL { Tránh sai sót trong quá trình thao tác với DL Ö kiểm tra tính toàn vẹn của các thao tác với DL z Đảm bảo tính an toàn của DL { Tránh truy nhập DL không hợp lệ từ phía người dùng Ö phân quyền và kiểm tra quyền hạn người sử dụng 4 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 2
  3. Nhập môn cơ sở dữ liệu Nội dung { An toàn dữ liệu { Ràng buộc dữ liệu { Toàn vẹn dữ liệu 5 An toàn dữ liệu { Bảo vệ CSDL chống lại sự truy nhập bất hợp pháp ¾ Cần các cơ chế cho phép z Nhận biết người dùng z Xác định các thao tác hợp lệ với từng (nhóm) người dùng 6 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 3
  4. Nhập môn cơ sở dữ liệu Phân quyền người dùng { Đ/v người khai thác CSDL z Quyền Q ề đọc đ dữ liệu liệ z Quyền sửa đổi dữ liệu z Quyền bổ sung dữ liệu z Quyền xoá dữ liệu z ... { Đ/v người quản trị CSDL z Quyền tạo chỉ dẫn z Q ề quản Quyền ả lý tài nguyên: ê thê thêm/xoá / á các á quan hệ z Quyền thay đổi cấu trúc DL: thêm/sửa/xoá các thuộc tính của các quan hệ z ... { ... 7 Xác minh người dùng { Sử dụng tài khoản của người dùng z Tên truy nhập z Mật khẩu { Sử dụng hàm kiểm tra F(x) z Cho 1 giá trị ngẫu nhiên x z Người dùng phải biết hàm F để tính giá trị của nó { 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, ... 8 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 4
  5. Nhập môn cơ sở dữ 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 Xoá người dùng DROP USER name [CASCADE]; { Ví dụ CREATE USER tin123K47 IDENTIFIED BY nmcsdl 9 Kiểm tra quyền của người dùng { Xác định quyền hạn của (nhóm) người dùng { Xác định các khung nhìn để hạn chế truy nhập đến DL { Xác định và kiểm soát sự lưu chuyển dữ liệu 10 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 5
  6. Nhập môn cơ sở dữ 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 dữ liệu { Mục đích: định nghĩa tính đúng đắn của DL trong toàn bộ CSDL { Phân loại z Ràng buộc về miền giá trị { Trên 1 thuộc tính { Trên nhiều thuộc tính (cùng 1 bản ghi) { Trên nhiều bản ghi z Ràng buộc về khoá { Trên 1 quan hệ: khoá chính { Trên nhiều quan hệ: khoá ngoài 12 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 6
  7. Nhập môn cơ sở dữ liệu Lệnh đ/n ràng buộc miền giá trị { Cú pháp CONSTRAINT CHECK { Ví dụ: z Trong bảng DIEM CONSTRAINT gtdiem CHECK ((diem>=0) and (diem
  8. Nhập môn cơ sở dữ liệu Lệnh đ/n ràng buộc khoá ngoài { Cú pháp CONSTRAINT FOREIGN KEY REFERENCES [khoa-tham-chieu] { Ví dụ: Trong bảng DIEM CONSTRAINT diem-SV FOREIGN KEY maSV REFERENCES C S SINH S _VIEN[maSV] [ aS ] CONSTRAINT diem-mon FOREIGN KEY maSV REFERENCES SINH_VIEN[maSV] 15 Toàn vẹn dữ liệu { Mục đích: đảm bảo tính đúng đắn của DL trong quá trình thao tác (thêm, sửa, xoá DL) { Yêu cầu z Kiểm tra các ràng buộc toàn vẹn DL khi thực hiện các thao tác thêm, sửa, xoá ¾ sử dụng các triggers z Kiểm tra tính đúng đắn của các thao tác trên CSDL ¾ Quản trị giao dịch ¾ Điều khiển tương tranh 16 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 8
  9. Nhập môn cơ sở dữ liệu Trigger { Đ/n z Là các á xử ử lý được đ gắn ắ với ới các á bả bảng DL z Được tự động kích hoạt khi thực hiện các thao tác thêm, sửa, xoá bản ghi { Cú pháp CREATE [OR REPLACE] TRIGGER {BEFORE | AFTER | INSTEAD OF } {UPDATE | INSERT | DELETE} [OF ] ON [FOR EACH ROW ] BEGIN > 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 9
  10. Nhập môn cơ sở dữ 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ư của tài khoản A Kiểm tra (số dư > số tiền cần rút) Tăng số dư của tài khoản B Sự Ngân g hàng g cố chịu lỗ ??? Giảm số dư của tài khoản A 20 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 10
  11. Nhập môn cơ sở dữ liệu Giao dịch { Đ/n: một tập các thao tác được xử lý như một đơn vị không chia cắt ắ được z Cho phép đảm bảo tính nhất quán và tính đúng đắn của dữ liệu { Tính chất ACID z Nguyên tố (Atomicity) Điều khiển tương tranh z Tính nhất quán (Consistency) z Tính cô lập (Isolation) Phục hồi dữ liệu z Tính bền vững (Durability) 21 Tính nguyên tố { Đ/n: Hoặc là toàn bộ hành động của giao dịch đ được thực th hiện hiệ hoặc h ặ khô không có ó hành hà h động độ nào à được thực hiện { Ví dụ: T: Read(A,t1); If t1 > 500 { Read(B,t2); t2:=t2+500; stop Write(B,t2); t1:=t1-500; Write(A,t1); } 22 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 11
  12. Nhập môn cơ sở dữ liệu Tính nhất quán { Đ/n: Tính nhất quán của dữ liệu trước khi bắt đầ và đầu à sau khi kết thúc thú giao i dịdịch h { Ví dụ A+B = C 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 23 Tính cô lập { Đ/n: 1 giao dịch được tiến hành độc lập với các giao i dịdịch h khá 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); T’: A+B t1:=t1-500; (= 5000+3500) Write(A,t1); } (A+B = 4500+3500) 24 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 12
  13. Nhập môn cơ sở dữ liệu Tính bền vững { Đ/n z Mọi thay đổi ổ mà giao dịch thực hiện trên CSDL phải được 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); } sự cố 25 A= 4500, B=3500 Trạng thái của giao dịch 26 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 13
  14. Nhập môn cơ sở dữ liệu Giao diện cho giao dich { Giao diện chính z Begin Trans z Commit () z Abort() { Điểm ghi nhớ (save point) z Savepoint Save() z Rollback o bac (savepoint) (sa epo t) // sa savepoint epo t = 0 ==> Abort bo t 27 Điều khiển tương tranh { Mục đích: tránh đụng độ giữa các giao dịch (một dãy các thao tác) trên cùng một đối ố tượng có thểể làm mất tính nhất quán của DL T0: read(A); T1: read(A); A := A -50; temp := A *0.1; write(A); A := A -temp; read(B); write(A); B := B + 50; read(B); write(B); B := B + temp; write(B); 28 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 14
  15. Nhập môn cơ sở dữ liệu Ví dụ về thực hiện giao dịch 29 Kỹ thuật khoá { Mục đích z Đảm bảo Đả bả việc iệ truy t nhập hậ đếnđế các á DL được đ thực th hiệ hiện theo phương pháp loại trừ nhau { Các kiểu khoá z Chia sẻ: có thể đọc nhưng không ghi DL z Độc quyền: đọc và ghi DL { Ký hiệu z LS(D): khoá LS(D) kh á chia hi sẻ ẻ z LX(D): khoá độc quyền z UN(D): mở khoá LS LX { Tính tương thích LS true false LX false false 30 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 15
  16. Nhập môn cơ sở dữ liệu Ví dụ T0: LX(A); T1: LX(A); read(A); read(A); A := A -50; temp := A *0.1; write(A); A := A -temp; LX(B); write(A) read(B); LX(B); B := B + 50; read(B); ( ); write(B); B:=B+temp;p; UN(A); write(B); UN(B); UN(A); UN(B); 31 Khoá chết (deadlock) T0: LX(B); T1: LX(A); read(B); read(A); B := B +50; temp := A *0.1; write(B); A := A -temp; LX(A); write(A) read(A); LX(B); A := A - 50; read(B); ( ); write(A); B:=B+temp;p; UN(A); write(B); UN(B); UN(A); UN(B); 32 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 16
  17. Nhập môn cơ sở dữ liệu Các vấn đề về quản trị giao dịch { Các kỹ thuật điều khiển tương tranh z các chế độ khoá, giải quyết khoá chết z 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 toàn và toàn vẹn dữ liệu { Đ/v người thiết ế kế ế CSDL z Phải định nghĩa các ràng buộc toàn vẹn về dữ liệu { Đ/v người quản trị hệ thống z Phải định nghĩa các khung nhìn z Phải phần quyền cho (nhóm) người dùng { Đ/v hệ CSDL z Phải xác minh được người dùng z Phải kiểm tra các ràng buộc DL một cách tự động z Phải đảm bảo các 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 17
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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