Uploaded by Camilo Ortiz

Iteracion1-A02-cortizc-sarangoa

advertisement
Camilo Ortiz Cruz – 201821615
Sergio Arango Arango – 201921814
Iteración 1 - Proyecto
Análisis y modelo conceptual
Modelo Conceptual
Análisis Requerimientos
Nombre
RF1. Registrar Roles de Usuarios
Resumen
Se registran los roles de usuario definidos en la descripción del negocio. Debe incluir todos los
roles de usuario indicados en el enunciado. Esta operación es realizada por el administrador de
datos del supermercado.
Entradas
Rol: Nombre del rol
Resultados
El rol de usuario queda registrado en el sistema y queda listo para ser asignado a los usuarios en las sucursales
RNF asociados
Nombre
RF2. Registrar una Sucursal
Resumen
Debe considerar la información básica de una sucursal. Esta operación es realizada por el
administrador de datos del supermercado.
Entradas
Sucursal: ciudad, dirección, nombre
Resultados
La sucursal con toda su información queda registrada en el sistema
RNF asociados
Nombre
RF3. Registrar un usuario
Resumen
Los usuarios con toda la información que les corresponde. Deben quedar asociados a su
sucursal respectiva. Esta operación es realizada por el administrador de datos del supermercado.
Entradas
Usuario: tipoDocumento, documento, nombre, correoElectronico, palabraClave
El usuario debe ser asignado a una y solo una sucursal y uno y solo un rol, se debe tener la sucursal registrada en el sistema
y el rol registrado en el sistema.
Sucursal: nombre
Rol: rol
Resultados
El usuario con toda su información queda registrado en el sistema y sigue el rol asignado en las sucursales respectivas.
RNF asociados
Nombre
RF4. Registrar una bodega a una sucursal
Resumen
Debe considerar toda la información necesaria de una bodega para la operación completa de la
sucursal. Esta operación es realizada por los gerentes de sucursal, pero sólo en la sucursal
donde están asociados.
Entradas
Bodega: capacidadPeso, capacidadVolumen, tipoProducto
La bodega debe ser asignada a una y solo una sucursal, la sucursal ya debe estar registrada en el sistema
Sucursal: nombre
Resultados
La bodega queda registrada en el sistema y asociada a su sucursal. Dentro de las bodegas de la sucursal queda registrada la
bodega.
RNF asociados
Se necesita transaccionalidad.
Se necesita aislamiento ya que, si hay otras operaciones concurrentes sobre los datos pertinentes, los datos podrían resultar
en un estado incoherente. Por ejemplo, si concurrentemente se registra la sucursal a la que la bodega debe quedar asociada,
se debería poder registrar la sucursal y luego la bodega y su asociación si el registro de la sucursal pasa primero. En caso
contrario solo debería quedar registrada la sucursal.
La atomicidad es necesaria ya que se registrará una bodega y debe quedar asociada a una sucursal. La bodega no debe
quedar registrada si no queda asociada a la sucursal y viceversa.
Nombre
RF5. Registrar una estante a una sucursal
Resumen
Debe considerar toda la información necesaria de una estante para la operación completa de la
sucursal. Esta operación es realizada por los gerentes de sucursal, pero sólo en la sucursal
donde están asociados.
Entradas
Estante: capacidadPeso, capacidadVolumen, tipoProducto
El estante debe ser asignado a una y solo una sucursal, la sucursal ya debe estar registrada en el sistema
Sucursal: nombre
Resultados
El estante queda registrado en el sistema y asociado a su sucursal. Dentro de los estantes de la sucursal queda registrado el
estante.
RNF asociados
Se necesita transaccionalidad.
Se necesita aislamiento ya que, si hay otras operaciones concurrentes sobre los datos pertinentes, los datos podrían resultar
en un estado incoherente. Por ejemplo, si concurrentemente se registra la sucursal a la que el estante debe quedar asociado,
se debería poder registrar la sucursal y luego el estante y su asociación si el registro de la sucursal pasa primero. En caso
contrario solo debería quedar registrada la sucursal.
La atomicidad es necesaria ya que se registrará un estante y debe quedar asociado a una sucursal. El estante no debe
quedar registrado si no queda asociado a la sucursal y viceversa.
Nombre
RF6. Registrar proveedores
Resumen
Debe tener en cuenta los posibles proveedores con toda la información requerida en cada caso.
Esta operación es realizada por los gerentes de sucursal, pero sólo en la sucursal donde están
asociados.
Entradas
Proveedor: NIT, nombre, calificación(podría iniciar en cero o algún valor predeterminado)
Si se desean registrar los productos que el proveedor ofrece, los productos ya deben estar registrados en el sistema
Producto: codBarras, precioOfrecidoUnidad(el precio de referencia al que ese proveedor lo vende)
Si se desean registrar las sucursales que el proveedor tiene asociadas, las sucursales ya deben estar registradas en el
sistema
Sucursal: nombre
Resultados
El proveedor queda registrado con toda su información. Con su oferta de productos, con precios, si esta es ingresada. Con
sus sucursales asociadas si estas son ingresadas, y queda en los registros de proveedores de esas sucursales.
RNF asociados
Se necesita transaccionalidad en caso de ingresar productos o sucursales asociados al proveedor.
La atomicidad es requerida para garantizar que el proveedor solo quede registrado si también quedan registradas las
asociaciones a productos y/o sucursales y viceversa.
El aislamiento es necesario al haber asociaciones ya que se necesita que la otra entidad esté registrada antes de realizar el
registro de la asociación. Si la otra entidad se registra concurrentemente, el aislamiento asegura que o solo se registre la otra
entidad o se registre la otra entidad junto con el proveedor y la asociación.
Nombre
RF7. Registrar productos
Resumen
Debe tener en cuenta los posibles productos con toda la información requerida en cada caso.
Esta operación es realizada por los gerentes de sucursal, pero sólo en la sucursal donde están
asociados.
Entradas
Producto: codBarras, nombre, marca, cantidadPresentacion, unidadMedida, especificacionEmpacado, codBarras,
perecedero(si o no), tipo
Si se van a registrar las sucursales en las cuales el producto es ofrecido, las sucursales ya deben estar registradas en el
sistema.
Sucursal: nombre, precioVenta, nivelReOrden
Resultados
El producto queda registrado con toda su información. Si se ingresan sucursales en las cuales es ofrecido queda registrado
en la oferta de esas sucursales, junto con el precio de venta y nivel de reorden asociados.
RNF asociados
Se necesita transaccionalidad en caso de ingresar sucursales asociadas al producto.
La atomicidad es requerida para garantizar que el producto solo quede registrado si también quedan registradas las
asociaciones a sucursales y viceversa.
El aislamiento es necesario al haber asociaciones con sucursales ya que se necesita que la sucursal esté registrada antes de
realizar el registro de la asociación. Si la sucursal se registra concurrentemente, el aislamiento asegura que o solo se registre
la sucursal o se registre la sucursal junto con el producto y la asociación.
Nombre
RF8. Registrar clientes
Resumen
Con toda la información requerida por SUPERANDES. Esta operación es realizada por los
gerentes de sucursal, pero sólo en la sucursal donde están asociados. Vale la pena anotar que el
cliente queda registrado a nivel de la cadena de supermercados.
Entradas
Cliente: tipoDocumento, documento, nombre, correoElectronico, palabraClave
Se debe indicar si el cliente es una empresa, y en caso positivo se debe ingresar su direccion
Resultados
El cliente queda registrado en el sistema con toda su información. Si es empresa queda registrada junto con su dirección. Los
puntos siempre inician en cero.
RNF asociados
Se necesita transaccionalidad en caso de ingresar sucursales asociadas al cliente.
La atomicidad es requerida para garantizar que el cliente solo quede registrado si también quedan registradas las
asociaciones a sucursales y viceversa.
El aislamiento es necesario al haber asociaciones con sucursales ya que se necesita que la sucursal esté registrada antes de
realizar el registro de la asociación. Si la sucursal se registra concurrentemente, el aislamiento asegura que o solo se registre
la sucursal o se registre la sucursal junto con el cliente y la asociación.
Nombre
RF9. Registrar una promoción
Resumen
Debe considerar los diferentes tipos de promociones, indicando además cuántas unidades de
productos están disponibles para la promoción. Esta operación es realizada por los gerentes de
sucursal, pero sólo en la sucursal donde están asociados.
Entradas
Promoción: unidadesDisponibles, fechaInicio, fechaFin
Al ingresar una promoción debe ser asignada a una y solo una sucursal, la sucursal ya debe estar registrada en el sistema.
Se debe indicar si la promoción es una promoción de tipo Combo o de tipo Descuento
Si es de tipo Combo: se debe indicar el conjunto de productos que conforman el combo y el precio final del combo
(idealmente menor a la suma de los precios individuales)
Si es de tipo Descuento: se debe indicar compreX(la cantidad mínima que debe comprar para que aplique el descuento),
lleveY(la cantidad de unidades a las que se les aplicara el descuento a partir de compreX), conDescuento(el descuento
aplicado a las lleveY unidades) este último es un decimal entre cero y uno (1=100%)
Note que por ejemplo “pague dos lleves tres” se logra con los parametros (2,3,1), o “todas unidades tienen descuento del
d%” se consigue con los parametros (1,1,d/100)
Resultados
La promoción queda aplicando dentro de las fechas dadas en la sucursal respectiva. La promoción se registra dentro de una
factura al igual que la compra de cualquier producto.
RNF asociados
Se necesita transaccionalidad por las asociaciones a sucursales y productos.
La atomicidad es requerida para garantizar que la promoción solo quede registrada si también quedan registradas las
asociaciones a sucursales y productos y viceversa.
El aislamiento es necesario al haber asociaciones con sucursales y productos ya que se necesita que la sucursal y los
productos estén registrados antes de realizar el registro de la asociación. Si la sucursal y los productos se registran
concurrentemente, el aislamiento asegura que o solo se registre la sucursal y los productos o se registre la sucursal y los
productos junto con la promoción y la asociación.
Nombre
RF10. Finalizar una promoción
Resumen
Esta operación se hace sin interacción del usuario, sea cuando se vendieron todos los productos
de la promoción o porque llegó la fecha de vigencia de la promoción.
Entradas
Resultados
La promoción deja de aplicar cuando pasa la fechaFin o se agotan las unidades disponibles.
RNF asociados
Se necesita aislamiento en caso de que haya compras realizándose que incluyan esa promoción.
Nombre
RF11. Registrar un pedido de un producto a un proveedor
Resumen
Debe considerar toda la información de los pedidos. Esta operación es realizada por los gerentes
de sucursal, pero sólo en la sucursal donde están asociados.
Entradas
Orden: fechaEsperada
Una orden debe tener un y solo un proveedor, el proveedor ya debe estar registrado en el sistema.
Proveedor: NIT
Una orden debe tener un y solo un producto, el producto ya debe estar registrado en el sistema.
Producto: codBarras
Una orden debe tener una y solo una sucursal, la sucursal ya debe estar registrada en el sistema.
Sucursal: nombre
Resultados
La queda registrada en el sistema con toda su información. Estado queda iniciado en algún valor por defecto distinto de
“ENTREGADA”, y la fecha de entrega no queda registrada hasta que la orden sea recibida por la sucursal
RNF asociados
Aislamiento. En caso de que se registre alguna de las entidades asociada a la orden concurrentemente, el aislamiento
asegura que quede registrada la orden junto con la otra entidad y la asociación o solo la otra entidad. En todo caso no puede
quedar registrada la orden sin las demás entidades.
Nombre
RF12. Registrar la llegada de un pedido de un producto a una sucursal
Resumen
Incluye la actualización de inventarios y la evaluación del servicio prestado por el proveedor. Esta
operación es realizada por los operadores de una sucursal, pero sólo en la sucursal donde están
asociados.
Entradas
Orden: numeroOrden
calificacionProveedor
Resultados
El estado de la orden cambia a “ENTREGADA” y se registra la fecha en la que fue recibida.
Se actualizan los valores de cantidad del producto en bodega.
Se actualiza la calificación del proveedor dada la calidad de la entrega.
RNF asociados
Se requiere atomicidad ya que se debe registrar la llegada de la orden si y solo si se actualizan los inventarios y se da la
calificación al proveedor.
Se necesita aislamiento por si existen operaciones concurrentes sobre el inventario (las bodegas) que puedan interrumpir la
actualización de inventario por la orden.
Nombre
RF13. Aprovisionar un estante de productos
Resumen
Esta operación consiste en traer de bodega la cantidad necesaria de productos para que un
estante quede lleno y los clientes puedan entonces comprarlo. Incluye la actualización de
inventarios. Esta operación es realizada por los operadores de una sucursal, pero sólo en la
sucursal donde están asociados. Ocurre normalmente al inicio de la jornada, pero en casos
excepcionales de gran volumen de ventas, también puede ocurrir durante el día.
Entradas
Estante: id
Producto: codBarras
cantidad
Resultados
La operación se hace producto por producto y bodega por bodega. Se indica la cantidad que se va a restar de la bodega
(debe ser menor a la cantidad que hay en bodega), y esta misma se sumara a la cantidad que hay en el estante (debe
respetar la capacidad del estante).
Quedan actualizadas las cantidades en la bodega y el estante.
RNF asociados
Atomicidad: se actualiza el estante si y solo si se actualizan las bodegas.
Se necesita aislamiento por si existen operaciones concurrentes sobre las bodegas o estantes que puedan interrumpir la
actualización de inventario por la orden.
Nombre
RF14. Registrar una venta de producto en una sucursal
Resumen
Registra la venta de n unidades de un producto a un cliente. Incluye el proceso de descarga de
inventarios, facturación y eventual generación de pedido de productos o abastecimiento en
sucursal. Debe considerar también el caso de las promociones. Esta operación es realizada por
los cajeros de las sucursales, pero sólo en la sucursal donde están asociados.
Entradas
Productos: codBarras, cantidad (Unidades)
Resultados
Se debe revisar para cada producto que la cantidad comprada es menor a la suma de las disponibilidades en cada estante
que tenga ese producto. Como el cajero no conoce de cual estante vino cada producto simplemente para cada producto
encuentra el primer estante que tenga ese producto y le resta la cantidad comprada(y de esto no ser suficiente le resta al
siguiente estante que tenga ese producto iterativamente). Si Algún estante llega a su nivel de Abastecimiento se llama al
proceso de reAbastecimiento de estante para ese producto (RF13) con la primera bodega que se encuentre con ese producto
disponible. Si el nivel de las bodegas baja del nivel de reOrden se llama al proceso de orden para ese producto con el primer
proveedor de la sucursal que se encuentre con ese producto disponible.
Para las promociones se realiza el mismo proceso excepto el de actualización de los estantes ya que las promociones no
están en los estantes de los productos regulares. Lo que si se hace es actualizar la cantidad disponible de esa promoción.
RNF asociados
Atomicidad: se debe registrar la factura si y solo si se actualizan los estantes de los productos de la factura o la disponibilidad
de las promociones si es que hay alguna incluida en la compra.
Aislamiento: Se necesita aislamiento por si existen operaciones concurrentes sobre los estantes que puedan interrumpir la
actualización de inventario por la compra.
Sobre los Requerimientos no funcionales de cada Requerimiento Funcional: Todos
necesitan coherencia, ya que bajo ninguna operación sobre los datos es deseable generar
incoherencia. Todos los que necesiten atomicidad implican la necesidad de durabilidad ya
que es una actualización apropiada y coherente sobre los datos y debe persistir una vez
realizada.
Diseño de la base de datos
a)
Producto
nombre
NN
marca
NN
ciudad
direccion
nombre
PK
sucursal
PK, FK.Sucursal.nombre
producto
PK, FK.Producto.codBarras
precioVenta
NN
nivelReorden
NN
id
SA, PK
sucursal
FK.Sucursal.nombre, NN
capacidadPeso
NN
capacidadVol
NN
tipoProducto
id
SA, PK
sucursal
FK.Sucursal.nombre, NN
capacidadPeso
NN
capacidadVol
NN
tipoProducto
ProductoEnEstante
producto
PK, FK.Producto.codBarras
estante
PK, FK.Estante.id
cantidadUnidades
NN
nivelAbastecimiento
NN
cantPresentacionMasa cantPresentacionVol
NN
NN
unidadMedida
NN
Sucursal
Oferta
Estante
Bodega
especEmpacado
NN
codBarras
PK
perecedero
NN
tipo
NN
ProductoEnBodega
producto
PK, FK.Producto.codBarras
bodega
PK, FK.Bodega.id
cantidadUnidades
NN
nombre
calificacion
nivelAbastecimiento
NN
Proveedor
NIT
PK
OfertaProveedor
proveedor
PK, FK.Proveedor.NIT
producto
precioVentaReferencia
PK, FK.Producto.codBarras
Orden
numeroOrden
sucursal
proveedor
fechaEsperada
SA, PK
FK.Sucursal.nombre, NN
FK.Proveedor.NIT, NN
NN
sucursal
fecha
FK.Sucursal.nombre, NN
NN
tipoDocCliente
FK.Cliente.tipoDoc,
NN
Factura
numeroFactura
SA, PK
ProductosEnFactura
numeroFactura
producto
PK,
PK, FK.Producto.codBarras
FK.Factura.numeroFactura
cantidad
NN
fechaEntrega
documentoCliente
FK.Cliente.documento,
NN
estado
producto
NN
FK.Producto.codBarr
as
precioAcordadoUnitario cantidadOrdenada
NN
NN
ProductosEnFactura
numeroFactura
producto
PK,
PK, FK.Producto.codBarras
FK.Factura.numeroFactura
PromosEnFactura
numeroFactura
PK,
FK.Factura.numeroFactura
Promocion
idPromo
SA, PK
cantidad
NN
promocion
cantidad
PK, FK.Promocion.id
NN
sucursal
FK.Sucursal.nombre, NN
unidadesDisponibles
NN
PromocionCombo
idPromo
PK, FK.Promocion.idPromo
precio
NN
PromocionDescuento
idPromo
PK, FK.Promocion.idPromo
producto
FK.Producto.codBarras
compre
NN
lleve
NN
conDescuento
NN
ProductosEnPromoCombo
idPromo
producto
PK,
FK.PromocionCombo.idPro PK, FK.Producto.codBarras
mo
Usuario
tipoDoc
documento
nombre
correoElectronico
palabraClave
PK
PK
NN
NN
NN
tipoDoc
PK, FK.Usuario.tipoDoc
documento
PK, FK.Usuario.documento
nombre
NN
correoElectronico
NN
puntos
documento
PK, FK.Cliente.documento
direccion
Cliente
Empresa
tipoDoc
PK, FK.Cliente.tipoDoc
Rol
rol
PK
sucursal
FK.Sucursal.nombre,
NN
rol
FK.Rol.rol, NN
b)
El modelo relacional cumple con el Nivel de Normalización 1 ya que no existen tablas con atributos
con posibles multivalores.
El modelo cumple con el Nivel de Normalización 2 ya que no existen tablas en las que las llaves
candidatas participan en dependencias parciales hacia los atributos no primos. Esto es fácil de
verificar ya que la mayoría de las tablas tienen PK que consisten en máximo dos atributos. En
ningún caso es alguna de las dos innecesaria o determina por separado atributos que en conjunto
ambas también determinan.
El modelo también cumple con Nivel de Normalización 3 ya que no hay tablas con atributos no
primos que determinen a otros atributos no primos. Esto es fácil de verificar ya que todos los
atributos no primos son independientes.
Además, se cumple Boyce-Codd ya que ninguna tabla cuenta con llaves candidatas que se
intersecan.
Control de calidad del modelo
Download