Transformación de Modelo E-R a Modelo Relacional Ejemplo y Reporte
1. TRANSFORMACION DE UN MODELO E-R A MODELO RELACIONAL
El proceso de compra venta de un vehículo en una agencia automotriz comprende dos
grandes entidades, las más importantes sin duda son Cliente y Autos, la entidad cliente
cuenta con los atributos, ID, Nombre, Dirección, Ciudad de residencia y Teléfono. De la
entidad Autos los atributos que se tomaran en cuenta son Matricula, Marca, Modelo y
Color. Otra de las entidades que se toman en cuenta es el Promotor de la agencia, quien se
encarga de vender los vehículos a los clientes y los atributos que se toman en cuenta para
esta entidad son ID, Nombre, Turno, Teléfono; el diagrama de entidad relación se muestra
de la siguiente manera:
Modelo Entidad - Relación
CLIENTE
PROMOTOR
AUTODNI
NOMBRE
DIRECCION
CIUDAD
TELEFONO
COMPRA
MATRICULA
COLOR
MODELO
MARCA
VENTA
TURNO
NOMBRE
DNI
1:1 1:1
1: 1
TELEFONO
FECHA_COMPRA
FECHA_VENTA
2. Proceso de Trasformación:
Para transformar el modelo entidad relación en modelo relacional debemos tener en cuenta
las relaciones entre cada entidad, cada tipo de relaciones se convierte en un diseño de tablas
de la base de datos, dado el siguiente diagrama de entidad relación con relaciones uno a
uno:
La conversión a modelo relacional indica que:
Cada entidad corresponde a una tabla
Cada atributo corresponde a un campo dentro de una tabla
Se crea un atributo en una de las tablas que corresponde a la llave primaria de la
otra. Esta es la llave foránea de la relación.
En el caso de las relaciones 1:1 también pueden darse dos casos:
o Si las entidades poseen cardinalidades (0,1), la relación se convierte en una tabla.
o Si una de las entidades posee cardinalidad (0,1) y la otra (1,1), conviene propagar la
clave a la entidad con cardinalidad (1,1) de la tabla resultante de la entidad con
cardinalidad (0,1). Si ambas entidades poseen cardinalidades (1,1) se puede
propagar la clave de cualquiera de ellas a la tabla resultante de la otra.
Por cada entidad encontrada en el diagrama se realiza una tabla, y los atributos se
convierten en los campos de cada tabla, cuando tienen diferente identificador cada entidad
se convierte en una tabla con su identificador como clave primaria y como clave ajena el
identificador de la otra entidad.
Las tablas que se surgen de la transformación son:
CLIENTE
DNI
Nombre
Dirección
Ciudad
Teléfono
PROMOTOR
DNI
Nombre
Turno
Teléfono
AUTO
Matricula
Marca
Modelo
Color
3. Se puede crear la llave foránea en cualquiera de las tablas, y ya con algunos registros
ingresados entonces el modelo quedaría así:
Modelo Relacional:
*Las claves primarias aparecen en negritas.
CLIENTE(DNI,NOMBRE,DIRECCION,CIUDAD,TELEFONO)
COMPRA(DNI_CLIENTE,MATRICULA_AUTO,FECHA_COMPRA)
AUTO(MATRICULA,MARCA,MODELO,COLOR)
VENTA(DNI_PROMOTOR,MATRICULA_AUTO,FECHA_VENTA)
PROMOTOR(DNI,NOMBRE,TURNO,TELEFONO)
CLIENTE
DNI NOMBRE DIRECCION CIUDAD TELEFONO
2468 MARIO CONOCIDO CAMPECHE 9811043996
9806 MAYTE CONOCIDO MERIDA 9991260616
2606 LUCI DESCONOCIDO CHETUMAL 9832541921
COMPRA
DNI_CLIENTE MATRICULA_AUTO FECHA_COMPRA
2468 DECE980608 14/04/2011
9806 FACV140493 06/08/2011
2606 GMYE626994 26/06/2011
AUTO
MATRICULA MARCA MODELO COLOR
DECE980608 FORD MUSTANG NEGRO
FACV140493 JEEP COMPAS AZUL
GMYE062694 GMC ARCADIA BLANCO
4. VENTA
DNI_PROMOTOR MATRICULA_AUTO FECHA_VENTA
3579 DECE980608 14/04/2011
9806 FACV140493 06/08/2011
1302 GMYE062694 26/06/2011
PROMOTOR
DNI NOMBRE TURNO TELEFONO
3579 KIMBERLY MAÑANA 9385006384
9806 JORDAN TARDE 9133151333
1302 SANDRA NOCHE 9381043996
Tipos de datos:
Tabla Cliente
DNI Numérico
Nombre Texto
Dirección Texto
Ciudad Texto
Teléfono Numérico
Tabla Compra
DNI_Cliente Numérico
Matricula_Auto Texto
Fecha_Compra Texto
Tabla Auto
Matricula Texto
Marca Texto
Modelo Texto
Color Texto
Tabla Venta
DNI_Promotor Numérico
Matricula_Auto Texto
Fecha_Venta Texto
5. Tabla Promotor
DNI Numérico
Nombre Texto
Turno Texto
Teléfono Numérico
Dominio
Un dominio describe un conjunto de posibles valores para cierto atributo. Como un
dominio restringe los valores del atributo, puede ser considerado como una restricción.
Matemáticamente, atribuir un dominio a un atributo significa "todos los valores de este
atributo deben de ser elementos del conjunto especificado". Distintos tipos de dominios
son: enteros, cadenas de texto, fecha,no procedurales etc.
Clave Primaria
Una clave primaria es una clave única elegida entre todas las candidatas que define
unívocamente a todos los demás atributos de la tabla, para especificar los datos que serán
relacionados con las demás tablas. La forma de hacer esto es por medio de claves foráneas.
Sólo puede existir una clave primaria por tabla y ningún campo de dicha clave puede
contener valores NULL.
En el ejemplo de este trabajo las claves primarias son las siguientes:
Cliente – DNI Cliente
Auto – Matricula Auto
Promotor – DNI Promotor
Clave Foránea
Una clave foránea es una referencia a una clave en otra tabla, determina la relación
existente en dos tablas. Las claves foráneas no necesitan ser claves únicas en la tabla donde
están y sí a donde están referenciadas.
Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de
Promotor. Se permite que haya varios Promotores en un mismo departamento, pero habrá
uno y sólo un departamento por cada clave distinta de departamento en la tabla de
Promotor.
6. Como ejemplo la tabla Promotor se muestra con una Clave Foránea
DNI NOMBRE TURNO TELEFONO CÓDIGO_DEPARTAMENTO
3579 KIMBERLY MAÑANA 9385006384 5001
9806 JORDAN TARDE 9133151333 5002
1302 SANDRA NOCHE 9381043996 5003
Relaciones
En una base de datos relacional, todos los datos se almacenan y se accede a ellos por medio
de relaciones. Las relaciones que almacenan datos son llamadas "relaciones base" y su
implementación es llamada "tabla". Otras relaciones no almacenan datos, pero son
calculadas al aplicar operaciones relacionales. Estas relaciones son llamadas "relaciones
derivadas" y su implementación es llamada "vista" o "consulta". Las relaciones derivadas
son convenientes ya que expresan información de varias relaciones actuando como si fuera
una sola.
DISEÑO DE CONSULTAS EMPLEANDO ÁLGEBRA RELACIONAL
Tenemos el siguiente esquema relacional de base de datos:
CLIENTES DNI NOMBRE DIRECCION CIUDAD TELEFONO
AUTOS MATRICULA MARCA MODELO COLOR
VENTAS MATRICULA_AUTO DNI_CLIENTE ID_VENTA
La tabla de clientes almacena información sobre cada posible cliente de nuestra empresa.
En la tabla de autos almacenamos información sobre cada auto de la empresa.
La tabla de ventas relaciona a las dos anteriores utilizando el atributo Matricula Auto para
indicar el auto que se venda, y el atributo DNI Clientepara indicar el cliente al que
vendimos el auto.
7. Realizamos consultas usando algebra relacional:
Lo primero es renombrar las tablas para facilitar su manejo en las consultas:
Clientes – C
Autos– A
Ventas – V
Para realizar las consultas de la base de datos con álgebra relacional se utiliza el operador
que se desea con sus respectivas condiciones y se hace una referencia a la tabla en la cual
actuará el operador la forma de realizar la consulta varia de cada operador y se pueden
realizar consultas de muchas formas de acuerdo a las condiciones establecidas por el
usuario en este caso se realizaron dos ejemplos empleando las tablas que están en este
mismo trabajo:
Consulta de selección
σ Nombre = Mayte(C)
DNI NOMBRE DIRECCION CIUDAD TELEFONO
9806 MAYTE CONOCIDO MERIDA 9991260616
Consulta de proyección
π Marca(A)
MARCA
FORD
JEEP
GMC
Y como podemos observar los resultados dependerán de la condición y el operador
utilizado, esto tiene como fin consultar tablas, filas y campos específicos sin necesidad de
ver datos no deseados ya que las consultas son más específicas y precisas.