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