Modelado logico relacional de bases de datos

Aquí te dejo una versión más clara y sencilla de la transformación del modelo E/R al modelo relacional, usando ejemplos para facilitar la comprensión.

Transformación del Modelo E/R al Modelo Relacional

  1. Eliminar atributos multivaluados:
    • Los atributos que pueden tener más de un valor (multivaluados) se transforman en una nueva tabla que actúa como una "entidad débil".
    • Ejemplo: Si un estudiante puede tener varios números de teléfono, creas una tabla separada llamada Telefonos, relacionada con la tabla Estudiantes.
mutivaluados
  1. Eliminar atributos compuestos:
    • Los atributos que están formados por varios valores más simples (compuestos) se dividen en sus partes.
    • Ejemplo: Si tienes un atributo Dirección que incluye calle, ciudad y código postal, estos se dividen en Calle, Ciudad y CódigoPostal. La tabla resultante podrá ser:
      • Una sola tabla estudiante que incorpore esos campos.
      • Dos tablas estudiante y dirección relacionadas con cardinalidad 1:1.
compuestos
  1. Entidades siempre generan tablas:
    • Cada entidad en el modelo E/R se convierte en una tabla.
    • Ejemplo: La entidad Estudiante genera una tabla Estudiantes con sus atributos como columnas y la tabla Profesorgenera otra tabla Profesores con sus atributos como columnas.
entidades
  1. Relaciones:
    • Las relaciones entre entidades pueden o no generar una tabla, dependiendo de su cardinalidad y atributos.
    • Si la relación tiene atributos propios o es de tipo N:M, genera una tabla. Si no, se pasa la clave a otra tabla.
    • Ejemplo: Una relación entre Estudiantes y Cursos que contiene atributos como FechaDeInscripción se convierte en una tabla Inscripciones.

Relaciones 1:1 (Uno a Uno)

  • Regla General: No generan tabla nueva. Se pasa la clave de una entidad como clave externa (foránea) a la otra tabla y debe ser única.
    • Ejemplo: Tenemos varias opciones
      • Puedes añadir una columna num_Pasaporte en la tabla Personas, que referencia la tabla Pasaportes.
      • Puedes añadir una columna idPersona en la tabla Pasaportes, que referencia la tabla Personas.
      • Puedes hacer que id de la tabla persona y el idPersona de la tabla pasaporte sean el mismo y así poder relacionarse entre ellos.
uno a uno

Relaciones 1:N (Uno a Muchos)

  • Regla General: No generan tabla nueva. Se pasa la clave de la entidad del lado "1" a la tabla del lado "N" como clave externa.
    • Ejemplo: Si un profesor puede enseñar varios cursos, se añade una columna dni_Profesor en la tabla Cursos.
uno a muchos

Relaciones N:M (Muchos a Muchos)

  • Regla General: Siempre generan una tabla. La clave principal de la tabla está compuesta por las claves de ambas entidades.
    • Ejemplo: Si un estudiante puede matricularse en varios cursos y un curso puede tener varios estudiantes, se genera una tabla Matricula que contiene ID_Estudiante e ID_Curso.
      • Tenemos 2 posibilidades, matrícula podrá tener su propia clave primaria o podrá tener una clave compuesta por las claves de estudiante y curso.
muchos a muchos

Relaciones Asociativas

  • Regla General: Siempre generan una tabla. La clave principal de la tabla está compuesta por las claves de ambas entidades.
    • Ejemplo: Si un estudiante puede matricularse en varios cursos y un curso puede tener varios estudiantes, se genera una tabla Matricula que contiene ID_Estudiante e ID_Curso.
      • Tenemos 2 posibilidades, matrícula podrá tener su propia clave primaria o podrá tener una clave compuesta por las claves de estudiante y curso.
asociativas

Relaciones con atributos

  • Regla General: Siempre generan una tabla. La clave principal de la tabla nueva está compuesta por las claves de ambas entidades.
    • Ejemplo: Si un empleado trabaja en un departamento y en un departamento trabajan varios empleados, y necesitamos almacenar datos extra de esa relación (como la fecha de inicio del trabajo). Creamos una tabla Trabaja que contiene ID_Empleado, ID_Departamento y FechaInicio.
relaciones con atributos

Relaciones N-arias (Entre más de dos entidades)

  • Regla General: Siempre generan una tabla que incluye las claves de todas las entidades involucradas.
    • Ejemplo: Si tienes una relación entre Estudiante, Curso y Profesor, se crea una tabla Asignaciones con las claves de las tres entidades.
n arias

Relaciones Reflexivas (Autorreferenciales)

  • Estas son relaciones que una entidad tiene consigo misma, y se comportan según su cardinalidad.
    • Ejemplo 1:1: Si un empleado supervisa a otro empleado, no necesitas generar una nueva tabla, solo añades una columna SupervisorID en la tabla Empleados que referencia otra fila de la misma tabla.
reflexivas

Relaciones Jerárquicas (Supertipo/Subtipo)

  • Si tienes una relación entre un supertipo y sus subtipos (como Vehículo que puede ser Coche o Moto), existen dos opciones:
    1. Eliminar el supertipo: Cada subtipo (Coche, Moto) tiene su propia tabla, incluyendo los atributos del supertipo Vehículo.
    2. Eliminar los subtipos: Creas una única tabla para el supertipo (Vehículo), y añades los atributos de los subtipos en esa tabla.
    • Ejemplo: Si decides eliminar los subtipos, la tabla Vehículos tendrá una columna adicional llamada TipoVehículo que especifica si es un Auto o una Moto.
jerarquicas

Estas reglas permiten convertir un modelo entidad-relación (E/R) en un modelo relacional que pueda implementarse en una base de datos.

  • Loading...