¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Minimización de datos: recoger menos

Después de esta lección: Puedo reducir los datos que recoge un sistema a los que de verdad necesita.

Lección de 55 min8 comandosLaboratorio de MySQL y phpMyAdmin con una base de datos de una tienda para practicar SQL

¿Cuántos datos hace falta pedir?

La minimización de datos consiste en recoger solo los datos que hacen falta para un fin concreto. Es una de las formas más baratas de proteger a las personas, porque un dato que no tienes no se puede perder ni robar.

Un formulario que pide la fecha de nacimiento, el teléfono y la dirección para enviar un boletín guarda mucho más de lo necesario. ¿Cuánto se puede quitar?

Al terminar esta lección

Nota

Puedo reducir los datos que recoge un sistema a los que de verdad necesita.

Palabras clave

PalabraQué significaEjemplo
Minimizaciónrecoger solo los datos que hacen falta
Finalidadpara qué se usan los datosenviar un aviso
Dato necesarioun dato sin el cual no se cumple la finalidad
Vistauna consulta guardada con nombre que se usa como una tabla
Precisióncuánto detalle tiene un dato1990 o 12/04/1990

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

La finalidad decide qué datos hacen falta

Antes de pedir un dato, pregunta para qué lo quieres. Esa respuesta es la finalidad.

Si no puedes decir para qué sirve una columna, sobra. Si dos columnas sirven para lo mismo, quizá baste una.

Ejecuta las dos líneas de preparación. Después cuenta cuántos datos guarda de cada cliente la tienda del laboratorio.

Aceptar el certificado del servidor

Comando
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnf

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un nombre corto para el cliente

Comando
alias db='mariadb -h db -u student -pstudent -t -e'

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Las columnas que guarda de cada cliente

Comando
db "SELECT column_name AS columna FROM information_schema.columns WHERE table_schema = 'shop' AND table_name = 'customers' ORDER BY ordinal_position"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo resuelto: qué datos necesita cada finalidad

FinalidadDatos necesariosDatos que sobran
Enviar el boletínCorreo electrónicoTeléfono, ciudad, fecha de nacimiento
Entregar un pedidoNombre, direcciónFecha de nacimiento
Avisar de que el pedido salióCorreo o teléfono, uno soloEl otro medio de contacto
Contar altas por añoEl año de altaNombre, correo, teléfono

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Una vista enseña solo las columnas que eliges

A veces los datos ya están guardados y alguien solo necesita una parte. Una vista es una consulta guardada con nombre. Se usa como una tabla, pero muestra solo las columnas que tú elegiste.

Quien recibe la vista no ve el teléfono ni el correo si no los incluiste. Es la forma de dar acceso con menos datos.

Crea tu propia base y una vista de avisos con el id, el nombre de pila y la ciudad.

Crear tu propia base

Comando
db "CREATE DATABASE IF NOT EXISTS student_privacy"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Crear la vista de avisos

Comando
db "CREATE OR REPLACE VIEW student_privacy.avisos AS SELECT id, first_name, city FROM shop.customers"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Leer la vista como una tabla

Comando
db "SELECT * FROM student_privacy.avisos WHERE id <= 3 ORDER BY id"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pedir el teléfono a la vista

Comando
db "SELECT phone FROM student_privacy.avisos"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error frecuente

Advertencia

Mucha gente cree que es mejor guardarlo todo por si algún día sirve. Cada dato guardado es un riesgo y una carga. Guarda un dato solo si sabes para qué lo usarás. Si no lo sabes hoy, no lo recojas.

Menos precisión también es recoger menos

A veces el dato hace falta, pero no con todo su detalle. Para saber si alguien es mayor de edad basta el año de nacimiento, no el día.

Una ciudad basta donde no hace falta una calle. Un rango de edad basta donde no hace falta una fecha.

Menos precisión señala a menos personas. Prueba con la fecha de alta de los clientes.

Quedarse solo con el año

Comando
db "SELECT id, joined_on, YEAR(joined_on) AS alta_anio FROM shop.customers WHERE id <= 3 ORDER BY id"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Pruébalo: un aviso con pocas columnas

Código: sql
-- El aviso de la clase de mañana solo necesita un nombre y un correo.
SELECT id, first_name, email FROM members
WHERE city = 'Getafe'
ORDER BY id;
-- Cambia la ciudad y ejecútalo otra vez. Fíjate en lo que no sale.

Pruébalo: solo el año de nacimiento

Código: sql
-- Para saber si hay socios mayores de edad basta el año de nacimiento.
SELECT id, substr(birth_date, 1, 4) AS birth_year FROM members
ORDER BY id;
-- Añade WHERE para ver solo los nacidos antes de 1990.

Para ir más allá

Piensa en el formulario de inscripción de un club de tu facultad. Haz una lista de todo lo que pide y, junto a cada dato, escribe la finalidad.

Tacha los que no tengan finalidad. Después busca uno que se pueda pedir con menos precisión, y di cómo lo pedirías.

Sobre este laboratorio y su código: Laboratorio de MySQL y phpMyAdmin con una base de datos de una tienda para practicar SQL

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.