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)
- C_Aj:
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)
- C_Aj:
- PRESTAR = socio + libro + fecha_prestamo + fecha_devolucion
- C_Aj:
- socio --> SOCIOS(dni)
- libro --> LIBROS(codigo)
- C_Aj:
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)
- C_Aj:
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)
- C_Aj:
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
loginsolo puede tener unpassword - Un
loginsolo puede pertencer a un `alumno``






















