Data integrity · Tính toàn vẹn dữ liệu
Keeping data correct
- Integrity means data stays accurate. Two techniques protect it: validation and verification.
- They sound similar but do different jobs — a classic exam distinction.
Giữ dữ liệu chính xác
- Tính toàn vẹn có nghĩa là dữ liệu vẫn giữ nguyên độ chính xác. Hai kỹ thuật bảo vệ điều này: kiểm tra hợp lệ và xác minh.
- Chúng nghe có vẻ giống nhau nhưng làm việc khác biệt — một sự phân biệt kinh điển trong bài thi.
Validation vs verification
- Validation checks data is reasonable as it is entered. Examples:
- Range check (age 0–120), length check (a phone number), format check (an email has an
@), presence check (not left blank).
- Range check (age 0–120), length check (a phone number), format check (an email has an
- Verification checks data was copied correctly. Examples:
- Double entry (type a password twice), or a visual check (read it back).
Kiểm tra hợp lệ so với Xác minh
- Kiểm tra hợp lệ (Validation) kiểm tra dữ liệu có hợp lý khi được nhập vào. Ví dụ:
- Kiểm tra phạm vi (tuổi 0–120), kiểm tra độ dài (số điện thoại), kiểm tra định dạng (email có
@), kiểm tra sự hiện diện (không để trống).
- Kiểm tra phạm vi (tuổi 0–120), kiểm tra độ dài (số điện thoại), kiểm tra định dạng (email có
- Xác minh (Verification) kiểm tra dữ liệu đã được nhập chính xác. Ví dụ:
- Nhập đôi (gõ mật khẩu hai lần), hoặc kiểm tra trực quan (đọc lại).
Checking data in transit
- When data travels, bits can flip. A checksum or check digit catches that.
- The sender calculates a small number from the data; the receiver recalculates it. If they differ, the data was corrupted.
Kiểm tra dữ liệu khi truyền
- Khi dữ liệu di chuyển, các bit có thể bị đảo lộn. Một checksum hoặc chữ số kiểm tra sẽ phát hiện ra điều đó.
- Người gửi tính toán một số nhỏ từ dữ liệu; người nhận tính toán lại. Nếu chúng khác nhau, dữ liệu đã bị hỏng.
number = "1389"
print(sum(int(d) for d in number) % 10) # a one-digit checksum
Your turn
- Compute a simple check digit by summing the digits modulo 10. Real systems (like barcodes and ISBNs) use cleverer versions of this idea.
Covers: A-Level 6.2 (validation/verification), IGCSE 2.2 (error detection).
Đến lượt bạn
- Tính chữ số kiểm tra đơn giản bằng cách cộng tổng các chữ số modulo 10. Các hệ thống thực tế (như mã vạch và ISBN) sử dụng phiên bản tinh tế hơn của ý tưởng này.
Phạm vi: A-Level 6.2 (kiểm tra hợp lệ/xác minh), IGCSE 2.2 (phát hiện lỗi).
Common mistakes
- A checksum or check digit spots accidental changes to data.
- Validation checks data is sensible; verification checks it was entered correctly.
Lỗi thường gặp
- Checksum hoặc chữ số kiểm tra phát hiện các thay đổi ngẫu nhiên đối với dữ liệu.
- Kiểm tra hợp lệ đảm bảo dữ liệu có lý trí; xác minh đảm bảo dữ liệu được nhập đúng.
Hashes detect tampering · Hashes phát hiện việc can thiệp
Re-hash the data and compare: any change flips the digest. · Tạo lại hash dữ liệu và so sánh: bất kỳ thay đổi nào đều làm digest biến mất hoàn toàn.
A simple checksum helps catch typing errors. Add up the digits of number and take the result modulo 10. Print that single check digit. · Một kiểm tra tổng đơn giản giúp bắt lỗi gõ phím. Cộng các chữ số của number và lấy phần dư khi chia cho 10. In ra chữ số kiểm tra đơn lẻ đó.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.
Now be the receiver. The sender transmitted the digits with check digit 8, but one digit got corrupted on the way. Recompute the checksum of received and print ERROR if it does not equal sent_check, else OK. · Giờ hãy đóng vai người nhận. Người gửi đã truyền các chữ số kèm chữ số kiểm tra 8, nhưng một chữ số đã bị hỏng trên đường truyền. Tính lại checksum của received và in ra ERROR nếu nó không bằng sent_check, ngược lại in ra OK.
Click Run to see the output here. · Nhấn Chạy để xem kết quả ở đây.