Data integrity — validation and verification · Integridade dos dados — validação e verificação
| English | Português |
|---|---|
| integrity/ɪnˈteɡrɪti/ | integridade |
| validation/ˌvælɪˈdeɪʃn/ | validação |
| verification/ˌverɪfɪˈkeɪʃn/ | verificação |
| range check/reɪndʒ tʃek/ | verificação de intervalo |
| check digit/tʃek ˈdɪdʒɪt/ | dígito verificador |
| double entry/ˈdʌbl ˈentri/ | entrada dupla |
| parity check/ˈpærɪti tʃek/ | verificação de paridade |
| checksum/ˈtʃeksəm/ | soma de verificação |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | verificação de redundância cíclica |
| parity block check/ˈpærɪti blɒk tʃek/ | verificação de bloco de paridade |
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.
Todos os números passaram em todos os testes
- Em setembro de 1999, o Mars Climate Orbiter da NASA acionou seu motor para entrar em órbita e nunca mais foi ouvido. Voou 170 km abaixo do planejado e se queimou.
- O software de uma equipe produziu valores de impulso em libras-força por segundo; o software receptor esperava newton-segundos. Todos os valores eram números bem formados dentro de uma faixa razoável. Cada valor estava errado por um fator de 4.45.
- Nenhuma verificação de formato poderia ter detectado, porque os dados não estavam malformados. Simplesmente não eram o que afirmavam ser. $327 milhões.
- Esta lição trata das duas famílias de verificações que protegem a integridade 完整性: validação, que pergunta se os dados são sensatos, e verificação, que pergunta se foram copiados corretamente. E a lacuna entre elas através da qual Marte caiu.
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.
Duas perguntas
- Dados têm integridade quando são precisos, consistentes e completos.
- Validação 验证 é uma verificação automática de que os dados inseridos são razoáveis e seguem regras definidas. Pergunta: isso faz sentido?
- Verificação 核对 verifica se os dados foram inseridos ou transferidos corretamente, comparando-os com a fonte ou com um valor recomputado. Pergunta: estes foram copiados corretamente?
- Nenhuma delas prova que os dados são verdadeiros. Ambas são necessárias.
Computing concept lab · Laboratório de conceitos de computação
Classify concrete examples by the computing idea they demonstrate. · Classifique exemplos concretos pelo conceito de computação que eles demonstram.
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étodos de validação
| Verificação | Regra | Exemplo |
|---|---|---|
| verificação de intervalo 范围检查 | entre dois limites | um mês é de 1 a 12 |
| verificação de limite | de um lado de um único limite | idade ≥ 18 |
| verificação de existência (lookup) | o valor está em uma lista ou tabela | o código do produto existe |
| verificação de comprimento | o número correto de caracteres | um CEP de 6 caracteres |
| verificação de tipo / caractere | o tipo correto de dado | um campo de telefone permite apenas dígitos |
| verificação de formato | corresponde a um padrão | um e-mail contém @ |
| verificação de presença | campos obrigatórios não estão vazios | um nome é inserido |
| dígito verificador 校验位 | um dígito extra calculado a partir dos outros | ISBNs, números de cartão |
Checking that a month entered is between 1 and 12 is a: · Verificar se um mês digitado está entre 1 e 12 é uma:
A range check confirms a value lies within sensible limits. · Uma verificação de intervalo confirma que um valor está dentro de limites razoáveis.
Match each validation check to its purpose. · Combine cada verificação de validação com seu propósito.
Presence = not empty; format = matches a pattern; check digit = computed to catch mistyped digits. · Presença = não vazio; formato = corresponde a um padrão; dígito verificador = calculado para capturar dígitos digitados incorretamente.
An extra digit computed from the others to catch a mistyped number (as on ISBNs and card numbers) is a ______ digit. · Um dígito extra calculado a partir dos outros para capturar um número digitado incorretamente (como em ISBNs e números de cartão) é um dígito ______.
A check digit is recomputed from the rest and compared, catching most single-digit and transposition errors. · Um dígito verificador é recalculado a partir do restante e comparado, capturando a maioria dos erros de dígito único e inversão.
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.
Exemplo resolvido: nomeie a verificação que o pseudocódigo realiza
| Pseudocódigo | Verificação |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
verificação de intervalo: entre dois limites |
IF x = "" THEN OUTPUT "Invalid" |
verificação de presença: não vazio |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
verificação de existência (lookup): um de uma lista |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
verificação de comprimento: seis caracteres |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
verificação de formato: o primeiro caractere é uma letra |
- Uma placa de carro com uma letra, três dígitos e duas letras precisa de uma verificação de formato em cada posição e uma verificação de comprimento para seis caracteres. Uma data de nascimento precisa de uma verificação de formato (
DD/MM/YYYY), uma verificação de intervalo (o mês é de 1 a 12, o ano não no futuro) e uma verificação de presença.
Match each line of pseudocode to the validation check it performs. · Combine cada linha de pseudocódigo com a verificação de validação que ele realiza.
Empty test = presence; character count = length; two limits = range; a list of allowed values = existence or lookup. · Teste de vazio = presença; contagem de caracteres = comprimento; dois limites = intervalo; lista de valores permitidos = existência ou busca.
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.
Exemplo resolvido: um dígito verificador e o que ele não captura
- Um esquema simples: o dígito verificador é o resto quando a soma dos dígitos é dividida por 10, anexado ao número.
4162tem soma de dígitos 13, então é armazenado como41623. - Um usuário digita
41523: a soma agora é 12, o dígito verificador deveria ser 2, então o erro é captado. - Um usuário digita
14623: os primeiros dois dígitos foram trocados, mas a soma ainda é 13, então o dígito verificador corresponde e o erro não é captado. Esquemas reais (ISBN, números de cartão) ponderam cada posição para que uma troca altere o resultado.
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.
O que a validação não pode fazer
- A validação captura dados que estão incorretamente formatados ou fora de intervalo.
- Ela não pode capturar dados que têm o formato correto e são factualmente errados.
Bobdigitado paraBibpassa em todas as verificações; assim passou cada figura de empuxo enviada a Marte. - Para isso, você precisa de verificação contra a fonte, e de uma pessoa que leia o que digitou.
Why can validation still let bad data through? · Por que a validação ainda pode deixar passar dados ruins?
Validation checks the form, not the truth — a correctly formatted but wrong value passes. · Validação verifica a forma, não a verdade — um valor formatado corretamente, mas errado, passa.
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.
Verificação durante a entrada de dados
- Entrada dupla 双重录入: os dados são inseridos duas vezes, pela mesma pessoa ou por duas pessoas, e o computador compara as duas versões e relata qualquer diferença. Uma nova senha é o caso cotidiano.
- Verificação visual: a pessoa compara o que está na tela com o documento original e corrige qualquer diferença antes de salvar.
- Ambos protegem a integridade garantindo que os dados armazenados correspondam à fonte.
Asking a user to type a new password twice is an example of: · Pedir ao usuário para digitar uma nova senha duas vezes é um exemplo de:
Double entry compares two typed copies to verify the data was entered correctly. · Entrada dupla compara duas cópias digitadas para verificar se os dados foram inseridos corretamente.
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
Verificação durante a transferência de dados
- Bits podem inverter durante a transmissão. Uma verificação de paridade 奇偶校验 adiciona um bit extra a cada byte para que o número de 1s seja par (paridade par) ou ímpar; o receptor reconta, e um único bit invertido falha na contagem.
- Um checksum 校验和 é um valor calculado a partir de um bloco de dados por um algoritmo e enviado junto; o receptor o recalcula e compara. Transferir arquivos de vídeo de uma câmera para um servidor funciona assim: uma discrepância significa retransmissão.
- Uma verificação de redundância cíclica 循环冗余校验 (CRC) é um checksum mais forte usando divisão polinomial, capturando muitos mais padrões de erro.

Um bit extra torna a contagem de 1s par; um bit invertido a quebra

Calcular, enviar, recalcular, comparar
A parity check works by: · Uma verificação de paridade funciona através de:
The parity bit makes the count of 1s even or odd; the receiver re-counts to detect a single-bit error. · O bit de paridade torna a contagem de 1s par ou ímpar; o receptor reconta para detectar um erro de bit único.
Which are verification methods used during data transfer? Select all · todos that apply. · Quais são métodos de verificação usados durante a transferência de dados? Selecione todos os que se aplicam.
Parity and checksums recompute a value at the receiving end. Double entry and a visual check happen during data entry. · Paridade e somas de verificação recomputam um valor na extremidade receptora. Entrada dupla e verificação visual ocorrem durante a entrada de dados.
A byte parity check detects every possible transmission error in that byte. · Uma verificação de paridade de byte detecta todos os erros possíveis de transmissão naquele byte.
Two flipped bits leave the count of 1s unchanged, so they pass. Parity reliably catches single-bit errors only. · Dois bits invertidos deixam a contagem de 1s inalterada, então eles passam. Paridade captura confiavelmente apenas erros de bit único.
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
Exemplo resolvido: um bloco de paridade localiza o bit
- Uma verificação de bloco de paridade 奇偶块校验 organiza os bytes em uma grade: cada byte carrega um bit de paridade de linha, e um byte de paridade extra contém a paridade de coluna dos bytes acima dele.
- Quatro bytes são enviados com paridade par, seguidos pelo byte de paridade. Conte os bits '1' em cada linha e coluna: o byte 3 tem cinco e a coluna 4 tem três, ambos ímpares.
- O bit onde aquela linha e aquela coluna se cruzam é o que mudou, portanto ele é resetado de 1 para 0. Um único bit de paridade detecta um erro; um bloco localiza e corrige-o.

Uma linha errada, uma coluna errada: o bit está na interseção
Put the steps of a parity block check in order. · Coloque as etapas de uma verificação de bloco de paridade em ordem.
Rows detect, columns detect, the crossing locates, and the flip corrects. That is what a block adds over a single parity bit. · Linhas detectam, colunas detectam, o cruzamento localiza, e a inversão corrige. É isso que um bloco adiciona além de um único bit de paridade.
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
Exemplo resolvido: qual verificação captura qual erro
- Um usuário digita sua data de nascimento como
31/02/2009, depois digita seu endereço de e-mail duas vezes. Qual verificação captura qual erro, e qual é a diferença? - Validação: uma verificação de formato ou intervalo rejeita
31/02/2009, porque fevereiro nunca tem 31 dias. O computador testa o valor contra uma regra. - Verificação: entrada dupla compara os dois endereços de e-mail e relata uma incompatibilidade se diferirem. O computador compara duas cópias, e aceitaria um endereço errado digitado idênticamente duas vezes.
- A validação pergunta se os dados fazem sentido; a verificação pergunta se foram inseridos corretamente.

*Sensato, ou copiado corretamente: duas perguntas diferentes
Which statement is correct? · Qual afirmação está correta?
Validation tests sensibility against rules; verification tests that the data was entered/transferred without change. · Validação testa a sensatez contra regras; verificação testa se os dados foram inseridos/transferred sem alteração.
Verification proves the data was copied or entered without change — but not that the value is factually correct. · Verificação prova que os dados foram copiados ou inseridos sem alteração — mas não que o valor é factualmente correto.
Double entry / checksums prove the data arrived unchanged; only a human or a cross-check can confirm it is actually true. · Entrada dupla / somas de verificação provam que os dados chegaram sem alterações; apenas um humano ou uma verificação cruzada pode confirmar que é realmente verdadeiro.
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.
Marcas que escapam
- Um dígito verificador é validação na entrada; paridade e um checksum verificam uma transferência. Não os classifique sob o título errado.
- Nenhuma verificação prova que os dados são verdadeiros. Validação diz "razoável"; verificação diz "corresponde à fonte".
- Uma verificação de paridade de byte perde dois bits invertidos no mesmo byte, porque eles se cancelam. Diga "erros de bit único".
- Criptografia é uma medida de segurança. Não faz nada pela integridade.
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?"
Entendeu?
- validação = regras automáticas na entrada: intervalo, limite, existência, comprimento, tipo, formato, presença, dígito verificador; não pode capturar valores com formato correto, mas errados
- verificação na entrada = entrada dupla e uma verificação visual; na transferência = paridade (byte ou bloco), checksum, CRC
- um bloco de paridade localiza um bit invertido na interseção da linha e da coluna que falharam
- validação pergunta "faz sentido?"; verificação pergunta "foi copiado corretamente?"; nenhuma pergunta "é verdadeiro?"