1. Diseño de bases de datos usando MER
Transformación de modelos E-R en diseños de
bases de datos relacionales
Se define una relación para cada entidad usando los mismos
nombres y atributos:
ENTIDAD RELACIÓN
CLIENTE
NumerodeCliente CLIENTE(NumerodeCliente,NombredelCliente,Dirección,
NombredelCliente Ciudad,Estado,CodigoPostal,NombreContacto,NumTelefonico)
Dirección
Ciudad
Estado
CodigoPostal
NombreContacto
NumTelefonico La llave va subrayada
2. Diseño de bases de datos usando MER
Transformación de modelos E-R en diseños de
bases de datos relacionales
Se evalua si las relaciones están en DK/NF para eliminar
anomalías. En el ejemplo saldrían 3 relaciones:
CLIENTE(NumerodeCliente,Dirección,CodigoPostal,NombreContacto)
CODIGO-POSTAL(CodigoPostal,Ciudad,Estado)
CONTACTO(NombreContacto,NumTelefonico)
Hay que tener en cuenta si este diseño es el que más conviene
porque a veces las relaciones resultantes pueden ser artificiales
y hacer más dificil el trabajo, como en el caso de CODIGO-
POSTAL. Para el caso de CONTACTO sólo sería válido si no se
trata de una relación 1:1
3. Diseño de bases de datos usando MER
Representación de relaciones TIENE-UN
1. Relaciones uno a uno
EMPLEADO 1:1 CARRO
Cada entidad se representa con una relación y luego la llave de
una entidad se coloca en la otra:
EMPLEADO(NumeroEmpleado,Nombre,NumTelefonico)
CARRO(PlacaCarro,Color,Marca,Modelo,...,NumeroEmpleado)
Dependiendo de cual entidad se vaya a
consultar más se puede hacer la operación La llave que se
contraria: agrega se llama llave
externa
CARRO(PlacaCarro,Color,Marca,Modelo)
EMPLEADO(NumeroEmpleado,Nombre,..,PlacaCarro)
4. Diseño de bases de datos usando MER
Representación de relaciones TIENE-UN
2. Relaciones uno a muchos
HABITACION 1:N ESTUDIANTE
Para identificar las entidades de la relación podemos llamar padre a
la entidad que participa con una instacia e hijo a la entidad que
participa con muchas instancias. La llave de la relación padre se
coloca en la relación hijo como llave externa.
HABITACIÓN(NumeroHabitacion,Edificio,Piso)
ESTUDIANTE(NumeroEstudiante,Nombre,Telefono,NumeroHabitacion)
A diferencia de las relaciones 1:1, en las relaciones 1:N no se
puede colocar la llave externa sino en una de las relaciones. ¿Qué
pasaría si intentamos poner la llave de la relación hijo como llave
externa en la relacion padre?
5. Diseño de bases de datos usando MER
Representación de relaciones TIENE-UN
3. Relaciones muchos a muchos
ESTUDIANTE M:N CLASE
Las relaciones muchos a muchos no pueden representarse
directamente mediante relaciones como se hace con las relaciones
1:1 o 1:N. ¿Por qué?
En este caso lo que se hace es crear una nueva relación que
represente la relación entre las dos anteriores:
ESTUDIANTE(NumeroEstudiante,Nombre,Telefono,...)
CLASE(NumeroClase,NombreClase,...)
ESTUDIANTE-CLASE(NumeroEstudiante,NumeroClase)
Esto equivale a dividir una relación M:N en dos 1:N. La nueva
relación se llama relación de intersección
6. Diseño de bases de datos usando MER
Representación de relaciones ES-UN
Para los subtipos se define una relación para el supertipo y una
para cada subtipo. Luego se agrega la llave del supertipo en
cada subtipo:
CLIENTE(NumeroCliente,Nombre,Saldo,...)
CLIENTE-PERSONA(NumeroCliente,Cedula, Direccion,...)
CLIENTE-SOCIEDAD(NumeroCliente,NIT, RepresentanteLegal,...)
CLIENTE-EMPRESA(NumeroCliente,NIT, PersonaContacto,...)
7. Diseño de bases de datos usando MER
Ejemplo de diseño
Considere el siguiente diagrama E-R:
8. Diseño de bases de datos usando MER
Ejemplo de diseño
Representación relacional:
9. Diseño de bases de datos usando MER
Ejemplo de diseño
Relaciones necesarias para representar el diagrama E-R.
EMPLEADO(NumeroEmpleado,otros atributos de EMPLEADO sin llave,...)
INGENIERO(NumeroEmpleado,otros atributos de INGENIERO sin llave,...)
AUTOBUS(NumeroLicencia,otros atributos de AUTOBUS sin llave,NumeroEmpleado)
SERVICIO(NumeroFactura,otros atributos de SERVICIO sin llave,NumeroEmpleado)
CLIENTE(NumeroCliente,otros atributos de CLIENTE sin llave,RecomendadoPor)
CLIENTE-SERVICIO(NumeroFactura,NumeroCliente,Tarifa)
INGENIERO-CERTIFICACION(NumeroEmpleado,NombreCertificacion,otros atributos
sin llave de INGENIERO-CERTIFICACION)
CERTIFICACION(NombreCertificacion,otros atributos sin llave de CERTIFICACION)
10. Diseño de bases de datos usando MER
Estructuras que se presentan comunmente:
Arboles: Conjunto de tipos de registro en el que cada uno tiene
exactamente un padre excepto la raiz, es decir que sus
elementos tienen relaciones uno a muchos
Redes simples: Los registros pueden tener padres múltiples pero
estos deben ser de diferente tipo. Relaciones uno a muchos
Redes complejas: Los registros pueden tener padres múltiples de
diferente tipo. Es decir al menos una relacion muchos a muchos
Listas de materiales: Son estructuras de datos que con
frecuencia se ven en apliaciones de manofactura e incluyen
relaciones recursivas muchos a muchos.
11. Diseño de bases de datos usando MER
Llaves sustitutas
Identificadores únicos que proporciona el sistema, se usan por
razones prácticas: para reducir el tamaño de las llaves y por
razones filosóficas para mantener la identidad de las entidades.
Una buena razón para usar siempre llaves sustitutas es mantener
la uniformidad al no mezclar con campos llave. En general se
recomienda su uso
Valores nulos
Un valor nulo es un valor que no ha sido asignado a un atributo.
Puede significar:
1. Que el valor es desconocido
2. Que no aplica en ciertos casos
3. Que se acepta en blanco.
La recomendación es no permitirlos, usando para ello subtipos.