Modelo Relacional (Sin restricciones de integridad)

Entidades y atributos

Entidades con atributos simples

ER: Solución:

Ejemplo:

Más adelante veremos cómo pasar a tablas las entidades débiles. Es decir, aquéllas que tienen una restricción de identificación (ID).

Entidades con atributos compuestos

Ejemplo:

Más adelante veremos los atributos multivalentes (después de ver las relaciones 1:M).

Relaciones binarias

Relación binaria M:M

Relación M:M

Cuando una relación es M:M (tanto unarias como binarias), es necesario crear una tabla para la relación. Los atributos de la nueva tabla serán:

  • Las claves de las entidades de la relación (que todos juntos formarán la clave y cada uno de ellos será una clave ajena)
  • Los propios atributos de la relación.

Ejercicio 1

Pasa a tablas el siguiente ER.

Solución
  • AUTORES = código + nombre
  • LIBROS = código + título
  • ESCRIBIR = autor + libro + fecha
    • C_Aj:
      • autor --> AUTORES(código)
      • libro --> LIBROS(código)

Ejercicio 2

Pasa a tablas el siguiente ER.

Solución
  • SOCIOS = dni + nombre
  • LIBROS = codigo + titulo
  • PEDIR = socio + libro + fecha
    • C_Aj:
      • socio --> SOCIOS(dni)
      • libro --> LIBROS(codigo)
  • PRESTAR = socio + libro + fecha_prestamo + fecha_devolucion
    • C_Aj:
      • socio --> SOCIOS(dni)
      • libro --> LIBROS(codigo)

Relación binaria 1:M

En este caso una ocurrencia de una entidad A puede relacionarse con varias ocurrencias de una entidad B, pero no al revés. Es decir, una ocurrencia de B sólo puede relacionarse con una ocurrencia de A.

Ejemplo :

Esa RI indica que si algún alumno no tiene un tutor asignado, no tiene sentido que ese alumno tenga un informe.

Es decir: si en algún registro de la entidad alumnos existe un valor de “dni_pro” que está vacío, también deberá estar vacío el valor de “informe” de ese registro.

ALUMNOS
num nombre dni_tutor informe
1 Pep 33333333 Se lleva mal
2 Pepa 33333333 No hace el deber
3 Pepito 55555555 Molesta en clase
4 Pepin ~~Ha robado un pen~~
5 Pepita
6 Pepiqueta 55555555

Con la RI decimos que no tiene sentido que Pepin tenga algo en el campo “informe” puesto que no tiene ningún tutor asignado (y el informe lo elabora el tutor). Ahora bien, puede que Peiqueta tenga un tutor asignado pero que todavía no ha hecho ningún informe de ella.

Ejercicio 3

Pasa a tablas el siguiente ER.

Solución
  • PROVEEDORES = dni + nombre
  • ARTICULOS = codigo + nombre + proveedor + precio_compra
    • C_Aj: proveedor --> PROVEEDORES(dni)
    • RI: null(proveedor) -> null(precio_compra)

Ejercicio 4

Pasa a tablas el siguiente ER.

Solución
  • AULAS = codigo + titulo
  • GRUPOS = codigodni + nombre + aula_teoria + horas_teoria + aula_practica + horas_practica
    • C_Aj:
      • aula_teoria --> AULAS(codigo)
      • aula_practica --> AULAS(codigo)
    • RI:
      • null(aula_teoria) -> null(horas_teoria)
      • null(aula_practica) -> null(horas_practica)
      • !null(aula_practica -> !null(horas_practica)

Relación binaria 1:M. Otra solución

Si no queremos tener la RI (del atributo en la relación 1:M), en lugar de expresar la relación mediante una de las entidades, podríamos ponerla como una tabla aparte, donde estuvieran sólo las parejas de ocurrencias de las dos entidades que estén relacionadas:

Ejemplo :

En la tabla ALUMNOS estarán todos los alumnos, pero en la de TUTORÍAS sólo pondremos a aquellos alumnos que tienen tutor. Por eso le hemos puesto el VNN a “dni_tutor”. Así no podrá darse el caso de que un alumno tenga informe sin tener tutor.

Ejercicio 5

Da el paso a tablas de esta relación 1:M siguiendo esta forma que acabamos de ver. Es decir: sin restricción de integridad.

Solución
  • PROVEEDORES = dni + nombre
  • ARTICULOS = codigo + nombre +
  • SUMINISTRAR = articulo + proveedor + precio_compra
    • C_Aj:
      • proveedor --> PROVEEDORES(dni)
      • articulo --> ARTICULOS(codigo)
    • RI: VNN(proveedor)

Relación binaria 1:1

Soluciones

Solución 1 Solución 2

Las relaciones 1:1 son iguales que las de 1:M pero poniendo la correspondiente clave alternativa .

Clave alternativa

Recordemos que, como habíamos dicho que las claves alternativas pueden tener valores nulos , debe indicarse también que si es nulo, que también lo sea el atributo de la relación ( RI: nul(a0) -> nul(r) ). Es decir, una 1:1 da igual que una 1:M pero con la clave alternativa.

Importante

IMPORTANTE: Si la entidad A tuviera una restricción de existencia sobre la relación R, usaríamos la primera solución que hemos visto ya que desaparecería la RI (ya veremos cuando hacemos el paso a tablas de las restricciones de existencia).

Relación binaria 1:1. Otra solución

Si no queremos tener esa RI (del atributo en la relación 1:1), en lugar de expresar R por medio de B, podríamos ponerla como una tabla aparte, donde estuvieran sólo las parejas de A y B relacionadas :

Ejemplo , utilizando otra tabla para la relación:

Ejercicio 6

Pasa a tablas este ER, siguiendo esta forma que acabamos de ver. Es decir: sin restricción de integridad.

Cada coche tendrá su piloto Cada piloto tendrá su coche
Sin otra tabla para la relación



Con otra tabla para la relación



Solución

Relaciones unarias

Cabe imaginar que una unaria es como una binaria pero donde ambas entidades son realmente la misma. En una misma tabla tendremos 2 vueltas la clave de la entidad . Por tanto, habrá que elegir un nombre diferente.

El nombre de los campos en las relaciones unarias:

  • Si las 2 ocurrencias que se relacionan tienen el mismo significado en la relación, los nombres pueden ser cualquieros. Por ejemplo, en la relación “casarse” los códigos de las personas podrían decirse conyuge1 y conyuge2, por poner un caso.
  • Pero si tienen una participación diferente en la relación, los nombres deberán ser significativos. Por ejemplo, en la relación "mandar" los atributos deberían decirse "empleado" y “jefe”, por poner un caso.

Relación unaria M:M

ER: Solución:

Relación unaria 1:M

ER: Solución:

Relación unaria 1:1

ER: Solución:

Ejercicio 7

Pasa a tablas este ER.

Solución

Ejercicio 8

Pasa a tablas este ER.

Solución

Ejercicio 9

Pasa a tablas este ER.

Solución

3.4. Relaciones ternarias

ternarias

Todas las ternarias generan una nueva tabla (relación) para la relación R.

Atributos

Los atributos de la nueva tabla de R (al igual que ocurría en las relaciones M:M) serán:

  • las claves de las correspondientes entidades
  • los atributos propios de la relación

Clave

Si es M:M:M, la clave estará formada por las claves de las respectivas tablas.

Si no, la clave siempre estará formada por las claves de 2 de las 3 tablas. Habrá tantas claves como conectividades en “1”, siendo la clave respectiva, la pareja de los otros dos. Una de las claves será la primaria; si hay más, las demás serán las alternativas. Lo veremos más claro con los esquemas del siguiente punto.

Vemos cada caso particular:

Relación ternaria M:M:M (cero triángulos blancos)

ER: Solución:

Ejercicio 10

Pasa a tablas el siguiente ER.

Solución

Relación ternaria 1:M:M (1 triángulo blanco)

ER: Solución:

Relación ternaria 1:1:M (2 triángulos blancos)

ER: Solución:

Otra forma sería:

ER: Solución:

Relación ternaria 1:1:1 (3 triángulos blancos)

ER: Solución:

Al igual que en el caso anterior, también tenemos soluciones alternativas:

  • que la clave primaria de R sea a0 + c0
  • o bien b0 + c0

(con las respectivas C.Alt y VNN, claro).

Ejercicio 11

¿Cómo quedaría el paso a tablas del ejercicio anterior si las conectividades de GRUPOS y de PROFESORES respecto a la relación "pertenecer" estuvieran a 1 y no a M?

Solución

En este caso tenemos dos posibles soluciones. Al tener en la relación pertentecer respecto de grupos y profesores conectividades a 1, tendremos dos claves candidatas.

Claves candidatas: [(profe + módulo), (grupo + módulo)]

Atributos multivalentes

Para dar el paso a tablas de atributos multivalentes siempre crearemos una nueva tabla:

Por ejemplo:

Esto suponiendo que la relación entre clientes y teléfonos es de M:M. Si fuese 1:M (es decir, un teléfono sólo es de un cliente), la clave de CLI_TEL sería sólo el código del teléfono.

Ejercicio 12

Pasa a tablas este ER teniendo en cuenta que un mismo cliente puede tener más de un teléfono, y un sólo email.

Solución

Atributos multivalentes compuestos

ER: Solución:

Por ejemplo:

Esto suponiendo que la relación entre clientes y direcciones es de M:M. Si fuera 1:M (es decir, una dirección sólo corresponde a un cliente), la clave de CLI_ADR sería sólo el código de la dirección (calle + número + población).

Ejercicio 13

Pasa a tablas este ER teniendo en cuenta que un mismo cliente puede tener más de una dirección.

Solución

Suponiendo que no hay restricciones en el atributo compuesto multivalente, quedaría así:

En caso que hubiera restricciones, por ejemplo:

  • Un login solo puede tener un password
  • Un login solo puede pertencer a un `alumno``