Data integrity · Целостность данных
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.
Сохранение корректности данных
- Целостность означает, что данные остаются точными. Два метода защищают её: валидация и верификация.
- Они звучат похоже, но выполняют разные задачи — классическое отличие для экзаменов.
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).
Валидация против верификации
- Валидация проверяет, являются ли данные разумными при вводе. Примеры:
- Проверка диапазона (возраст 0–120), проверка длины (телефонный номер), проверка формата (email содержит
@), проверка наличия (не оставлено пустым).
- Проверка диапазона (возраст 0–120), проверка длины (телефонный номер), проверка формата (email содержит
- Верификация проверяет, что данные были скопированы правильно. Примеры:
- Двойной ввод (введите пароль дважды) или визуальная проверка (прочитайте вслух).
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.
Проверка данных в пути передачи
- Когда данные передаются, биты могут меняться. Контрольная сумма или контрольная цифра это ловят.
- Отправитель вычисляет небольшое число на основе данных; получатель пересчитывает его. Если они различаются, данные повреждены.
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).
Ваша очередь
- Вычислите простую контрольную цифру, суммируя цифры по модулю 10. Реальные системы (например, штрихкоды и ISBN) используют более умные версии этой идеи.
Охватывает: A-Level 6.2 (валидация/верификация), IGCSE 2.2 (обнаружение ошибок).
Common mistakes
- A checksum or check digit spots accidental changes to data.
- Validation checks data is sensible; verification checks it was entered correctly.
Распространенные ошибки
- Контрольная сумма или контрольная цифра обнаруживает случайные изменения данных.
- Валидация проверяет, что данные логичны; верификация проверяет, что они введены верно.
Hashes detect tampering · Хеши обнаруживают подделки
Re-hash the data and compare: any change flips the digest. · Пересчитайте хеш данных и сравните: любое изменение изменяет хеш-сумму.
A simple checksum helps catch typing errors. Add up the digits of number and take the result modulo 10. Print that single check digit. · Простой контрольная сумма помогает обнаружить опечатки. Сложите цифры числа number и возьмите результат по модулю 10. Выведите эту одну контрольную цифру.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.
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. · Теперь вы — получатель. Отправитель передал цифры с контрольной суммой ⟨8⟩, но одна цифра была повреждена при передаче. Пересчитайте контрольную сумму для ⟨received⟩ и выведите ⟨ERROR⟩, если она не совпадает со значением ⟨sent_check⟩, иначе выведите ⟨OK⟩.
Click Run to see the output here. · Нажмите Запустить, чтобы увидеть результат здесь.