Uploaded by Jun

Normalización

advertisement
NORMALIZACIÓN
FALTA:
No falta nada :)
SOLUCIONADO:
❖ RUC -> PagWeb.URL, nombre, hora_apertura, hora_cierre, aforo, ubicación,
fecha_inuauguración
Esta en BCNF, ya que RUC es Super Key
❖ RUC -> nombre, email, ubicación, nombre_contacto, telefono
Esta en BCNF, ya que RUC es Super Key
Tomando en cuenta que email siempre sea no repetible. Caso contrario, por
desgracia, se podría dar el caso que una persona pueda tener el mismo email que
otra, lo que en la vida real no sucedería
❖ DNI, email -> nombres, apellidos, fecha_nacimiento, genero, estado_civil
Esta en BCNF, ya que (DNI, email) es Super Key
Tomando en cuenta que un empleado no puede trabajar en dos lugares a la vez [osea
que no va a poder trabajar en otro supermercado hasta que la fecha_inicio (en el
nuevo supermercado) sea mayor o igual fecha_limite (en el anterior supermercado)]
❖ Super_nuevo.RUC, Codigo_empleado → Persona.DNI, Persona.Email ,
fecha_inicio, fecha_limite, turno_trabajo, fecha_contratado, salario, tipo
❖ Persona.DNI → Codigo_empleado (*)
No esta en BCNF por que Persona.DNI en (*) no es super key
Si esta en 3FN, ya que en (*) se cumple que Codigo_empleado es atributo primo
Esta en BCNF
❖ ID_Compra → Cliente.ID_Cliente, fecha_compra, hora_compra, precio_total,
metodo_de_pago
Esta en BCNF, ya que ID_Compra es Super Key
Considero que los atributos descripción y título son innecesarios, ya que en la vida
real dichos atributos no aportarian información relevante, y por otro lado sería más
trabajo al momento de hacer las restricciones.
❖ URL → cantidad_visitas, fecha_ultima_actualizacion_Super.RUC
De esta forma estaría en BCNF, ya que URL es Super Key
❖ ID_Producto → nombre, descripcion, categoria (*)
❖ ID_Producto, Compañia_Manu.RUC → fecha_recepcion, fecha_manufacturera,
fecha_caducidad, stock, precio, fecha_envio, cantidad
Esta en 2FN ya que tenemos una llave parcial:
ID_Producto → nombre, descripcion, categoria (*)
La pasamos a 3FN:
R1 (ID_Producto,nombre, descripcion, categoria)
R2 (Compañía_Manu.RUC, ID_Producto, fecha_recepcion,
fecha_manufacturera, fecha_caducidad, stock, precio, fecha_envio,
cantidad)
Probablemente este en BCNF, ya que no le encuentro formas normales no triviales.
Esta relación probablemente tenga esta forma producto de una descomposición.
❖ Compra.ID_Compra → Supermercado_nuevo.RUC, fecha_visita, hora_visita
De esta forma estaría en BCNF, ya que Compra.ID_Compra es Super Key
❖ Compra.ID_Compra → Supermercado_nuevo.RUC, fecha_visita, hora_visita
De esta forma estaría en BCNF, ya que Compra.ID_Compra es Super Key
❖ Visitante.IP → Pag_Web.URL
De esta forma estaría en BCNF, ya que Visitante.IP es Super Key
Tomando en cuenta que el atributo Matricula_Medio_Transporte será eliminado, ya
que no aporta ninguna información extra.
❖ Delivery_ID → medio_transporte, precio_extra_total, status, Cliente.ID_Cliente
❖ Delivery_ID, En_PaginaWeb.Compra.ID_Compra → fecha_delivery, hora_delivery
De esta forma estaría en BCNF, ya que los L.H.S. son super keys
●
●
Tomando en cuenta que Persona.email es no repetible
Tomando en cuenta que Delivery.Matricula_Medio_Transporte ya no será tomado en
cuenta
❖ ID_Cliente → ubicacion, Persona.DNI, Persona.email, Delivery.Delivery_ID
❖ Persona.DNI, Persona.email → ID_Cliente
Si en todo caso ID_Cliente → ubicacion, Persona.DNI, Persona.email,
Delivery.Delivery_ID sea la unica DF, estaria en BCNF
Caso contrario, de todas formas la relacion estaria en 3FN, ya que en Persona.DNI,
Persona.email → ID_Cliente, ID_Cliente esta en 3FN
❖ Nombre_usuario → Pag_Web.URL, Cliente.ID_Cliente, contraseña, fecha_creacion
Como Nombre_usuario es Super Key, entonces esta en BCNF
Tomando en cuenta que Productos ahora tiene la forma:
R1 (ID_Producto,nombre, descripcion, categoria)
R2 (Compañía_Manu.RUC, ID_Producto, fecha_recepcion, fecha_manufacturera,
fecha_caducidad, stock, precio, fecha_envio, cantidad)
Entonces Adquiere (Compra.ID_Compra, R1.ID_Producto,
R2.compañía_Manu.RUC, cantidad_productos_comprados) -> Asi quedaria al
final
❖ Compra.ID_Compra, R1.ID_Producto, R2.compañía_Manu.RUC →
cantidad_productos_comprados
Entonces esta en BCNF ya que Compra.ID_Compra,
R1.ID_Producto,R2.compañía_Manu.RUC es super key
❖ Empleado.Codigo_empleado, Empleado.Super_nuevo.RUC, Secciones.ID_Sección,
Secciones.Super_nuevo.RUC → Gerente.Código_empleado,
Gerente.Super_nuevo.RUC
❖ Empleado.Super_nuevo.RUC → Secciones.Super_nuevo.RUC,
Gerente.Super_nuevo.RUC
❖ …
En realidad podríamos eliminar los atributos Secciones.Super_nuevo.RUC,
Gerente.Super_nuevo.RUC por redundantes.
Entonces:
Responsable_seccion (Empleado.Codigo_empleado, Empleado.Super_nuevo.RUC,
Secciones.ID_Sección, Gerente.Código_empleado) -> Asi quedaria al final
Tomando en cuenta que Responsable_seccion ahora tiene la forma:
Responsable_seccion (Empleado.Codigo_empleado, Empleado.Super_nuevo.RUC,
Secciones.ID_Sección, Gerente.Código_empleado)
Entonces Secciones va a ser:
Secciones (ID_Seccion, Super_nuevo.RUC,
Responsable_seccion.Codigo_Empleado, Responsable_seccion.Super_nuevo.RUC,
Responsable_seccion.Secciones.ID_Seccion, nombre, descripcion, status,
ubicacion, capacidad_max_productos)
Podemos observar que Responsable_seccion.Super_nuevo.RUC es redundante
Por lo que lo eliminamos:
Secciones (ID_Seccion, Super_nuevo.RUC,
Responsable_seccion.Codigo_Empleado,
Responsable_seccion.Secciones.ID_Seccion, nombre, descripcion, status,
ubicacion, capacidad_max_productos)
Podemos observar ademas que Responsable_sección.Secciones.ID_sección es
redundante
Por lo que lo podemos eliminar:
Secciones (ID_Seccion, Super_nuevo.RUC,
Responsable_seccion.Codigo_Empleado, nombre, descripcion, status,
ubicacion, capacidad_max_productos) -> Asi quedaria al final
❖ Secciones.ID_Sección, Secciones.Super_nuevo.RUC → Super_nuevo.RUC
Esta en BCNF ya que Secciones.ID_Sección, Secciones.Super_nuevo.RUC es
Super Key
Creo que podemos eliminar Super_nuevo.RUC ya que es redundante
Tomando en cuenta que Productos ahora tiene la forma:
R1 (ID_Producto,nombre, descripcion, categoria)
R2 (Compañía_Manu.RUC, ID_Producto, fecha_recepcion,
fecha_manufacturera, fecha_caducidad, stock, precio, fecha_envio, cantidad)
Contiene2 (R1.ID_Producto, R2.Compañía_Manu.RUC, Secciones.ID_Sección) ->
Así quedaría al final
R1.ID_Producto, R2.Compañía_Manu.RUC → Secciones.ID_Sección,
Secciones.Super_nuevo.RUC
Esta en BCNF ya que R1.ID_Producto, R2.Compañía_Manu.RUC es Super Key
Tomando en cuenta que un empleado no puede trabajar en dos lugares a la vez
[osea que no va a poder trabajar en otro supermercado hasta que la fecha_inicio (en
el nuevo supermercado) sea mayor o igual fecha_limite (en el anterior
supermercado)]
Podemos observar que Responsable_seccion.Super_nuevo.RUC y
Responsable.Secciones.Super_nuevo.RUC son redundantes frente a la informacion
que presenta Empleado.Super_nuevo.RUC, por lo que serán eliminados.
Empleado Sección (Empleado.Código_empleado, Empleado.Super_nuevo.RUC,
Responsable_seccion.Codigo_empleado,
Responsable_seccion.Secciones.ID_Sección) -> Asi quedaría al final
Esta en BCNF.
IP -> Persona.DNI, Persona.Email, fecha_visita, hora_visita
Download