Sửa một hàng hay cả bảng?
Một câu UPDATE thiếu điều kiện có thể đổi nhiều bản ghi ngoài ý muốn. Khi thao tác CSDL, ta cần biết đối tượng được thay đổi và có cách khôi phục nếu xảy ra lỗi.
Cập nhật có phạm vi
INSERT thêm hàng; UPDATE ... SET sửa giá trị; DELETE FROM xóa hàng. WHERE giới hạn hàng trong UPDATE/DELETE; thiếu WHERE có thể tác động toàn bảng. Thực hành trên bản dữ liệu mẫu, kiểm tra tập hàng trước và dùng sao lưu/giao dịch khi phù hợp.
Phân quyền theo nhiệm vụ: người xem không mặc nhiên cần quyền sửa/xóa. Sao lưu tạo bản dùng khôi phục; cần kiểm tra khả năng khôi phục, không chỉ tạo tệp. Hệ tập trung quản lí dữ liệu tại một nơi trung tâm; hệ phân tán phân bố dữ liệu qua nhiều vị trí liên kết. Phân tán không đồng nghĩa dữ liệu ai cũng truy cập được, cũng không thay thế sao lưu.
Sửa đúng một học sinh
```sql
UPDATE HocSinh
SET Lop = '12B'
WHERE MaHS = 'H01';
```
Điều kiện theo mã duy nhất giới hạn học sinh cần sửa. Nếu bỏ WHERE, câu lệnh đặt Lop thành 12B cho mọi hàng, không chỉ hàng đang nhìn trên màn hình.
Thử vận dụng
Người chỉ cần đọc báo cáo nên được cấp quyền nào trước hết?
Đúng: đủ dùng mà không mở rộng quyền tùy tiện.
Xóa không thuộc nhiệm vụ đọc.
Toàn quyền vượt nhu cầu.
Dùng chung tài khoản khó kiểm soát trách nhiệm và quyền.
Lời giải
Cấp quyền vừa đủ cho nhiệm vụ giảm khả năng thay đổi ngoài ý muốn.
Sao lưu và phân tán không giống nhau
Hai nơi cùng đồng bộ một dữ liệu bị xóa nhầm có thể cùng nhận thay đổi xóa. Bản sao lưu ở thời điểm trước sự cố, có kiểm tra khôi phục, mới giúp phục hồi phần cần thiết. Vì vậy có nhiều bản đồng bộ chưa tự bảo đảm phục hồi được mọi lỗi.
Ví dụ xem cách làm
DELETE FROM HocSinh WHERE MaHS = 'H02'; khác DELETE FROM HocSinh; thế nào?
Lời giải
Câu đầu xóa hàng H02 nếu có. Câu sau xóa mọi hàng trong bảng theo quyền/ràng buộc thực tế; không phải chỉ xóa một hàng. Cả hai không phải lệnh xóa cấu trúc bảng.
Ví dụ xem cách làm
Sau khi tạo bản sao lưu, nêu một việc cần làm để biết bản sao có dùng được.
Lời giải
Thử khôi phục trong môi trường phù hợp và kiểm tra dữ liệu cần thiết. Có tệp sao lưu không tự chứng minh tệp không lỗi hoặc đủ dữ liệu.
Những điều cần nhớ
Ràng buộc bảo vệ tính hợp lệ, phân quyền giới hạn người thao tác, sao lưu hỗ trợ phục hồi. Cần phối hợp các biện pháp thay vì coi một biện pháp giải quyết mọi lỗi.
Đang học