Data integrity — validation and verification · Integridad de datos — validación y verificación
| English | Español |
|---|---|
| integrity/ɪnˈteɡrɪti/ | integridad |
| validation/ˌvælɪˈdeɪʃn/ | validación |
| verification/ˌverɪfɪˈkeɪʃn/ | verificación |
| range check/reɪndʒ tʃek/ | comprobación de rango |
| check digit/tʃek ˈdɪdʒɪt/ | dígito de control |
| double entry/ˈdʌbl ˈentri/ | doble entrada |
| parity check/ˈpærɪti tʃek/ | comprobación de paridad |
| checksum/ˈtʃeksəm/ | suma de comprobación |
| cyclic redundancy check/ˈsaɪklɪk rɪˈdʌndənsi tʃek/ | control de redundancia cíclica |
| parity block check/ˈpærɪti blɒk tʃek/ | control de bloque de paridad |
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.
Cada número superó todas las comprobaciones
- En septiembre de 1999, el Orbitador Climático de Marte de la NASA encendió su motor para entrar en órbita y nunca volvió a tenerse noticias de él. Voló 170 km por debajo de lo planeado y se desintegró.
- El software de un equipo produjo figuras de empuje en segundos-libra-fuerza; el software receptor esperaba newton-segundos. Cada valor era un número bien formado dentro de un rango sensato. Cada valor estaba equivocado por un factor de 4.45.
- Ninguna comprobación de formato podría haberlo detectado, porque los datos no estaban mal formados. Simplemente no eran lo que afirmaban ser. $327 millones.
- Esta lección trata sobre las dos familias de comprobaciones que protegen la integridad 完整性: la validación, que pregunta si los datos son sensatos, y la verificación, que pregunta si se copiaron correctamente. Y la brecha entre ellas a través de la cual cayó Marte.
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.
Dos preguntas
- Los datos tienen integridad cuando son precisos, consistentes y completos.
- La validación 验证 es una comprobación automática que verifica que los datos introducidos sean razonables y sigan las reglas establecidas. Pregunta: ¿es esto sensato?
- La verificación 核对 comprueba que los datos se hayan introducido o transferido correctamente, comparándolos con la fuente original o con un valor recalculado. Pregunta: ¿se copió esto correctamente?
- Ninguna prueba que los datos sean verdaderos. Ambas son necesarias.
Computing concept lab · Laboratorio de conceptos informáticos
Classify concrete examples by the computing idea they demonstrate. · Clasificar ejemplos concretos según la idea informática que demuestran.
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 validación
| Comprobación | Regla | Ejemplo |
|---|---|---|
| comprobación de rango 范围检查 | entre dos límites | un mes está entre 1 y 12 |
| comprobación de límite | en un lado de un único límite | edad ≥ 18 |
| existencia (búsqueda) comprobación | el valor está en una lista o tabla | el código del producto existe |
| comprobación de longitud | el número correcto de caracteres | un código postal de 6 caracteres |
| comprobación de tipo / carácter | el tipo correcto de datos | un campo de teléfono solo permite dígitos |
| comprobación de formato | coincide con un patrón | un correo electrónico contiene @ |
| comprobación de presencia | los campos obligatorios no están vacíos | se introduce un nombre |
| dígito de control 校验位 | un dígito extra calculado a partir de los demás | ISBNs, números de tarjetas |
Checking that a month entered is between 1 and 12 is a: · Comprobar que un mes introducido está entre 1 y 12 es una:
A range check confirms a value lies within sensible limits. · Una comprobación de rango confirma que un valor se encuentra dentro de límites razonables.
Match each validation check to its purpose. · Empareja cada comprobación de validación con su propósito.
Presence = not empty; format = matches a pattern; check digit = computed to catch mistyped digits. · Presencia = no vacío; formato = coincide con un patrón; dígito de control = calculado para detectar dígitos mal tecleados.
An extra digit computed from the others to catch a mistyped number (as on ISBNs and card numbers) is a ______ digit. · Un dígito extra calculado a partir de los demás para detectar un número mal tecleado (como en ISBNs y números de tarjetas) es un dígito ______.
A check digit is recomputed from the rest and compared, catching most single-digit and transposition errors. · Un dígito de control se recalcula a partir del resto y se compara, detectando la mayoría de errores de un solo dígito e inversión.
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.
Ejercicio resuelto: nombra la comprobación que realiza el pseudocódigo
| Pseudocódigo | Comprobación |
|---|---|
IF x < 0 OR x > 10 THEN OUTPUT "Invalid" |
comprobación de rango: entre dos límites |
IF x = "" THEN OUTPUT "Invalid" |
comprobación de presencia: no vacío |
IF NOT(x = "Red" OR x = "Yellow" OR x = "Blue") THEN OUTPUT "Invalid" |
comprobación de existencia (búsqueda): uno de una lista |
IF LENGTH(x) <> 6 THEN OUTPUT "Invalid" |
comprobación de longitud: seis caracteres |
IF MID(x, 1, 1) < "A" OR MID(x, 1, 1) > "Z" THEN OUTPUT "Invalid" |
comprobación de formato: el primer carácter es una letra |
- Una matrícula de coche con una letra, tres dígitos y dos letras necesita una comprobación de formato en cada posición y una comprobación de longitud para seis caracteres. Una fecha de nacimiento necesita una comprobación de formato (
DD/MM/YYYY), una comprobación de rango (el mes es de 1 a 12, el año no futuro) y una comprobación de presencia.
Match each line of pseudocode to the validation check it performs. · Empareja cada línea de pseudocódigo con la comprobación de validación que realiza.
Empty test = presence; character count = length; two limits = range; a list of allowed values = existence or lookup. · Prueba de vacío = presencia; recuento de caracteres = longitud; dos límites = rango; lista de valores permitidos = existencia o búsqueda.
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.
Ejercicio resuelto: un dígito de control y lo que pasa por alto
- Un esquema simple: el dígito de control es el resto cuando la suma de los dígitos se divide por 10, añadido al final del número.
4162tiene una suma de dígitos de 13, por lo que se almacena como41623. - Un usuario escribe
41523: la suma ahora es 12, el dígito de control debería ser 2, por lo que el error se detecta. - Un usuario escribe
14623: los dos primeros dígitos están intercambiados, pero la suma sigue siendo 13, por lo que el dígito de control coincide y el error no se detecta. Los esquemas reales (ISBN, números de tarjetas) ponderan cada posición de modo que un intercambio cambia el 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.
Lo que la validación no puede hacer
- La validación detecta datos que están mal formateados o fuera de rango.
- No puede detectar datos que tengan el formato correcto pero sean incorrectos factualmente.
Bobescrito paraBibsupera todas las comprobaciones; igual que cada figura de empuje enviada a Marte. - Para eso necesitas verificación contra la fuente, y una persona que lea lo que escribió.
Why can validation still let bad data through? · ¿Por qué la validación aún puede dejar pasar datos incorrectos?
Validation checks the form, not the truth — a correctly formatted but wrong value passes. · La validación verifica la forma, no la verdad: un valor con formato correcto pero erróneo pasa.
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.
Verificación durante la introducción de datos
- Doble entrada 双重录入: los datos se introducen dos veces, por la misma persona o por dos personas, y el ordenador compara las dos versiones e informa de cualquier diferencia. Una nueva contraseña es el caso cotidiano.
- Comprobación visual: la persona compara lo que aparece en la pantalla con el documento fuente original y corrige cualquier diferencia antes de guardar.
- Ambos protegen la integridad asegurándose de que los datos almacenados coincidan con la fuente.
Asking a user to type a new password twice is an example of: · Pedir al usuario que escriba una nueva contraseña dos veces es un ejemplo de:
Double entry compares two typed copies to verify the data was entered correctly. · La doble entrada compara dos copias escritas para verificar que los datos se introdujeron correctamente.
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
Verificación durante la transferencia de datos
- Los bits pueden invertirse durante el tránsito. Una comprobación de paridad 奇偶校验 añade un bit extra a cada byte de modo que el número de 1s sea par (paridad par) o impar; el receptor vuelve a contar, y un único bit invertido falla la cuenta.
- Una suma de comprobación 校验和 es un valor calculado a partir de un bloque de datos mediante un algoritmo y enviado junto con él; el receptor lo recalcula y compara. Transferir archivos de vídeo de una cámara a un servidor funciona así: una discrepancia significa retransmisión.
- Una comprobación de redundancia cíclica 循环冗余校验 (CRC) es una suma de comprobación más fuerte que utiliza división polinómica, detectando muchos más patrones de error.

Un bit extra hace que la cuenta de 1s sea par; un bit invertido lo rompe

Calcular, enviar, recalcular, comparar
A parity check works by: · Una comprobación de paridad funciona mediante:
The parity bit makes the count of 1s even or odd; the receiver re-counts to detect a single-bit error. · El bit de paridad hace que el conteo de 1s sea par o impar; el receptor vuelve a contar para detectar un error de un solo bit.
Which are verification methods used during data transfer? Select all · todos that apply. · ¿Cuáles son métodos de verificación utilizados durante la transferencia de datos? Selecciona todos los que correspondan.
Parity and checksums recompute a value at the receiving end. Double entry and a visual check happen during data entry. · La paridad y los checksums recalculan un valor en el extremo receptor. La doble entrada y la comprobación visual ocurren durante la introducción de datos.
A byte parity check detects every possible transmission error in that byte. · Una comprobación de paridad de byte detecta todas las posibles transmisiones de error en ese byte.
Two flipped bits leave the count of 1s unchanged, so they pass. Parity reliably catches single-bit errors only. · Dos bits invertidos dejan inalterado el conteo de 1s, por lo que pasan. La paridad detecta fiablemente solo errores de un solo 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
Ejercicio resuelto: un bloque de paridad localiza el bit
- Una comprobación de bloque de paridad 奇偶块校验 organiza los bytes en una cuadrícula: cada byte lleva un bit de paridad de fila, y un byte de paridad extra contiene la paridad de columna de los bytes encima de él.
- Se envían cuatro bytes con paridad par, seguidos del byte de paridad. Cuenta los 1s en cada fila y columna: el byte 3 tiene cinco y la columna 4 tiene tres, ambos impares.
- El bit donde esa fila y esa columna se cruzan es el que cambió, por lo que se restablece de 1 a 0. Un bit de paridad único detecta un error; un bloque lo localiza y lo corrige.

Una fila incorrecta, una columna incorrecta: el bit está en el cruce
Put the steps of a parity block check in order. · Ordena los pasos de una comprobación de bloque de paridad.
Rows detect, columns detect, the crossing locates, and the flip corrects. That is what a block adds over a single parity bit. · Las filas detectan, las columnas detectan, el cruce localiza, y la inversión corrige. Eso es lo que añade un bloque sobre un bit de paridad simple.
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
Ejercicio resuelto: qué comprobación detecta qué error
- Un usuario escribe su fecha de nacimiento como
31/02/2009, luego escribe su dirección de correo electrónico dos veces. ¿Qué comprobación detecta qué error, y cuál es la diferencia? - Validación: una comprobación de formato o rango rechaza
31/02/2009, porque febrero nunca tiene 31 días. El ordenador prueba el valor contra una regla. - Verificación: la doble entrada compara las dos direcciones de correo electrónico e informa de una discrepancia si difieren. El ordenador compara dos copias, y aceptaría una dirección incorrecta escrita idénticamente dos veces.
- La validación pregunta si los datos son sensatos; la verificación pregunta si se introdujeron correctamente.

Sensato, o copiado correctamente: dos preguntas diferentes
Which statement is correct? · ¿Qué afirmación es correcta?
Validation tests sensibility against rules; verification tests that the data was entered/transferred without change. · La validación prueba la sensatez contra reglas; la verificación prueba que los datos se introdujeron/transfirieron sin cambios.
Verification proves the data was copied or entered without change — but not that the value is factually correct. · La verificación demuestra que los datos se copiaron o introdujeron sin cambios — pero no que el valor sea factualmente correcto.
Double entry / checksums prove the data arrived unchanged; only a human or a cross-check can confirm it is actually true. · La doble entrada / los checksums prueban que los datos llegaron sin cambios; solo un humano o una comprobación cruzada puede confirmar que es realmente verdadero.
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.
Puntos que se pierden fácilmente
- Un dígito de control es validación en la entrada; paridad y una suma de comprobación verifican una transferencia. No los clasifiques bajo el encabezado incorrecto.
- Ninguna comprobación prueba que los datos sean verdaderos. La validación dice "razonable"; la verificación dice "coincide con la fuente".
- Una comprobación de paridad de byte pierde dos bits invertidos en el mismo byte, porque se cancelan. Di "errores de bit único".
- La cifrado es una medida de seguridad. No hace nada por la integridad.
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?"
Lo has entendido
- validación = reglas automáticas en la entrada: rango, límite, existencia, longitud, tipo, formato, presencia, dígito de control; no puede detectar valores de formato correcto pero incorrectos
- verificación en la entrada = doble entrada y una comprobación visual; en transferencia = paridad (byte o bloque), suma de comprobación, CRC
- un bloque de paridad localiza un bit invertido en el cruce de la fila y la columna fallidas
- la validación pregunta "¿sensato?"; la verificación pregunta "¿copiado correctamente?"; ninguna pregunta "¿verdadero?"