Download - 1b_Modelado BDs Relacionales ICED
1
2.- Transformar el Modelo E/R al Modelo Relacional Lógico
M.C. EMMANUEL ZENEN RIVERA BLAS
2
Las reglas básicas para convertir el Modelo E/R al Relacional Lógico son las siguientes:
1.- Todo tipo de entidad se convierte en una relación.2.- Todo tipo de interrelación N:M se transforma en una relación.3.- para todo tipo de interrelaciones 1:N se realiza lo que se denomina propagación de llave (regla general), o bien se crea una nueva relación.(2 casos)4.- Aplicar las reglas de propagación de llaves para interrelaciones 1:1. (3 casos)
M.C. EMMANUEL ZENEN RIVERA BLAS
33
GRAFO RELACIONAL
Una forma de representar gráficamente el esquema relacional de una manera sencilla y completa es el denominado grafo relacional. Es un grafo compuesto de un conjunto de nodos multiparticionados, donde cada nodo representa un esquema de relación, es decir una tabla de la Base de Datos. Para cada tabla, como mínimo, ha de aparecer su nombre y sus atributos, indicando:
Llave primaria => Negrita + SubrayadoLlave ajena=> Cursiva
Se dibuja además, un conjunto de arcos que conectan los atributos que constituyen la clave ajena con la tabla referenciada, permitiendo así que el usuario entienda los campos clave que comparten dominios comunes; en definitiva, los arcos representan la referenciabilidad de los atributos (clave ajena) de una relación respecto a la clave primaria de la otra.
M.C. EMMANUEL ZENEN RIVERA BLAS
4
PASO I: TRANSFORMACION DE ENTIDADES A RELACIONES
M.C. EMMANUEL ZENEN RIVERA BLAS
5
PRODUCTO
CodProductoClasificacion
DescripcionExistencia
Precio
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
PROVEEDORRFCNombreProv
EmpresaCargo
Calle
Numero
ColoniaCP
Direccion
Telefono
PaginaWeb
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
(1,N)
N:M
N:M
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURACodFacturaFechaFactura
Se compone
Se compone
(1,1)
(1,1)
(1,1)1:N
1:1
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTO
FechaCompraprecioCompra
Cantidad
Convertir todas las entidades en relaciones (Paso1).
Tipo
M.C. EMMANUEL ZENEN RIVERA BLAS
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)CLIENTE(Ver tema de Transformación de tipos y subtipos)PEDIDO()FACTURA()
PRODUCTO
CodProductoClasificacion
DescripcionExistencia
Precio
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
PROVEEDORRFCNombreProv
EmpresaCargo
Calle
Numero
ColoniaCP
Direccion
Telefono
PaginaWeb
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
N:M
N:M
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTO
FechaCompraprecioCompra
CantidadTipo
6M.C. EMMANUEL ZENEN RIVERA BLAS
7
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURACodFacturaFechaFactura
Se compone
Se compone
(1,1)
(1,1)
(1,1)1:N
1:1
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)CLIENTE(Email,Password,TipoCliente,Nombre,Apellidos,Sexo,RFC,Fax,Direccion,estado,Ciudad,CP,Telefono)PEDIDO(CodPedido,FechaPedido,FechaEntrega,EmpresaEnvio,FechaEnvio,CargoporEnvio,FechaPago,TipodeBanco,Estado)FACTURA(CodFactura,FechaFactura)
M.C. EMMANUEL ZENEN RIVERA BLAS
8
PASO II: TRANSFORMACION DE INTERRELACIONES N:M
M.C. EMMANUEL ZENEN RIVERA BLAS
9
Transformación de interrelaciones N:M. (paso 2)
Un tipo de interrelación N:M se transforma en una relación que tendrá como llave primaria la concatenación de las llaves primarias de las entidades que la asocia.
PRODUCTO
CodProductoClasificacion
DescripcionExistencia
Precio
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
PROVEEDOR RFCNombreProv
EmpresaCargo
CalleNumero
ColoniaCP
Direccion
Telefono
PaginaWeb
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
(1,N)
N:M
N:M
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURA CodFacturaFechaFactura
Se compone
Se compone
(1,1)
(1,1)
(1,1)1:N
1:1
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTOFechaCompra
precioCompra
Cantidad
M.C. EMMANUEL ZENEN RIVERA BLAS
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)
PROVEE(RFCProv,CodProducto,FechaCompra,PrecioCompra,Cantidad,Precio)
PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)
ORDEN_PRODUCTO(Email,Codproducto,FechaOrden,Cantidad,PrecioUnidad)
CLIENTE(Email,Password,TipoCliente,Nombre,Apellidos,Sexo,RFC,Fax,Direccion,estado,Ciudad,CP,Telefono)
PEDIDO(CodPedido,FechaPedido,FechaEntrega,EmpresaEnvio,FechaEnvio,CargoporEnvio,FechaPago,TipodeBanco,Estado)
FACTURA(CodFactura,FechaFactura)
PRODUCTO
CodProductoClasificacion
DescripcionExistencia
Precio
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
PROVEEDOR RFC
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
(1,N)
N:M
N:M
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTOFechaCompra
precioCompra
Cantidad
10M.C. EMMANUEL ZENEN RIVERA BLAS
11
PASO III: TRANSFORMACION DE INTERRELACIONES 1:N
M.C. EMMANUEL ZENEN RIVERA BLAS
12
Transformación de interrelaciones 1:N (caso 1)(paso 3)
PROFESOR Pertenece DEPARTAMENTO(1,n) (1,1)
CodProf CodDep
1:N
PROFESOR(CodProf, …, CodDep)
DEPARTAMENTO(CodDep, …)
M.C. EMMANUEL ZENEN RIVERA BLAS
13
PRODUCTO
CodProductoClasificacion
DescripcionExistencia
Precio
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
PROVEEDOR RFCNombreProv
EmpresaCargo
CalleNumero
ColoniaCP
Direccion
Telefono
PaginaWeb
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
(1,N)
N:M
N:M
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURA CodFacturaFechaFactura
Se compone
Se compone
(1,1)
(1,1)
(1,1)1:N
1:1
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTOFechaCompra
precioCompra
Cantidad
Transformación de interrelaciones 1:N (caso 1)(paso 3)
M.C. EMMANUEL ZENEN RIVERA BLAS
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)
PROVEE(RFCProv,CodProducto,FechaCompra,PrecioCompra,Cantidad,Precio)
PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)
ORDEN_PRODUCTO(Email,Codproducto,FechaOrden,Cantidad,PrecioUnidad,Codpedido)
CLIENTE(Email,Password,TipoCliente,Nombre,Apellidos,Sexo,RFC,Fax,Direccion,estado,Ciudad,CP,Telefono)
PEDIDO(CodPedido,FechaPedido,FechaEntrega,EmpresaEnvio,FechaEnvio,CargoporEnvio,FechaPago,TipodeBanco,Estado)
FACTURA(CodFactura,FechaFactura)
PRODUCTO
CodProductoExistencia
Precio
CLIENTE
CiudadTelefono
PROVEEDOR RFCNombreProv
EmpresaCargo
CalleNumero
ColoniaCP
Direccion
Telefono
PaginaWeb
Agrega al carrito(1,N) (0,N)
(1,N)
Provee
(1,N)
(1,N)
N:M
N:M
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
Se compone(1,1)
(1,1)1:N
EMPRESAPERSONA
FAXApellidosSexo
FechaOrden
Cantidad
PrecioUnidad
ORDEN_PRODUCTOFechaCompra
precioCompra
Cantidad
M.C. EMMANUEL ZENEN RIVERA BLAS
15
Transformación de interrelaciones 1:N (caso 2)(paso 3)
PERSONAtiene
papa
hijo
(1,n)
(1,1)
CodPersona1:N
Solución a:
PERSONA(CodPersona, …, CodPapa)
Solución b:PERSONA(CodPersona, …)
TIENEHIJO(CodHijo, CodPapa)
PERSONA
CodPersona CodPapa
PAD001 NULL
PAD002 NULL
HIJO001 PAD001
HIJO002 PAD002
HIJO003 PAD002
PERSONA
CodPersona
PAD001
PAD002
PAD003
TIENEHIJO
CodHijo CodPapa
HIJO001 PAD001
HIJO002 PAD001
HIJO003 PAD002
M.C. EMMANUEL ZENEN RIVERA BLAS
CAMPO FORANEO A LA MISMA TABLA Y PUEDE ACEPTAR
NULL
16
PASO IV: TRANSFORMACION DE INTERRELACIONES 1:1
M.C. EMMANUEL ZENEN RIVERA BLAS
Transformación de interrelaciones 1:1 ( caso 1) (paso 4).
HOMBRE MUJERMatrimonio(0,1)(0,1)
CodHombre CodMujer
1:1
Solución b:
HOMBRE(CodHombre, …)
MATRIMONIO(CodMujer,CodHombre)
MUJER(CodMujer, …)
Llave alternativa
(UNIQUE, NOT NULL)
Solución:Propagación de llaves como si fuera N:M, pero solo una de las llaves puede ser PK. La otra es UNIQUE NOT NULL. HOMBRE
CodHombre Nombre
HOM01 JUAN
HOM02 PEDRO
HOM03 PABLO
MUJER
CodMujer Nombre
MUJ01 VANESSA
MUJ02 KARLA
MUJ03 JULIA
MATRIMONIO
CodMujer CodHombre
MUJ01 HOM02
MUJ02 HOM01
MUJ03 HOM02
17M.C. EMMANUEL ZENEN RIVERA BLAS
18
PROFESOR DEPARTAMENTOResponsable(0,1)(1,1)
CodProf CodDepto
1:1
Solución a:Propagación de llaves.
Solución b:
PROFESOR(CodProf,…)
DEPARTAMENTO(CodDepto,…,CodProf)
Llave ajena
NOT NULL
Transformación de interrelaciones 1:1 ( caso 2) (paso 4).
PROFESOR
CodpProf
PROF001
PROF002
PROF003
PROF004
PROF005
DEPARTAMENTO
CodDepto CodProf
DEPTO001 PROF001
DEPTO002 PROF002
DEPTO003 PROF002
DEPTO004
M.C. EMMANUEL ZENEN RIVERA BLAS
19
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURA CodFacturaFechaFacturaSe compone
(1,1)
(1,1)
(1,1)
1:1
En caso de que ambas entidades presenten cardinalidades (1,1), se puede propagar la llave de cualquiera de ellas a la tabla resultante de la otra.
PEDIDO(CodPedido,...,)
FACTURA(CodFactura,…,CodPedido)
Llave ajena
NOT NULL
Transformación de interrelaciones 1:1 ( caso 3) (paso 4).
Ejercicio
M.C. EMMANUEL ZENEN RIVERA BLAS
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)
PROVEE(RFCProv,CodProducto,FechaCompra,PrecioCompra,Cantidad,Precio)
PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)
ORDEN_PRODUCTO(Email,Codproducto,FechaOrden,Cantidad,PrecioUnidad,Codpedido)
CLIENTE(Email,Password,TipoCliente,Nombre,Apellidos,Sexo,RFC,Fax,Direccion,estado,Ciudad,CP,Telefono)
PEDIDO(CodPedido,FechaPedido,FechaEntrega,EmpresaEnvio,FechaEnvio,CargoporEnvio,FechaPago,TipodeBanco,Estado)
FACTURA(CodFactura,CodPedido,FechaFactura)
PEDIDO
CodPedidoFechaPedido
CargoporEnvioFechaPago
TipoBanco
FACTURA CodFacturaFechaFacturaSe compone
(1,1)
(1,1)
(1,1)
1:1
20M.C. EMMANUEL ZENEN RIVERA BLAS
21
3.- Transformación de tipos y subtipos
M.C. EMMANUEL ZENEN RIVERA BLAS
22
Transformación de tipos y subtipos(1)
Para esta transformación se presentan tres opciones:
Opción a: Englobar todos los atributos de la entidad y sus subtipos en una sola relación.
Sugerencia: Utilizarla cuando los subtipos se difieren en muy pocos atributos.
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
(1,N)
EMPRESAPERSONA
FAXApellidosSexo
Tipo
CLIENTE(Email, Password,Nombre,Apellidos,Sexo,FAX,RFC,Direccion,Ciudad,Telefono,Tipo)
M.C. EMMANUEL ZENEN RIVERA BLAS
CLIENTE(Email, Password,TipoCliente,Nombre,Apellidos,Sexo,FAX,RFC,Direccion,Estado,Ciudad,CP,Telefono)
CLIENTE
EmailPassword
NombreRFC Calle
Numero
ColoniaCP
CiudadTelefono
Direccion
(1,N)
EMPRESAPERSONA
FAXApellidosSexo
Tipo
APLICAR VALIDACIONES EN CADA CASO DE ENTRADA SI ES PERSONA O EMPRESA.
23M.C. EMMANUEL ZENEN RIVERA BLAS
24
Opción b: Crear una relación para el supertipo y tantas relaciones como subtipos haya.
Sugerencia: Utilizarla cuando los subtipos se difieren en muchos atributos distintos.
CLIENTE
EmailPassword
EMPRESAPERSONA
FAXApellidosSexo
CLIENTE(Email, Password)
PERSONA(Email, Apellidos, Sexo,…)
EMPRESA(Email, FAX,…)
Transformación de tipos y subtipos(2)
M.C. EMMANUEL ZENEN RIVERA BLAS
25
Opción c: Considerar relaciones distintas para cada subtipo, que contengan, además de los atributos propios, los atributos comunes.
Sugerencia: Utilizarla cuando los subtipos se difieren en muchos atributos distintos y existen pocos atributos en el supertipo.
PERSONA(Email, Password, Apellidos, Sexo,…)
EMPRESA(Email, Password, FAX,…)
CLIENTE
EmailPassword
EMPRESAPERSONA
FAXApellidosSexo
Transformación de tipos y subtipos(3)
M.C. EMMANUEL ZENEN RIVERA BLAS
Regresar
26
MODELO RELACIONAL LÓGICO DEL CARRITO DE COMPRAS
M.C. EMMANUEL ZENEN RIVERA BLAS
MODELO RELACIONAL LÓGICO DEL CARRITO DE COMPRAS
PROVEEDOR (RFC,NombreProv,Empresa,Cargo,Direccion,Estado,Ciudad,CP,Telefono,Fax,PaginaWeb)
PROVEE(RFCProv,CodProducto,FechaCompra,PrecioCompra,Cantidad,Precio)
PRODUCTO(CodProducto,Clasificacion,Descripcion,Existencia,Precio,Foto)
ORDEN_PRODUCTO(Email,Codproducto,FechaOrden,Cantidad,PrecioUnidad,Codpedido)
CLIENTE(Email,Password,TipoCliente,Nombre,Apellidos,Sexo,RFC,Fax,Direccion,estado,Ciudad,CP,Telefono)
PEDIDO(CodPedido,FechaPedido,FechaEntrega,EmpresaEnvio,FechaEnvio,CargoporEnvio,FechaPago,TipodeBanco,Estado)
FACTURA(CodFactura,CodPedido,FechaFactura)
27M.C. EMMANUEL ZENEN RIVERA BLAS
28M.C. EMMANUEL ZENEN RIVERA BLAS