Data integrity — validation and verification · Intégrité des données — validation et vérification
| English | Français |
|---|---|
| integrity/ɪnˈteɡrɪti/ | intégrité |
| validation/ˌvælɪˈdeɪʃn/ | validation |
| verification/ˌverɪfɪˈkeɪʃn/ | vérification |
| range check/reɪndʒ tʃek/ | contrôle de plage |
| check digit/tʃek ˈdɪdʒɪt/ | chiffre de contrôle |
| double entry/ˈdʌbl ˈentri/ | double saisie |
| parity check/ˈpærɪti tʃek/ | contrôle de parité |
| checksum/ˈtʃeksəm/ | somme de contrôle |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | contrôle de redondance cyclique |
| parity block check/ˈpærɪti blɒk tʃek/ | contrôle de bloc de parité |
Every number passed every check
- In September 1999 NASA's Mars Climate Orbiter fired its engine to enter orbit and was never heard from again. It had flown 170 km lower than planned and burned up.
- One team's software produced thrust figures in pound-force seconds; the receiving software expected newton-seconds. Every value was a well-formed number in a sensible range. Every value was wrong by a factor of 4.45.
- No format check could have caught it, because the data was not malformed. It was simply not what it claimed to be. $327 million.
- This lesson is the two families of checks that guard integrity 完整性: validation, which asks whether data is sensible, and verification, which asks whether it was copied correctly. And the gap between them that Mars fell through.
Chaque nombre a passé tous les contrôles
- En septembre 1999, le vaisseau spatial Mars Climate Orbiter de la NASA a allumé son moteur pour entrer en orbite et n'a jamais été entendu depuis. Il s'est envolé 170 km plus bas que prévu et s'est brûlé.
- Les logiciels d'une équipe ont produit des valeurs de poussée en livres-force secondes ; le logiciel destinataire attendait des newton-secondes. Chaque valeur était un nombre correctement formaté et dans une plage raisonnable. Chaque valeur était erronée d'un facteur de 4.45.
- Aucun contrôle de format ne pouvait la capturer, car les données n'étaient pas malformées. Elles étaient simplement ce qu'elles n'affirmaient pas être. 327 millions $.
- Cette leçon porte sur les deux familles de contrôles qui garantissent l'intégrité 完整性 : la validation, qui demande si les données sont raisonnables, et la vérification, qui demande si elles ont été copiées correctement. Et l'écart entre elles dans lequel Mars est tombé.
Two questions
- Data has integrity when it is accurate, consistent and complete.
- Validation 验证 is an automatic check that entered data is reasonable and follows set rules. It asks: is this sensible?
- Verification 核对 checks that data has been entered or transferred correctly, by comparing it with the source or with a recomputed value. It asks: was this copied correctly?
- Neither proves the data is true. Both are needed.
Deux questions
- Les données ont de l'intégrité lorsqu'elles sont précises, cohérentes et complètes.
- La validation 验证 est un contrôle automatique vérifiant que les données saisies sont raisonnables et suivent des règles établies. Elle demande : est-ce sensé ?
- La vérification 核对 vérifie que les données ont été saisies ou transférées correctement, en les comparant à la source ou à une valeur recalculée. Elle demande : a-t-il été copié correctement ?
- Aucune ne prouve que les données sont vraies. Les deux sont nécessaires.
Computing concept lab · Laboratoire de concepts informatiques
Classify concrete examples by the computing idea they demonstrate. · Classez les exemples concrets selon le concept informatique qu'ils illustrent.
Validation methods
| Check | Rule | Example |
|---|---|---|
| range check 范围检查 | between two limits | a month is 1 to 12 |
| limit check | on one side of a single limit | age ≥ 18 |
| existence (lookup) check | the value is in a list or table | the product code exists |
| length check | the right number of characters | a postcode of 6 characters |
| type / character check | the right kind of data | a phone field allows only digits |
| format check | matches a pattern | an email contains @ |
| presence check | required fields are not empty | a name is entered |
| check digit 校验位 | an extra digit computed from the others | ISBNs, card numbers |
Méthodes de validation
| Contrôle | Règle | Exemple |
|---|---|---|
| contrôle de plage 范围检查 | entre deux limites | un mois est compris entre 1 et 12 |
| contrôle de limite | d'un seul côté d'une limite unique | âge ≥ 18 |
| contrôle d'existence (recherche) | la valeur est dans une liste ou une table | le code produit existe |
| contrôle de longueur | le bon nombre de caractères | un code postal de 6 caractères |
| contrôle de type / caractère | le bon type de données | un champ téléphone n'autorise que les chiffres |
| contrôle de format | correspond à un motif | un e-mail contient @ |
| contrôle de présence | les champs obligatoires ne sont pas vides | un nom est saisi |
| chiffre de contrôle 校验位 | un chiffre supplémentaire calculé à partir des autres | les ISBN, les numéros de carte |
Checking that a month entered is between 1 and 12 is a: · Vérifier qu'un mois entré est compris entre 1 et 12 constitue un :
A range check confirms a value lies within sensible limits. · Un contrôle de plage confirme qu'une valeur se situe dans des limites raisonnables.
Match each validation check to its purpose. · Reliez chaque contrôle de validation à son objectif.
Presence = not empty; format = matches a pattern; check digit = computed to catch mistyped digits. · Présence = non vide ; format = correspond à un motif ; chiffre de contrôle = calculé pour capturer les chiffres mal tapés.
An extra digit computed from the others to catch a mistyped number (as on ISBNs and card numbers) is a ______ digit. · Un chiffre supplémentaire calculé à partir des autres pour capturer un nombre mal tapé (comme sur les ISBN et les numéros de carte) est un chiffre de ____.
A check digit is recomputed from the rest and compared, catching most single-digit and transposition errors. · Un chiffre de contrôle est recalculé à partir du reste et comparé, capturant la plupart des erreurs de chiffre unique et de transposition.
Worked example: name the check the pseudocode performs
| Pseudocode | Check |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
range check: between two limits |
IF x = "" THEN OUTPUT "Invalid" |
presence check: not empty |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
existence (lookup) check: one of a list |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
length check: six characters |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
format check: the first character is a letter |
- A car registration of one letter, three digits and two letters needs a format check on each position and a length check for six characters. A date of birth needs a format check (
DD/MM/YYYY), a range check (the month is 1 to 12, the year not in the future) and a presence check.
Exemple commenté : nommer le contrôle effectué par le pseudocode
| Pseudocode | Contrôle |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
contrôle de plage : entre deux limites |
IF x = "" THEN OUTPUT "Invalid" |
vérification de présence : pas vide |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
contrôle d'existence (recherche) : l'un d'une liste |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
contrôle de longueur : six caractères |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
contrôle de format : le premier caractère est une lettre |
- Une plaque d'immatriculation automobile d'une lettre, trois chiffres et deux lettres nécessite un contrôle de format sur chaque position et un contrôle de longueur pour six caractères. Une date de naissance nécessite un contrôle de format (
DD/MM/YYYY), un contrôle de plage (le mois est de 1 à 12, l'année non future) et un contrôle de présence.
Match each line of pseudocode to the validation check it performs. · Reliez chaque ligne de pseudocode au contrôle de validation qu'elle effectue.
Empty test = presence; character count = length; two limits = range; a list of allowed values = existence or lookup. · Test de vide = présence ; comptage de caractères = longueur ; deux limites = plage ; liste de valeurs autorisées = existence ou lookup.
Worked example: a check digit, and what it misses
- A simple scheme: the check digit is the remainder when the digit sum is divided by 10, appended to the number.
4162has digit sum 13, so it is stored as41623. - A user types
41523: the sum is now 12, the check digit should be 2, so the error is caught. - A user types
14623: the first two digits are swapped, but the sum is still 13, so the check digit matches and the error is not caught. Real schemes (ISBN, card numbers) weight each position so that a swap changes the result.
Exemple commenté : un chiffre de contrôle et ce qu'il rate
- Un schéma simple : le chiffre de contrôle est le reste de la division de la somme des chiffres par 10, ajouté au numéro.
4162a une somme de chiffres de 13, donc il est stocké comme41623. - Un utilisateur tape
41523: la somme est maintenant 12, le chiffre de contrôle devrait être 2, donc l'erreur est détectée. - Un utilisateur tape
14623: les deux premiers chiffres sont échangés, mais la somme reste 13, donc le chiffre de contrôle correspond et l'erreur n'est pas détectée. Les schémas réels (ISBN, numéros de carte) pondèrent chaque position pour qu'un échange modifie le résultat.
What validation cannot do
- Validation catches data that is wrongly formatted or out of range.
- It cannot catch data that has the right format and is factually wrong.
Bobtyped forBibpasses every check; so did every thrust figure sent to Mars. - For that you need verification against the source, and a person who reads what they typed.
Ce que la validation ne peut pas faire
- La validation capture les données mal formatées ou hors plage.
- Elle ne peut pas capturer les données ayant le bon format et étant factuellement fausses.
Bobtapé pourBibpasse tous les contrôles ; c'était aussi le cas de chaque figure de poussée envoyée à Mars. - Pour cela, il faut une vérification par rapport à la source, et une personne lisant ce qu'elle a tapé.
Why can validation still let bad data through? · Pourquoi la validation peut-elle laisser passer des mauvaises données ?
Validation checks the form, not the truth — a correctly formatted but wrong value passes. · La validation vérifie la forme, pas la vérité — une valeur correctement formatée mais erronée passe.
Verification during data entry
- Double entry 双重录入: the data is entered twice, by the same person or by two people, and the computer compares the two versions and reports any difference. A new password is the everyday case.
- Visual check: the person compares what is on the screen with the original source document and corrects any difference before saving.
- Both protect integrity by making sure the stored data matches the source.
Vérification lors de la saisie de données
- Double saisie 双重录入 : les données sont saisies deux fois, par la même personne ou par deux personnes, et l'ordinateur compare les deux versions et signale toute différence. Un nouveau mot de passe est le cas quotidien.
- Contrôle visuel : la personne compare ce qui est à l'écran avec le document source original et corrige toute différence avant l'enregistrement.
- Les deux protègent l'intégrité en s'assurant que les données stockées correspondent à la source.
Asking a user to type a new password twice is an example of: · Demander à un utilisateur de taper un nouveau mot de passe deux fois est un exemple de :
Double entry compares two typed copies to verify the data was entered correctly. · La double saisie compare deux copies tapées pour vérifier que les données ont été entrées correctement.
Verification during data transfer
- Bits can flip in transit. A parity check 奇偶校验 adds one extra bit to each byte so that the number of 1s is even (even parity) or odd; the receiver recounts, and a single flipped bit fails the count.
- A checksum 校验和 is a value calculated from a block of data by an algorithm and sent with it; the receiver recalculates it and compares. Transferring video files from a camera to a server works this way: a mismatch means retransmit.
- A cyclic redundancy check 循环冗余校验 (CRC) is a stronger checksum using polynomial division, catching many more error patterns.
One extra bit makes the count of 1s even; a flipped bit breaks it
Compute, send, recompute, compare
Vérification lors du transfert de données
- Des bits peuvent changer pendant le transit. Un contrôle de parité 奇偶校验 ajoute un bit supplémentaire à chaque octet pour que le nombre de 1 soit pair (parité paire) ou impair ; le récepteur recompte, et un seul bit retourné échoue au comptage.
- Une somme de contrôle 校验和 est une valeur calculée à partir d'un bloc de données par un algorithme et envoyée avec celui-ci ; le récepteur la recalculera et la compare. Le transfert de fichiers vidéo d'un appareil photo vers un serveur fonctionne ainsi : une incompatibilité signifie une retransmission.
- Un contrôle de redondance cyclique 循环冗余校验 (CRC) est une somme de contrôle plus puissante utilisant la division polynomiale, capturant de nombreux autres motifs d'erreurs.

Un bit supplémentaire rend le comptage de 1 pair ; un bit retourné le brise

Calculer, envoyer, recalculer, comparer
A parity check works by: · Un contrôle de parité fonctionne en :
The parity bit makes the count of 1s even or odd; the receiver re-counts to detect a single-bit error. · Le bit de parité rend le compte de 1 pair ou impair ; le récepteur recompte pour détecter une erreur sur un seul bit.
Which are verification methods used during data transfer? Select all · tout that apply. · Quelles sont les méthodes de vérification utilisées pendant le transfert de données ? Sélectionnez toutes celles qui s'appliquent.
Parity and checksums recompute a value at the receiving end. Double entry and a visual check happen during data entry. · Parité et sommes de contrôle recalculent une valeur à l'extrémité réceptrice. Double saisie et contrôle visuel ont lieu lors de la saisie des données.
A byte parity check detects every possible transmission error in that byte. · Un contrôle de parité octet détecte toute erreur de transmission possible dans cet octet.
Two flipped bits leave the count of 1s unchanged, so they pass. Parity reliably catches single-bit errors only. · Deux bits inversés laissent le compte de 1 inchangé, donc ils passent. La parité ne capture fiablement que les erreurs sur un seul bit.
Worked example: a parity block locates the bit
- A parity block check 奇偶块校验 arranges the bytes in a grid: each byte carries a row parity bit, and one extra parity byte holds the column parity of the bytes above it.
- Four bytes are sent with even parity, followed by the parity byte. Count the 1s in every row and column: byte 3 has five and column 4 has three, both odd.
- The bit where that row and that column cross is the one that changed, so it is reset from 1 to 0. A single parity bit detects an error; a block locates and corrects it.
One row wrong, one column wrong: the bit is at the crossing
Exemple commenté : un bloc de parité localise le bit
- Un contrôle de bloc de parité 奇偶块校验 dispose les octets dans une grille : chaque octet porte un bit de parité de ligne, et un octet de parité supplémentaire contient la parité de colonne des octets situés au-dessus.
- Quatre octets sont envoyés avec parité paire, suivis de l'octet de parité. Comptez les 1 dans chaque ligne et chaque colonne : l'octet 3 en a cinq et la colonne 4 en a trois, tous deux impairs.
- Le bit à l'intersection de cette ligne et de cette colonne est celui qui a changé, il est donc réinitialisé de 1 à 0. Un seul bit de parité détecte une erreur ; un bloc localise et corrige l'erreur.

Une ligne erronée, une colonne erronée : le bit se trouve à l'intersection
Put the steps of a parity block check in order. · Placez les étapes d'un contrôle de bloc de parité dans l'ordre.
Rows detect, columns detect, the crossing locates, and the flip corrects. That is what a block adds over a single parity bit. · Les lignes détectent, les colonnes détectent, l'intersection localise, et l'inversion corrige. C'est ce qu'ajoute un bloc par rapport à un bit de parité unique.
Worked example: which check catches which error
- A user types their date of birth as
31/02/2009, then types their email address twice. Which check catches which error, and what is the difference? - Validation: a format or range check rejects
31/02/2009, because February never has 31 days. The computer tests the value against a rule. - Verification: double entry compares the two email addresses and reports a mismatch if they differ. The computer compares two copies, and it would accept a wrong address typed identically twice.
- Validation asks whether the data is sensible; verification asks whether it was entered correctly.
Sensible, or copied correctly: two different questions
Exemple résolu : quelle vérification détecte quelle erreur
- Un utilisateur tape sa date de naissance comme
31/02/2009, puis tape son adresse e-mail deux fois. Quelle vérification détecte quelle erreur, et quelle est la différence ? - Validation : une vérification de format ou de plage rejette
31/02/2009, car février n'a jamais 31 jours. L'ordinateur teste la valeur selon une règle. - Vérification : la double saisie compare les deux adresses e-mail et signale une incohérence si elles diffèrent. L'ordinateur compare deux copies, et il accepterait une mauvaise adresse tapée identiquement deux fois.
- La validation demande si les données sont sensées ; la vérification demande si elles ont été saisies correctement.

Sensé, ou copié correctement : deux questions différentes
Which statement is correct? · Quelle affirmation est correcte ?
Validation tests sensibility against rules; verification tests that the data was entered/transferred without change. · La validation teste la cohérence selon des règles ; la vérification teste que les données ont été saisies/transférées sans modification.
Verification proves the data was copied or entered without change — but not that the value is factually correct. · La vérification prouve que les données ont été copiées ou saisies sans modification — mais pas que la valeur est factuellement correcte.
Double entry / checksums prove the data arrived unchanged; only a human or a cross-check can confirm it is actually true. · Double saisie / sommes de contrôle prouvent que les données sont arrivées intactes ; seul un humain ou une comparaison croisée peut confirmer qu'elles sont réellement vraies.
Marks that slip away
- A check digit is validation on entry; parity and a checksum verify a transfer. Do not file them under the wrong heading.
- Neither check proves the data is true. Validation says "reasonable"; verification says "matches the source".
- A byte parity check misses two flipped bits in the same byte, because they cancel. Say "single-bit errors".
- Encryption is a security measure. It does nothing for integrity.
Pièges qui font perdre des points
- Un chiffre de contrôle est une validation à la saisie ; la parité et une somme de contrôle vérifient un transfert. Ne les classez pas sous la mauvaise catégorie.
- Aucune vérification ne prouve que les données sont vraies. La validation dit "raisonnable" ; la vérification dit "correspond à la source".
- Une vérification de parité d'octet manque deux bits inversés dans le même octet, car ils s'annulent. Dites "erreurs sur un seul bit".
- Le chiffrement est une mesure de sécurité. Il ne fait rien pour l'intégrité.
You've got it
- validation = automatic rules on entry: range, limit, existence, length, type, format, presence, check digit; it cannot catch right-format-but-wrong values
- verification on entry = double entry and a visual check; on transfer = parity (byte or block), checksum, CRC
- a parity block locates a flipped bit at the crossing of the failing row and column
- validation asks "sensible?"; verification asks "copied correctly?"; neither asks "true?"
Vous avez compris
- validation = règles automatiques à la saisie : plage, limite, existence, longueur, type, format, présence, chiffre de contrôle ; elle ne peut pas capturer des valeurs de bon format mais fausses
- vérification à la saisie = double saisie et vérification visuelle ; à un transfert = parité (octet ou bloc), somme de contrôle, CRC
- un bloc de parité localise un bit inversé à l'intersection de la ligne et de la colonne défaillantes
- la validation demande "est-ce raisonnable ?" ; la vérification demande "est-ce copié correctement ?" ; aucune ne demande "est-ce vrai ?"