Data integrity · Intégrité des données
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.
Garder les données correctes
- L'intégrité signifie que les données restent exactes. Deux techniques la protègent : la validation et la vérification.
- Elles sonnent similaires mais remplissent des fonctions différentes — une distinction classique d'examen.
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).
Validation vs vérification
- La validation vérifie que les données sont raisonnables telles qu'elles sont saisies. Exemples :
- Contrôle de plage (âge 0–120), contrôle de longueur (un numéro de téléphone), contrôle de format (un e-mail a un
@), contrôle de présence (non laissé vide).
- Contrôle de plage (âge 0–120), contrôle de longueur (un numéro de téléphone), contrôle de format (un e-mail a un
- La vérification vérifie que les données ont été copiées correctement. Exemples :
- Double saisie (taper un mot de passe deux fois), ou un contrôle visuel (le relire à haute voix).
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.
Vérifier les données en transit
- Quand les données circulent, des bits peuvent changer. Une somme de contrôle ou un chiffre de contrôle détecte cela.
- L'expéditeur calcule un petit nombre à partir des données ; le destinataire le recalculer. S'ils diffèrent, les données ont été corrompues.
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).
À vous
- Calculez un simple chiffre de contrôle en additionnant les chiffres modulo 10. Les systèmes réels (comme les codes-barres et les ISBNs) utilisent des versions plus ingénieuses de cette idée.
Covers : A-Level 6.2 (validation/vérification), IGCSE 2.2 (détection d'erreurs).
Common mistakes
- A checksum or check digit spots accidental changes to data.
- Validation checks data is sensible; verification checks it was entered correctly.
Erreurs courantes
- Une somme de contrôle ou un chiffre de contrôle repère les changements accidentels des données.
- La validation vérifie que les données sont sensées ; la vérification vérifie qu'elles ont été saisies correctement.
Hashes detect tampering · Les hachages détectent les altérations
Re-hash the data and compare: any change flips the digest. · Re-hachez les données et comparez : toute modification inverse le 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. · Une simple somme de contrôle aide à attraper les erreurs de frappe. Additionnez les chiffres de number et prenez le résultat modulo 10. Imprimez ce unique chiffre de contrôle.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
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. · Maintenant soyez le récepteur. L'expéditeur a transmis les chiffres avec le chiffre de contrôle 8, mais un chiffre a été corrompu en route. Recomptez la somme de contrôle de received et imprimez ERROR si elle ne correspond pas à sent_check, sinon OK.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.