¿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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Minimización | recoger solo los datos que hacen falta | |
| Finalidad | para qué se usan los datos | enviar un aviso |
| Dato necesario | un dato sin el cual no se cumple la finalidad | |
| Vista | una consulta guardada con nombre que se usa como una tabla | |
| Precisión | cuánto detalle tiene un dato | 1990 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
printf '[client]\nssl-verify-server-cert=0\n' > ~/.my.cnfSe 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
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
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
| Finalidad | Datos necesarios | Datos que sobran |
|---|---|---|
| Enviar el boletín | Correo electrónico | Teléfono, ciudad, fecha de nacimiento |
| Entregar un pedido | Nombre, dirección | Fecha de nacimiento |
| Avisar de que el pedido salió | Correo o teléfono, uno solo | El otro medio de contacto |
| Contar altas por año | El año de alta | Nombre, 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
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
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
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
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
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
-- 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
-- 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.