-
Notifications
You must be signed in to change notification settings - Fork 2
El modelo relacional
Tal como se había mencionado antes en el Modelo Conceptual, una entidad posee un atributo único definido como llave o clave primaria (PK "Primary Key" por sus siglas en inglés). La función de este atributo es identificar una fila o registro dentro de una tabla de manera única. Imagínese por un momento que deseea guardar la información de todos los empleados que actualmente se encuentran trabajando en la planta de producción de su empresa, si no existiera una característica única con la que pudiera diferenciarlos, probablemente podría encontrarse en un conflicto al tratar de hacer una consulta en la tabla EMPLEADOS y buscar a alguno en específico.
Recomendación:
Las llaves primarias pueden ser fácilmente asignadas a atributos únicos de los objeto o protagonistas de la
información, sin embargo cuando este no es tan sencillo de definir, se recomienda crear uno para garantizar la
integridad.
Una llave primaria nunca puede ser nula, debe tener un valor para la columna que ha sido asignada como tal.
Por otro lado, para una misma entidad puede llegar existir además de una PK una llave o clave única (UK "Unique Key" por sus siglas en inglés). La asignación de está llave implica que no pueden existir dos filas o registros con el mismo valor para la columna que ha sido designada como tal, aunque estás filas estén diferenciadas por su llave primaria, la creación de estas llaves meramente únicas depende del carácter de la información y del contexto de la aplicación por lo que no siempre puede llegar a ser notable su existencia. Volviendo atrás al ejemplo mencionado, resulta que ahora que ya puede consultar a sus empleados se da cuenta de que necesita de un correo de contacto para poder mantenerlos al tanto de cualquier novedad, para esto se debería definir la columna "correo" como única, ya que de no ser así dos empleados distintos podrían poseer la información que originalmente fue planeada para ser enviada a uno solo.
La diferencia entre una llave primaria y una única es que la ultima puede ser nula. Toda llave primaria es a su vez una llave única.
Recomendación:
Como una llave única al contrario de una llave primaria puede existir o no, se debe tener mucho cuidado a la hora de
definir cual(es) de estás tendrán esta asignación dentro de las tablas, revise los requerimientos de la información
y el objetivo de la base de datos y piense si vale la pena hacerlo o no.
Las llaves o claves foráneas (FK "Foreign Key" por sus siglas en inglés) surgen durante la transformación del modelo conceptual a tablas, especialmente cuando las entidades se encuentran relacionadas entre sí. La función de estas llaves es servir como punto de referencia de una fila en otra tabla para una fila de la tabla actual, y es por esto que también son denominadas en ocasiones como "ajenas". Imagínese de nuevo el ejemplo de la planta de producción, sin embargo ahora además de querer consultar quienes son sus empleados activos quisiera conocer cuál es la máquina que se encuentra asignada para cada uno de los mismos, la llave primaría generada durante la creación de la tabla MAQUINAS debe funcionar ahora como llave ajena para la tabla EMPLEADOS en donde cada vez que se consulte un empleado especifico se pueda informar al usuario de cuál es la máquina de la cual está encargado a través del uso de la referencia que se ha creado por su llave foránea.
Otro componente especificado dentro del modelo conceptual son los atributos, que son aquellos que se encargan de describir mediante características a las entidades. Cuando se está generando el modelo relacional es importante recordar dos cosas, su tipo y el Dominio al que pertenecen con el fin de poder especificar que valores deberán ser únicamente admitidos en cada columna. El tipo de un atributo define su carácter y comportamiento a la hora de manipularlo, por el contrario un dominio describe y especifica el conjunto de valores que pueden ser admitidos por un atributo, ya sea que estos se encuentren dentro de un rango o puedan tomar solamente unos valores específicos. Por ejemplo un atributo que ha sido definido como numérico debería poder aceptar valores del mismo tipo. Así, entonces es recomendable tener en cuenta que tipo de valor se requieren asignar a un atributo y que posibles valores puede admitir el mismo para evitar la pérdida de la significancía en la información y los conflictos a la hora de manipularla.
Retomando el ejemplo ya mencionado, imagínese que el correo electrónico fuera definido como un atributo meramente numérico probablemente se estaría desperdiciando toda la información que pueda ser almacenada en sus campos pues en realidad su tipo debería ser alfanumérico. Por otro lado imagínese que además de eso para cada empleado se tiene guardado el valor de su salario y usted requiere saber cuanto es el total a pagar por la nómina de este mes, sin embargo se da cuenta de que el atributo "salario" ha sido guardado como una cadena de texto, sin duda alguna no se puede operar numéricamente sobre cadenas de texto. Finalmente se tiene agregado un atributo de "estado civil" que se necesita para verificar si el empleado puede tener afiliados a una seguridad social, lo mejor sería definir un dominio que incluya solamente los valores que describen el estado civil de una persona, los cuales serían: SOLTERO, CASADO, UNIÓN LIBRE, VIUDO.
Recomendación:
Tenga cuidado a la hora de elegir el tipo de sus atributos porque puede ser perjudicial en un futuro.
Elija sus dominios de acuerdo a las necesidades que disponga.
Desarrollado por Luis Felipe Sanchez y Juan José Valencia.