¿Para qué quiere mi fecha de nacimiento?
Un dato personal es cualquier dato que identifica a una persona, sola o junto con otros datos. La ley europea de protección de datos (RGPD) dice cómo hay que tratarlos.
Una app para reservar una pista de fútbol te pide nombre, dirección, teléfono y fecha de nacimiento. Para reservar una pista no hace falta casi nada de eso.
Al terminar esta lección
Nota
Puedo tratar datos personales de forma legal y proteger los de una tabla.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Dato personal | un dato que identifica a una persona | un correo |
| Consentimiento | el permiso libre y claro de la persona | |
| Minimización | pedir y guardar solo los datos necesarios | |
| Enmascarar | ocultar una parte de un dato | in***@example.com |
| Anonimizar | quitar lo que permite reconocer a la persona | |
| Derecho de acceso | poder pedir una copia de tus propios datos |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Qué cuenta como dato personal
Un nombre es un dato personal. También lo son un correo, un teléfono, una foto, una dirección IP o un número de cliente que lleva a una persona.
Hay datos que parecen inofensivos solos y no lo son juntos. Una ciudad, una edad y un instituto pueden señalar a una sola persona.
Ejemplo resuelto: ¿es un dato personal?
| Dato | ¿Personal? | Por qué |
|---|---|---|
| Ines Walker | Sí | Es un nombre y apellido |
| [email protected] | Sí | Lleva a una persona concreta |
| La media de pedidos de la tienda | No | No habla de nadie en concreto |
| Ciudad, edad e instituto de un alumno | Sí | Juntos pueden señalar a una sola persona |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
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 la tienda
alias sql='mariadb -h db -u student -pstudent shop -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.
Mirar tres clientes inventados
sql "SELECT first_name, email, phone FROM customers ORDER BY id LIMIT 3"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Cinco reglas para tratar datos personales
Primero, necesitas una razón legal, como el permiso de la persona o un contrato. Segundo, pides solo lo necesario. Tercero, usas los datos solo para lo que dijiste.
Cuarto, los guardas el menor tiempo posible y bien protegidos. Quinto, la persona puede pedir ver, corregir o borrar sus datos.
Ejemplo resuelto: la app de reservas
| Regla | Qué hace bien la app | Qué haría mal |
|---|---|---|
| Razón legal | Pide permiso claro para mandar avisos | Marca la casilla por defecto |
| Solo lo necesario | Pide nombre, correo y hora | Pide también la fecha de nacimiento |
| Para lo que dijo | Usa el correo para confirmar la reserva | Vende el correo a otra empresa |
| Poco tiempo y seguro | Borra la reserva a los dos años | Guarda todo para siempre sin clave |
| Derechos de la persona | Deja descargar o borrar la cuenta | No contesta a quien lo pide |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error frecuente
Advertencia
Mucha gente cree que basta quitar el nombre para anonimizar una tabla. No basta: una ciudad, una edad y un correo pueden señalar a una sola persona. Anonimizar es que nadie pueda reconocer a la persona, ni siquiera juntando otros datos.
La minimización empieza en la consulta
Cuando haces un informe, pide solo las columnas que necesitas. Un informe de clientes por país no necesita nombres ni correos.
Con GROUP BY y COUNT sacas el número de clientes de cada país, y no sale ninguna persona.
Clientes por país, sin ningún nombre
sql "SELECT country, COUNT(*) AS customers FROM customers GROUP BY country ORDER BY country"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Enmascarar oculta la parte que identifica
Si un informe necesita enseñar un dato, oculta una parte. De un correo dejas las dos primeras letras y el dominio.
LEFT(email, 2) toma las dos primeras letras y CONCAT junta textos. Otra técnica es generalizar: cambiar 34 años por «30-39».
Tres correos con la parte oculta
sql "SELECT CONCAT(LEFT(email, 2), '***@example.com') AS masked FROM customers ORDER BY id LIMIT 3"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: ocultar un correo en Python
# Oculta la parte de un correo que identifica a la persona.
email = "[email protected]"
at = email.find("@")
print(email[:2] + "***" + email[at:])
# Cambia el correo por otro de tu invención y vuelve a ejecutarlo.
Para ir más lejos
Tu función deja la ciudad, el tramo de edad y el correo oculto. En un pueblo pequeño, ¿podría alguien reconocer a una persona con esos tres datos? Explica por qué.
Después propón un cambio que lo haga más difícil, como agrupar las ciudades por provincia.