An toàn và toàn vẹn dữ liệu

47 5 0
An toàn và toàn vẹn dữ liệu

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

An toàn toàn vẹn liệu NGUYEN HongPhuong Email: phuongnh@soict.hust.edu.vn Site: http://users.soict.hust.edu.vn/phuongnh Face: https://www.facebook.com/phuongnhbk Hanoi University of Science and Technology Nội dung Đặt vấn đề An toàn liệu Toàn vẹn liệu Điều khiển tương tranh Đặt vấn đề • Một số yêu cầu thiết kế, cài đặt quản trị CSDL: – Đảm bảo tính an tồn liệu • Tránh truy nhập khơng hợp lệ từ phía người dùng: phân quyền, xác minh kiểm tra quyền hạn người sử dụng – Đảm bảo tính đắn liệu • Tránh sai sót cập nhật liệu: định nghĩa kiểm tra ràng buộc liệu • Tránh sai sót q trình thao tác với liệu: kiểm tra tính tồn vẹn thao tác với liệu An tồn liệu • Định nghĩa: Tính an tồn liệu bảo vệ liệu CSDL chống lại truy nhập, sửa đổi hay phá hủy bất hợp pháp • Người sử dụng hợp pháp người sử dụng cấp phép, ủy quyền • Để đảm bảo tính an tồn cho CSDL, cần có chế để quản lý người dùng hợp lý • Những nhóm người dùng khác hệ CSDL có quyền sử dụng khác đối tượng liệu CSDL Trục tam giác Người dùng, nhóm người dùng Các quyền Các đối tượng liệu CSDL 2.1 Các quyền truy nhập người sử dụng • Đối với người khai thác CSDL: – Quyền đọc liệu: phép đọc phần hay toàn liệu CSDL – Quyền cập nhật liệu: phép sửa đổi số giá trị khơng xóa liệu CSDL – Quyền xóa liệu: phép xóa liệu CSDL – Quyền bổ sung liệu: phép thêm liệu vào CSDL không phép thay đổi liệu 2.1 Các quyền truy nhập người sử dụng • Đối với người quản trị CSDL: –Quyền tạo dẫn quan hệ CSDL –Quyền thay đổi sơ đồ sở liệu: thêm hay xóa thuộc tính quan hệ CSDL –Quyền loại bỏ quan hệ CSDL –Quyền quản lý tài nguyên: phép thêm quan hệ vào CSDL 2.2 Người dùng • Một người dùng cụ thể (user) – ví dụ: phuongnh, postgres,… • Một nhóm người dùng (group) – nhóm có thành viên (member) – ví dụ: group_h3t có phuongnh, lamdb, trinhvt,… • Một số hệ quản trị không phân biệt khái niệm trên, mà gọi chung vai trò (role) – ví dụ: PostGreSQL, role user group (nếu có member) 2.3 Các đối tượng liệu • Tables • Views Trách nhiệm người quản trị hệ thống • Để phân biệt người sử dụng hệ CSDL, người quản trị hệ thống phải có trách nhiệm: – Xác định quyền cụ thể mà người sử dụng hay nhóm người sử dụng phép thực hiện, xác định vai trò trách nhiệm người sử dụng Điều gọi chung Phân quyền người sử dụng – Cung cấp phương tiện cho người sử dụng để hệ thống nhận biết người sử dụng hay cịn gọi Xác minh người sử dụng 10 Ví dụ giao dịch • Một CSDL ngân hàng chứa thông tin tài khoản khách hàng tài khoản quỹ chi nhánh • Giả sử, thực giao dịch chuyển 100 đô-la từ tài khoản Alice sang tài khoản Bob: UPDATE accounts SET balance = balance - 100.00 WHERE name = ’Alice’; UPDATE branches SET balance = balance - 100.00 WHERE name = (SELECT branch_name FROM accounts WHERE name = ’Alice’); UPDATE accounts SET balance = balance + 100.00 WHERE name = ’Bob’; UPDATE branches SET balance = balance + 100.00 WHERE name = (SELECT branch_name FROM accounts WHERE name = ’Bob’); 33 4.2 Các tính chất giao dịch • Tính ngun tố (Atomicy) – Hoặc tất thao tác thực không thao tác thực – Đảm bảo tính khơng thể chia cắt, khơng thể rút gọn • Tính quán (Consistency) – Dữ liệu quán sau giao dịch thực • Tính cách ly (Isolation) – xác định cách mà thay đổi thao tác ẩn với thao tác đồng thời khác 34 4.2.Các tính chất giao dịch • Tính bền vững (Durability) – Đảm bảo giao dịch xác nhận tồn vĩnh cửu – ví dụ, vị trí chỗ ngồi máy bay đặt chỗ vị trí trạng thái đặt chỗ cho dù hệ thống có vấn đề • Tất tính chất trên, gọi tắt ACID 35 • Các thao tác hình thành nên giao dịch nhúng chương trình ứng dụng xác định ngơn ngữ cấp cao SQL • Để biết giao dịch diễn ra, cần xác định tường minh câu lệnh bắt đầu (begin transaction) kết thúc (end transaction) giao dịch chương trình ứng dụng 36 • Giao dịch đọc (read-only) – không cập nhật liệu, mà lấy liệu • Để đơn giản, giả sử thao tác truy cập CSDL giao dịch gồm có: – read_item(X): đọc khoản mục CSDL tên X vào biến chương trình tên X – write_item(X): ghi giá trị biến X chương trình vào khoản mục CSDL tên X 37 • Đơn vị việc chuyển liệu từ đĩa vào nhớ khối (block) • Thực lệnh read_item(X) bao gồm bước sau: – Tìm địa khối đĩa mà chứa khoản mục X – Sao chép khối vào đệm nhớ (nếu đệm chưa có) – Sao chép khoản mục X từ đệm vào biến chương trình X 38 • Thực lệnh write_item(X) bao gồm bước sau: – Tìm địa khối đĩa mà chứa khoản mục X – Sao chép khối vào đệm nhớ (nếu đệm chưa có) – Sao chép khoản mục X từ biến chương trình tên X vào vị trí xác đệm – Lưu trữ khối cập nhật từ đệm lên đĩa (có thể tức lưu trữ sau) 39 4.3 Tại lại phải điều khiển tương tranh? • Các vấn đề – The – The – The – The Lost Update Temporary Update (Dirty Read) Incorrect Summary Unrepeatable Read 40 The lost update • Hiện tượng xuất hai giao dịch truy cập vào khoản mục liệu thao tác hai giao dịch lại xen kẽ, làm cho giá trị khoản mục liệu khơng cịn T1 read_item (X); X:=X-N; Time write_item (X); read_item (Y); Y:=Y+N; write_item (Y); T2 read_item (X); X:=X+M; write_item (X); 41 The Temporary Update • Xuất giao dịch cập nhật khoản mục liệu, sau khơng hồn thành bước => giao dịch khơng trọn vẹn nên phải roll-back giá trị cập nhật giá trị cũ • Khoản mục liệu cập nhật lại sử dụng giao dịch khác trước rollback giá trị cũ T1 T2 read_item (X); X:=X-N; write_item (X); Time read_item (Y); read_item (X); X:=X+M; write_item (X); Giao dịch T1 fails phải thay đổi giá trị X giá trị cũ nó; T2 lại đọc giá trị không tạm thời X 42 The Incorrect Summary • Một giao dịch tính hàm tích lũy ghi bị cập nhật giao dịch khác =>hàm tích lũy Time tính tốn dựa số giá trị cập nhật số giá trị chưa cập nhật T1 read_item(X); X:=X-N; write_item(X); read_item(Y); Y:=Y+N; write_item(Y); T3 sum:=0; read_item(A); sum:=sum+A; read_item(X); sum:=sum+X; read_item(Y); sum:=sum+Y; T3 đọc X sau X trừ N đọc Y trước Y cộng N 43 The Unrepeatable Read • Một giao dịch T đọc khoản mục liệu lần Khoản mục liệu bị giao dịch khác thay đổi lần đọc • Do đó, T nhận giá trị khác cho lần đọc khoản mục 44 4.4 Các kỹ thuật điều khiển tương tranh • Kỹ thuật dùng khóa: Khi giao dịch cần liệu xin hệ điều hành khóa phần liệu đó, giao dịch khác phải đợi đến giải phóng khóa sử dụng phần liệu Có thể người ta sử dụng loại khóa khác ví dụ khóa đọc – cho phép nhiều giao dịch đọc lúc, khóa ghi – giao dịch có thời điểm • Kỹ thuật gán nhãn thời gian: Mỗi giao dịch gán nhãn T theo thời gian, giao dịch cần ưu tiên gán nhãn thời gian nhỏ thực trước Kỹ thuật giúp đưa yêu cầu đồng thời thực 45 46 Lời hay ý đẹp "Khi nói thật bạn khơng phải nhớ vừa nói gì, mà bạn khơng qn vừa nói" S.Raybum 47

Ngày đăng: 22/06/2022, 08:12

Hình ảnh liên quan

• <Đối tượng>: bảng hoặc khung nhìn - An toàn và toàn vẹn dữ liệu

lt.

;Đối tượng>: bảng hoặc khung nhìn Xem tại trang 17 của tài liệu.
Câu lệnh phân quyền cho NSD (tiếp) - An toàn và toàn vẹn dữ liệu

u.

lệnh phân quyền cho NSD (tiếp) Xem tại trang 17 của tài liệu.
bảng - An toàn và toàn vẹn dữ liệu

b.

ảng Xem tại trang 28 của tài liệu.
• đây là hai bảng tạm nằm trên bộ nhớ, và chỉ có - An toàn và toàn vẹn dữ liệu

y.

là hai bảng tạm nằm trên bộ nhớ, và chỉ có Xem tại trang 29 của tài liệu.
– trigger không thể được tạo ra trên bảng tạm hoặc bảng hệ thống - An toàn và toàn vẹn dữ liệu

trigger.

không thể được tạo ra trên bảng tạm hoặc bảng hệ thống Xem tại trang 29 của tài liệu.
• Một giao dịch hình thành nên 1 đơn vị công việc  trong 1 DBMS đ/v 1 CSDL, được coi là  cố kết và tin cậy độc lập với các giao dịch  khác. - An toàn và toàn vẹn dữ liệu

t.

giao dịch hình thành nên 1 đơn vị công việc trong 1 DBMS đ/v 1 CSDL, được coi là cố kết và tin cậy độc lập với các giao dịch khác Xem tại trang 32 của tài liệu.
• Các thao tác hình thành nên một giao dịch có thể được nhúng trong một chương trình ứng dụng hoặc được xác định bởi ngôn ngữ cấp cao như SQL.dịch có thể được nhúng trong một - An toàn và toàn vẹn dữ liệu

c.

thao tác hình thành nên một giao dịch có thể được nhúng trong một chương trình ứng dụng hoặc được xác định bởi ngôn ngữ cấp cao như SQL.dịch có thể được nhúng trong một Xem tại trang 36 của tài liệu.
• Các thao tác hình thành nên một giao dịch có thể được nhúng trong một chương trình ứng dụng hoặc được xác định bởi ngôn ngữ cấp cao như SQL.dịch có thể được nhúng trong một - An toàn và toàn vẹn dữ liệu

c.

thao tác hình thành nên một giao dịch có thể được nhúng trong một chương trình ứng dụng hoặc được xác định bởi ngôn ngữ cấp cao như SQL.dịch có thể được nhúng trong một Xem tại trang 36 của tài liệu.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan