Temas de SQL - Llave Primaria, no se complique!

<<>>
Imágen de perfil
Val: 14
Ha aumentado su posición en 53 puestos en SQL (en relación al último mes)
Gráfica de SQL

Contenido en LWPLlave Primaria, no se complique!gráfica de visualizaciones


SQL

estrellaestrellaestrellaestrellaestrella(2)
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella
Actualizado el 18 de Junio del 2019 por Gnomi (Publicado el 17 de Junio del 2019)
482 visualizaciones desde el 17 de Junio del 2019. Una media de 126 por semana
(...articulo original en https://www.gnomi.club/llave-primaria/)

Al momento de crear tablas en la Base de datos, una de las principales preocupaciones es definir en buena forma la llave primaria. A fin de cumplir con los requerimientos de lo que una llave primaria implica, muchas veces caemos en definiciones en extremo complicadas, simplifique!

primarykey-e15294258019801

Llave primaria, definición, requerimientos
Una llave primaria es un campo especial o combinacion de varios campos de una tabla de base de datos relacional, definida para identificar en forma única cada registro en dicha tabla.

Una llave primaria debe:
- Contener un valor único para cada registro de la tabla de datos
- No puede contener un valor nulo. Esto es, debe contener siempre un valor.


El concepto de llave primaria es critico para que una base de datos relacional trabaje eficientemente, de hecho es el factor central para que las relaciones entre tablas funcionen.

En el diseño de bases de datos relacionales, se llama clave principal a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria.

https://es.wikipedia.org/wiki/Clave_primaria



Definiendo la llave primaria, que complicado!



En una tabla que contenga la información de personas, la llave primaria podría ser el Numero de Identidad personal, o el Numero de Pasaporte. En una lista de productos, la llave primaria podría ser el Código de Barras o el SKU, o bien la combinación del SKU + Código de Barras.

Cuando tenemos una tabla y empezamos a tratar de identificar la llave primaria, inicialmente miramos las columnas existentes y a partir de ellas tratamos de identificar aquellas que, de acuerdo a la definición, identifiquen en forma única al registro y ademas aquellas donde no se acepta un dato nulo.

Tomando como ejemplo una base de datos de empleados en una compañía, tenemos la tabla de EMPLEADOS, la cual almacena la información básica y estática de cada empleado (nombre, fecha de nacimiento, dirección, cédula de identidad, numero de seguro social, color de cabello, etc.).

Seleccionamos entonces una o varias columnas que aseguren que dos empleados no van a tener nunca el mismo identificador. Una columna candidata podría ser el numero de seguro social, o el número de cédula, sin embargo, puede ser que algunos empleados no cuenten con ese dato, lo que haría que esta opción quede descartada. La siguiente opción lógica sería utilizar una combinación de columnas: NOMBRE + FECHA DE NACIMIENTO + CÉDULA DE IDENTIDAD, podrían dar una secuencia de caracteres única, pero complicada y esa complicación implicará dificultades en las relaciones con otras tablas, desperdicio de espacio en disco duro en las tablas relacionadas, en los indices, etc.



Simplifique!!!



La mejor opción es crear una columna separada para este fin. En la estructura de la tabla, crea un campo con la etiqueta “ID”, del tipo entero y que sea autonumérico. De esta forma, cada vez que un registro se inserte en la tabla, la base de datos automáticamente le asignará un número entero identificador, único, no nulo, simple y eficiente.

llaveprimaria2


De esta forma, cualquier tabla que genere en su base de datos, siempre tendrá la misma llave primaria:

ID - integer - Autonumeric
Como efecto dominó, en adelante, las tablas relacionadas verán tambien simplificada su estructura y su relación. Siguiendo el ejemplo del la tabla EMPLEADOS y de la tabla COLORS, podemos establecer una relacion entre estas tablas por medio del campo “Color de Cabello”, definiendo este campo como entero y relacionandolo con el campo ID en la tabla “COLORS”

employeescolors


Tampoco es necesario complicar el nombre del campo en cada tabla. No es necesario por ejemplo nombrar el campo llave en la tabla empleados como “Empleado_ID”, o en la tabla colors como “Color_ID”… basta con nombrarlo como “ID” en cada tabla. Se sobreentiende que si ID es una columna de la tabla empleados, ese campo identifica al empleado.



Comentarios... (2)

Luis Peña
18 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Estoy totalmente de acuerdo. Aunque no es mala idea colocar el identificativo de la tabla de donde procede. Así me enseñó mi maestro. Ejemplo: empl_ID, color_ID, direc_ID, etc.
Responder
Imágen de perfil
19 de Junio del 2019
estrellaestrellaestrellaestrellaestrella
Claro, es válido!, sin embargo un nombre de columna simplificado facilita mucho las cosas a todo nivel: documentacion, programacion, simplificacion de consultas, etc.
Responder

Comentar

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/t10085
Revisar política de publicidad