Está en la página 1de 8

1.

Conversión a modelo relacional


Uno de los pasos más importantes a la hora de crear una base de datos es el análisis y diseño de
ésta, el cual hemos realizado en el punto anterior. Para ello estudiamos todos sus elementos
para extraer la información de una manera ordenada y poder plasmarla en una base de datos.

El siguiente paso consiste en convertir el modelo entidad relación en un modelo relacional, ya


que el primero consiste en un modelo conceptual de alto nivel y es necesario convertirlo en un
esquema que sea compatible con un sistema gestor de bases de datos.

2. Fases
El paso del modelo conceptual al relacional se realiza mediante una serie de pasos que nos
ofrecerán una serie de ventajas:
 Independencia física: el modo de almacenamiento no influye en la definición de los datos
 Indpendencia lógica: las operaciones sobre los datos no afectan a los tratamientos
 Flexibilidad: para ofrecer distintos esquemas externos
 Uniformidad: que facilita el empleo de los datos
 Sencillez: es fácil de comprender y utilizar

2.1. Transformación de entidades y atributos


2.1.1. Entidades
Cada entidad del modelo entidad-relación generará una tabla.

Ejemplo

 Nombre: cadena de 20 caracteres


 Apellidos: cadena de 30 caracteres
 Dni: cadena de 9 caracteres
 Dirección: cadena de 40 caracteres
 Teléfonos: cadena de 10 caracteres
 Edad: número de tres dígitos
 Fecha nacimiento: fecha
 Nombre: cadena de 10 caracteres
 Código: cadena de 5 caracteres
 NIF: cadena de 8 caracteres
 Nombre: cadena de 10 caracteres
 Dirección: cadena de 40 caracteres
Las tablas en este caso serán las entidades:
 Clientes
 Productos
 Proveedores

2.1.2. Atributos
Una vez tenemos claras las tablas, debemos pasar a distinguir las columnas de las que se
compondrán las tablas. Para ello, tenemos que fijarnos en los atributos que tienen las entidades:
 Cada atributo simple se convertirá en una columna
 Uno de los atributos, concretamente la clave principal, se convertirá en clave principal de
la tabla
 Cada atributo multivaluado se convertirá en otra tabla cuya clave principal será la unión
de la clave primaria de la otra tabla y el atributo
 Cada atributo compuesto se convertirá en tantas columnas como atributos lo compongan

Ejemplo
Si observamos el ejemplo anterior, obtenemos que las entidades contendrán los siguientes
atributos:
 Clientes: nombre, apellidos, dni, dirección, fecha_nacimiento, edad
 Productos: nombre, código
 Proveedores: nombre, nif, dirección

Las claves primarias serán: dni para la tabla Clientes, código para la tabla Productos y nif para la
tabla Proveedores. Además, al ser teléfono un atributo multivaluado, se creará otra tabla nueva
llamada Teléfonos con dos campos: dni y teléfono, y cuya clave primaria serán, también, ambos
campos.

Otro elemento importante en el que tenemos que hacer hincapié es el de los tipos, ya que en el
modelo entidad-relación nos los darán, y seremos nosotros los encargados de pasarlos a los tipos
del sistema gestor de base de datos.

Si tuviéramos algún atributo compuesto como el que se muestra en la figura:


El proceso sería sencillo:
 Primero identificamos las entidades y las transformamos en tablas (Usuario)
 Después observamos los atributos y nos daremos cuenta de que son todos compuestos,
por lo que cogeremos los atributos en los que se componen.

2.2. Transformación de relaciones


La transformación de relaciones tiene especial relevancia debido a que va unida a las
cardinalidades de éstas.

2.2.1. Relaciones 1:1


El primer caso que veremos será el de las relaciones 1:1, la cual relacionará cada ocurrencia de
una entidad con la otra ocurrencia de la otra entidad y viceversa. En este caso se seleccionará
una de las entidades y se le añadirá, como clave ajena, la clave primaria de la otra entidad,
aunque se le deberá añadir una restricción a la clave foránea para que sea única.

Ejemplo
Si observamos el ejemplo siguiente:

Observamos que la relación es 1:1, con lo que debemos seleccionar una de las entidades (vamos
a seleccionar departamento), y pasarle, como clave ajena, la clave primaria de la tabla director.
De este modo, quedará de la siguiente manera:
2.2.2. Relaciones 1:N
El segundo caso es el de las relaciones 1:N, es decir, aquellas en las que cada ocurrencia de una
entidad se relaciona con más de una de la otra entidad, pero las ocurrencias de cada entidad sólo
se relacionan con una de la primera entidad. La solución pasará por añadir, a la entidad que se
encuentra al lado del N del vínculo, la clave primaria de la otra entidad como una clave ajena.

Ejemplo
Ponemos un ejemplo para que se vea mejor:

Observamos que la relación es 1:N, por lo que debemos insertar, en la tabla ALUMNO, una nueva
columna que se corresponderá con la clave primaria de la tabla CURSO:

2.2.3. Relaciones N:M


El tercer caso es el de las relaciones N:M, es decir, aquel en el que cada ocurrencia de una
entidad se corresponde con varias de la otra entidad y viceversa. Este caso se resuelve mediante
la creación de una tabla intermedia cuyas columnas serán las claves primarias de ambas
entidades y cuya clave primaria serán los atributos que sean claves primarias de ambas tablas.

Ejemplo
Como ejemplo:
Observamos que la relación es N:M, por lo que creamos una nueva tabla con el nombre de la
relación (ASISTE) y cuyas columnas serán DNI y CÓDIGO:

3. Ejemplos de diseño
3.1. Gabinete de abogados
Dado el siguiente esquema entidad-relación y el listado de dominios, generaremos el modelo
relacional:

DOMINIOS:
 num expediente: número 4 dígitos
 fecha inicio: fecha
 fecha fin: fecha
 estado: cadena de 10 caracteres
 dni: cadena de 9 caracteres
 nombre: cadena de 20 caracteres
 apellidos: cadena de 20 caracteres
 dirección: cadena de 30 caracteres
 fecha nacimiento: fecha
 número colegiado: número de 5 dígitos
 casos ganados: número de 5 dígitos

3.1.1. Fase 1
Primero transformamos las entidades en tablas y los atributos en columnas:

El atributo compuesto (período), tal y como hemos explicado, se descompondrá en los dos de los
que se compone (fecha inicio y fecha fin).

3.1.2. Fase 2
El siguiente paso es transformar las relaciones. Para ello, la relación corresponder, al ser 1:N,
hará que se pase la clave primaria de la tabla cliente a la tabla asunto como clave ajena. Además,
la relación llevar, al ser N:M, se convertirá en una tabla con las columnas dni y num_expediente,
es decir, las claves primarias de ambas tablas:

3.2. Videoclub
Dado el siguiente esquema entidad-relación y el listado de dominios generaremos el modelo
relacional:
DOMINIOS:
 número: número de 4 dígitos

 nombre: cadena de 30 caracteres


 dirección: cadena de 30 caracteres
 teléfono: cadena de 10 caracteres
 director favorito: cadena de 30 caracteres
 título: cadena de 30 caracteres
 género: cadena de 10 caracteres
 director: cadena de 30 caracteres
 actor: cadena de 30 caracteres
 año: número de 4 dígitos
 estanterías: número de 2 dígitos
 total películas: número de 2 dígitos
 fecha compra: fecha
 num serie: cadena de 10 dígitos
 ubicación: cadena de 10 dígitos

3.2.1. Fase 1
Primero transformamos las entidades en tablas y los atributos en columnas:

Como se puede observar, los atributos multivaluados directores y actores se convierten en tablas
cuyos atributos son: el propio atributo y la clave primaria de la tabla con la que se relacionan.
3.2.2. Fase 2
Ahora convertimos las relaciones:

En el caso de la relación sacar, como es N:M, se convierte en una tabla cuyas columnas son las
claves primarias de las tablas con las que se relaciona. Sin embargo, en el caso de la relación
guardar, al ser 1:N, el atributo num serie se introducirá en la tabla películas (parte N) como clave
ajena.

También podría gustarte