-
Notifications
You must be signed in to change notification settings - Fork 2
El modelo relacional
Una vez terminado el modelo conceptual, el siguiente paso es obtener la representación relacional del mismo . Este proceso se basa principalmente en un conjunto de reglas de mapeo que transforman el modelo conceptual en un conjunto de elementos que representan de manera relacional la base de datos.ver paso 2 del proceso global para el diseño de una base de datos
Una base de datos relacional es una colección de relaciones apropiadamente estructuradas. La representación de este modelo se hace a través de las ya mencionadas reglas de "mapeo", que se fundamentan además en el concepto matemático de una relación y sus propiedades a través del uso de la definición del producto cartesiano.
antes de iniciar con la presentación de los elementos que componen este modelo, es importante aclarar que cada concepto puede ser referido de varias maneras así:
Términos formales | Términos alternos 1 | Términos alternos 2 |
---|---|---|
Relación | Tabla | Archivo |
Tupla | Fila | Registro |
Atributo | Columna | Campo |
- Relación: Una relación es una tabla con columnas y filas.
- Atributo: Es una columna nombrada de una relación.
- Dominio: Es un conjunto de valores permitidos para uno o más atributos.
- Tupla: Es la fila de una relación.
- Grado: El grado de una relación es igual al número de atributos que esta contiene.
- Cardinalidad: La cardinalidad de una relación es igual al número de tuplas que esta contiene.
El contenido de una tupla o fila es tomado directamente de la definición de los dominios de sus atributos o columnas.
- Cada relación en una base de datos tiene un nombre único.
- Cada cela contiene un solo valor atómico.
- Los atributos tienen nombres únicos.
- Los valores de los atributos pertenecen al mismo dominio.
- No existen tuplas o filas duplicadas.
- El orden de las tuplas y el orden de los atributos no tiene significado especial.
Una super llave es un atributo o conjunto de atributos que identifican de manera única a una tupla, sin embargo esta puede contener atributos adicionales que no son necesarios. Por otro lado, una llave candidata es una super llave tal que su subconjunto no es otra super llave dentro de la relación, una llave candidata debe ser única y debe ser irreducible.
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). Esta llave primaria es una llave candidata seleccionada previamente. 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 para los atributos, 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.