Modelo Relacional (Con restricciones de integridad)
Restriucciones de identificación (Eentidades débiles)
Las restricciones tipo ID siempre se dan en relaciones 1:M, con la restricción ID en la parte de muchos. El paso a tablas será dar estos 2 pasos:
- Dar el paso a talas de una relación 1:M
- Subrayar también la clave ajena. Y como ésta ya no podrá tener valores nulos, ya no tiene sentido poner la RI nulo(a0) ànulo(r)
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Ejemplo:

Ejercicio 14
Pasa a tablas el siguiente ER.

Solución
Ejercicio 15
Piensa cómo sería el paso a tablas del ejercicio anterior si la relación “suministrar” la hubiéramos resuelto de la segunda forma que hemos visto en las relaciones 1:M, es decir, que tenga su propia tabla.
Solución

Pero las tablas ARTICLES y SUMBINISTRAMENTS tienen la misma clave (aunque con diferentes nombres): código de artículo + código de proveedor. Por tanto, se pueden fusionar las dos tablas y tendríamos exactamente la misma solución que en el ejercicio anterior.
Conclusión
En este ejercicio no tenía sentido resolverlo de esta forma (con otra tabla).
Restricciones de existencia (RE)
Existen dos formas de tratar las restricciones de existencia RE. Aplicaremos una u otra, dependiendo de si las parejas de ocurrencias relacionadas están en la misma tabla que la entidad que tiene la restricción o no:
- a) Si están en la misma tabla, lo indicaremos con VNN
- b) Si no, lo indicaremos con una RI similar a una clave ajena
Primero, la RE está expresada en la misma tabla: VNN.
Veámoslo con un ejemplo.

En este ejemplo todos los profesores deben pertenecer obligatoriamente a un departamento. Es decir, no puede haber profesores sin departamento. Dicho de otra manera todos los profesores deben estar en la relación
Vamos a deducir detalladamente, como daríamos el paso a tablas.
Primero damos el paso a tablas sin tener en cuenta la RE:
DEPARTAMENTOS = codigo + nombre
PROFESORES = dni + nombre + dep + fecha
- C. Aj: dep --> DEPARTAMENTOS(codigo)
- R.I: nulo(dep) -> nulo(fecha)
Ahora vamos a por la RE. Si pensamos en posibles ocurrencias, ¿qué significado tiene esa RE?
| dni | nombre | dep | fecha |
|---|---|---|---|
| 1 | Pep | INF | 4-3-12 |
| 2 | Pepa | INF | |
| 3 | Pepet | MAT | |
| 4 | Pepi | NULL |
No queremos que pase esto: que haya profesores sin departamento (como es el caso del 4, Pepi). Por tanto, obligaremos a que en el campo dep no puedan haber valores nulos:
VNN: dep
Es decir, esa E significa que:
“Todos los profesores deben pertenecer obligatoriamente a un departamento”.
- En qué tabla están “todos los profesores” ?
- En la de PROFESORES
- En qué tabla están las parejas “profesor-departamento” ?
- En la de PROFESORES también
Vemos que para expresar la RE lo tenemos todo en la misma tabla. En ese caso expresaremos la RE como un VNN:
DEPARTAMENTOS = codigo + nombre
PROFESORES = dni + nombre + dep + fecha
- C. Aj: dep àDEPARTAMENTOS(código)
- R.I: nulo(dep) -> nulo(fecha)
- VNN: dep
Pero como no vamos a dejar que el dep sea nulo, no tiene sentido esa RI y, por tanto, la quitaremos.
En resumen, el paso a tablas del ejemplo quedaría así:
Solución RE en la misma tabla
DEPARTAMENTOS = codigo + nombre
PROFESORES = dni + nombre + dep + fecha
- C. Aj: dep àDEPARTAMENTOS(código)
- VNN: dep
Segundo, la RE está expresada en tablas diferentes: R.I: Tipo ⊂
Veámoslo con un ejemplo:

Vamos a deducir detalladamente, como daríamos el paso a tablas. En este caso la lectura sería No puede existir ningún equipo sin jugadores. Dicho de otra manera todos los equipos deben estar en la relación
Primero damos el paso a tablas sin tener en cuenta la RE:
EQUIPOS = codigo + nombre
JUGADORES = dni + nombre + equipo + posicion
- C. Ali: equipo --> EQUIPOS(codigo)
- R.I: nulo(equipo) -> nulo(posicion)
Ahora vamos a por la RE. Si pensamos en posibles ocurrencias, ¿qué significado tiene esa RE?
JUGADORES = dni + nombre + equipo + posicion
| dni | nombre | equipo | posición |
|---|---|---|---|
| 1 | Pep | VCF | portero |
| 2 | Pepa | VCF | portero |
| 3 | Pepet | BAR | defensa |
| 4 | Pepi | NULL | NULL |
EQUIPOS = codigo + nombre
| código | nombre |
|---|---|
| VCF | Valencia CF |
| BAR | F.C. Barcelona |
| LEV | Levante |
No queremos que pase esto: que haya equipos sin jugadores (como es el caso del LEV). Por tanto, obligaremos a que en el campo código no puedan haber valores nulos:
Nueva restricción de integridad
R.I: EQUIPOS(código) ⊂ JUGADORES(equipo)
Es decir, esa RE significa que:
“Todos los equipos deben tener obligatoriamente a algún jugador que juegue en él”.
- En qué tabla están "todos los equipos" ?
- En la de EQUIPOS
- En qué tabla están las parejas “equipo-jugador” ?
- En la otra tabla: la de JUGADORES
Vemos que para expresar la RE lo tenemos todo en tablas diferentes . En ese caso expresaremos la RE como una nueva RI:

Estamos indicando que para todos los elementos que tenemos en la columna EQUIPOS(codigo) debe existir un elemento en la columna JUGADORES(equipo) que coincida con él.
Representación de la RI
Esta nueva RI la hemos puesto como una restricción de la tabla de equipos pero a veces se suele representar como una restricción que debe cumplir la base de datos (ya que afecta a más de una tabla). En ese caso se pondría “fuera” de las 2 tablas, al final del esquema de paso a tablas.
R.I: EQUIPOS(código ) ÌJUGADORES(equipo)
Con lo que hemos visto ya sabemos cómo pasar a tablas las restricciones de existencia para cualquier tipo de relación. Sin embargo, ahora veremos cómo sería para las distintas posibilidades de grados y conectividades.
Relación binaria 1:M con RE en la parte del “Muchos”
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación unaria 1:M con RE en la parte de “Muchos”.
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación binaria 1:1 con una RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
- Ahora no es necesario poner RI: nulo(a0) -> nulo(r) porque no estamos dejando que a0 sea nulo.
- Si en lugar de poner a0 como clave ajena en B, lo hubiésemos hecho al revés (poner b0 como clave ajena en A), además de la RI del atributo de la relación, tendríamos la de la restricción de existencia. Por tanto, la primera solución es la buena, ya que te ahorras las RI.
Relación binaria 1:1 con doble RE

Este caso es especial . La entidad A está tan íntimamente relacionada con la entidad B, que puede considerarse la propia entidad. Por tanto, no tendremos una tabla para A y otra para B, sino que sólo tendremos una única tabla (le pondremos el nombre más adecuado), donde pondremos todos los atributos:
- 1a solución : Ponemos los atributos de A en B:

- 2a solución : Ponemos los atributos de B en A:

Relación unaria 1:1 con doble RE

Nota : las siguientes relaciones unarias...
- 1:1 con una única E
- 1:M con E en la parte de 1
- 1:M con doble E
... son realmente unarias 1:1 con doble E. Por tanto, se resolverán igual.
Relación binaria 1:M con RE en la parte del “1”
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación binaria 1:M con doble RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación binaria M:M con una RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación binaria M:M con doble RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación unaria M:M con una RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación unaria M:M con doble RE
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Relación ternaria con RE
Por ejemplo, una 1:1:M, con RE en la parte del “Muchos”:
| ER | Paso a tablas |
|---|---|
![]() |
![]() |
Dado que todas las ternarias generan tabla para la relación, cualquier RE que ponemos en alguna de las entidades (independientemente de la cardinalidad de la relación), provocará una RI como la anterior. Es decir:
| Condición | RI |
|---|---|
| Si A tiene una RE sobre R | A[a0] ⊂ R[a0] |
| Si B tiene una RE sobre R | B[b0] ⊂ R[b0] |
| Si C tiene una RE sobre R | C[c0] ⊂ R[c0] |
Ejercicio 16
Pasa a tablas el siguiente ER.

Solución

Ejercicio 17
Pasa a tablas el siguiente ER.

Solución

Ejercicio 18
Pasa a tablas el siguiente ER.
Solución

Ejercicio 19
Pasa a tablas el siguiente ER.

Solución

Ejercicio 20
Pasa a tablas el siguiente ER.

Solución

Ejercicio 21
Pasa a tablas el siguiente ER

Solución
La siguiente solución no sería buena ya que obtenemos dos RI mientras que con la segunda solucióno no obtenemos ninguna.

Esta solución sería la buena, poniendo la pareja coche-piloto donde tenemos la RE:

Ejercicio 22
Pasa a tablas el siguiente ER

Solución
Ejercicios genéricos Ejercicios genéricos




















