- Las claves naturales son claves que se usan en bases de datos para garantizar la unicidad
- Las claves naturales se basan en datos reales, como nombre, ciudad, año, etc.
- Por ejemplo, en una base de datos de los 50 mejores restaurantes del mundo, se podrían usar
restaurantName, cityName y year como clave natural
- Sin embargo, las claves naturales pueden no garantizar la unicidad. Por ejemplo, puede haber restaurantes con el mismo nombre en varias ciudades
Identidad
- Además de garantizar la unicidad, las claves naturales también deben garantizar la identidad
- Por ejemplo, el número de chasis de un automóvil o un número de identificación personal (número CPR) podrían usarse como clave natural
- Sin embargo, una misma persona puede tener varios números de identificación. Por ejemplo, en Dinamarca, una persona transgénero puede recibir un nuevo número CPR
Errores de documentación
- Las claves naturales son vulnerables a errores de documentación
- Pueden ocurrir errores de ingreso de datos, errores tipográficos de usuarios y errores de conversión de datos
- El sistema debe poder corregir esos errores. Por lo tanto, no es apropiado usar claves externas como claves de la base de datos
Conclusión
- Usar claves naturales en el diseño de bases de datos no es una buena idea
- Pueden producirse errores en los datos, y debe ser posible corregirlos
- Por lo tanto, es recomendable usar siempre claves artificiales en las tablas de la base de datos
La opinión de GN⁺
- Problemas de las claves naturales: las claves naturales pueden no garantizar la unicidad ni la identidad, y son vulnerables a errores de ingreso de datos.
- Ventajas de las claves artificiales: las claves artificiales garantizan unicidad e identidad, y permiten corregir errores de datos con facilidad.
- Consideraciones al usar ORM: al usar bibliotecas ORM, es más fácil trabajar con claves artificiales. Como los ORM determinan en parte la estructura de la base de datos, usar claves artificiales es más eficiente.
- Productos con funciones similares: otras herramientas de diseño de bases de datos o bibliotecas ORM también recomiendan usar claves artificiales. Por ejemplo, Hibernate y Entity Framework.
- Consideraciones al adoptar la tecnología: al introducir un nuevo diseño de base de datos, conviene considerar las desventajas de las claves naturales y optar por claves artificiales. Las claves artificiales ayudan a garantizar la integridad de los datos y facilitan la corrección de errores.
2 comentarios
Comentario de Hacker News
cus_MJA953cFzEuO1zque usa Stripe. También hay formas de generarlos en JavaScript/TypeScript.También recomiendo usar TSID, que incluso con claves artificiales está preparado para entornos distribuidos, como regiones globales. Yo uso TSID como PK en MySQL y DynamoDB.
https://jsonobject.hashnode.dev/using-tsid-as-database-pk