Está en la página 1de 19

UNIVERSIDAD NACIONAL HERMILIO VALDIZÁN

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


ESCUELA PROFESIONAL INGENIERÍA DE SISTEMAS

Base de datos Botica N&C

Asignatura:
Teoría y diseño de base de datos

Docente:
Elmer Chuquiyauri
Milton Pardave

Integrantes:

Campos Espinoza, Serghio


Chamorro Alva, Melvin
Quijano Montalvo, Elim

HUÁNUCO – 2021
RESEÑA DE BOTICA Y PRINCIPIOS GENERALES

Boticas N&C nace a raíz de la necesidad popular por conseguir medicamentos a


costos cómodos y disponibles a la cercanía del hogar. Es por ello, que asentándose
en el distrito de Amarilis dio inicio a un proyecto a fin de solucionar la problemática
descrita anteriormente. Con un puesto estratégico y productos de prima, el negocio
comenzó a tener una gran acogida de clientes por día y consigo un mayor
movimiento de productos.

DESCRIPCIÓN DE LA PROBLEMÁTICA

Con el transcurso de los meses el incremento de clientes simbolizó una ligera


desventaja en cuanto al campo administrativo y financiero del establecimiento. La
entrada y salida de medicinas, hizo difícil el control y búsqueda de los Inventarios
de forma manual (notas, cuadernos, boletas de venta, entre otros) ante el gran
número de clientes que recibía el establecimiento diariamente.

Actualmente en el país, específicamente en la ciudad de Huánuco, en el sector


salud se han presentado diferentes inconvenientes, como lo son la entrega errónea
de medicamentos a sus pacientes, la pérdida de medicamentos, la caducidad de
estos mismos por falta de venta o entrega, el tiempo de disponibilidad de
medicamentos o cómo puede presentarse el tiempo para atender a los pacientes.
Sin embargo, el proceso en la entrega de medicamentos es en donde se presentan
más dificultades, debido a factores como pueden ser, el mal proceso de inventario,
que se debe a no usar adecuadamente la organización del inventario o el personal
no está debidamente capacitado.

En 2016 un grupo de investigadores de farmacología de Audifarma publicaron


datos, en donde durante 8 años se presentaron 14.873 equivocaciones de
medicación, en donde 5.512 fueron errores al momento de la revisión de la fórmula
médica y 4.631 errores se relacionaron con la dispensación del medicamento. (Silva
Numa, 2020). De este reporte un 67% hace referencia a las personas encargadas
de formular y entregar los medicamentos, luego un 12% el cual se relaciona con la
confusión del medicamento.(Redacción salud, 2017)
Requerimientos funcionales y no funcionales

Mediante las técnicas de análisis de requerimientos se pueden especificar de manera


correcta las diferentes acciones, funcionalidades, tareas o comportamiento que tendrá el
sistema de información propuesto y así minimizar lo relacionado al momento de su
desarrollo. A continuación, se presentarán los diferentes requerimientos, tanto funcionales
como no funcionales del sistema.

Requerimientos funcionales

Cuadro 1. Registro del trabajador

Nombre del Registrar Administradores y trabajadores.


Requerimiento:

Características: Los administradores deberán registrarse para acceder a


cualquier función del sistema.

Descripción del El sistema permitirá al usuario (Trabajador, administrador)


requerimiento: registrarse. El usuario debe suministrar datos como: Nombre,
Apellidos, E-mail, Número celular y dependiendo el tipo Usuario
y contraseña.

Prioridad del requerimiento:


Alta

Cuadro 2. Gestión del trabajador

Nombre del Gestión de Usuarios.


Requerimiento:

Características: El sistema permitiría al usuario con rango de administrador


modificar datos que se encuentren en el sistema y con rango de
trabajador, realizar ventas.

Descripción del El administrador, podrá modificar los datos de los usuarios


requerimiento:

Prioridad del requerimiento:


Alta
Cuadro 3. Registro del medicamento.

Nombre del Registrar medicamentos .


Requerimiento:

Características: El usuario de la farmacia podrá registrar los diferentes


medicamentos en el sistema

Descripción del El sistema permitirá al usuario registrar las características del


requerimiento: medicamento para que sea guardado en la base de datos, se
suministrarán datos como: nombre, empaque, cantidad,
presentación, fecha de vencimiento, vía administración,
almacenamiento, especificaciones, precio.

Prioridad del requerimiento:


Alta

Cuadro 4. Gestión del medicamento.

Nombre del Gestión de medicamentos .


Requerimiento:

Características: Los usuarios podrán visualizar los datos de los medicamentos

Descripción del El sistema permitirá al usuario consultar los datos de cualquier


requerimiento: medicamento.

Prioridad del requerimiento:


Alta

Cuadro 5. Generación factura.

Nombre del Generar factura .


Requerimiento:

Características: El operario realizará el diligenciamiento de un formato en donde


se especifique el trámite realizado y se tendrá evidencia para el
cliente.

Descripción del El sistema permitirá gestionar información sobre la venta de un


requerimiento: medicamento en donde se recopilan datos como: nombre del
medicamento, precio, cantidad y fecha.
Prioridad del requerimiento:
Alta

Cuadro 6. Gestión factura.

Nombre del Gestión factura.


Requerimiento:

Características: El usuario podrá realizar acciones sobre las facturas


registradas

Descripción del El sistema permitirá al usuario consultar o eliminar cualquier


requerimiento: registro de factura

Prioridad del requerimiento:


Alta

Requerimientos no funcionales

Cuadro 7. Seguridad.

Nombre del Seguridad


Requerimiento:

Características: El sistema debe proveer un mecanismo de autenticación para


utilizar las diferentes funciones qué provee el sistema de
información.

Descripción del El sistema debe permitir una manera de autenticación de los


requerimiento: usuarios para ingresar al sistema

Prioridad del requerimiento:


Alta

Cuadro 8. Documentación.

Nombre del Documentación


Requerimiento:

Características: El sistema deberá de tener un manual de usuario para facilitar


los mantenimientos que serán realizados por el administrador.

Descripción del El sistema debe poseer una documentación calara y


requerimiento: comprensible para el usuario y fácil de actualizar.

Prioridad del requerimiento:


Alta
MODELO LÓGICO
1. Script del modelo

CREATE TABLE ANAQUEL


(
id_anaquel INTEGER(10) NOT NULL,
fila_anaquel CHAR(18) NULL,
columna_anaquel CHAR(18) NULL,
capacidad_anaquel CHAR(18) NULL
);

ALTER TABLE ANAQUEL


ADD PRIMARY KEY (id_anaquel);

CREATE TABLE CATEGORIA


(
id_categoria CHAR(18) NOT NULL,
nombre_categoria CHAR(18) NULL,
nota_categoria CHAR(18) NULL
);

ALTER TABLE CATEGORIA


ADD PRIMARY KEY (id_categoria);

CREATE TABLE CLIENTE


(
dni_cliente CHAR(18) NOT NULL,
nombre_cliente CHAR(18) NULL,
apellido_cliente CHAR(18) NULL,
direccion_cliente CHAR(18) NULL,
telefono_cliente CHAR(18) NULL
);

ALTER TABLE CLIENTE


ADD PRIMARY KEY (dni_cliente);

CREATE TABLE DETALLES_VENTA


(
id_detallecompra CHAR(18) NOT NULL,
id_venta CHAR(18) NULL,
id_producto CHAR(18) NULL,
cantidad_detallecompra CHAR(18) NULL
);

ALTER TABLE DETALLES_VENTA


ADD PRIMARY KEY (id_detallecompra);

CREATE TABLE LUGARES_ANAQUEL


(
n_filas CHAR(18) NULL,
n_columnas CHAR(18) NULL,
id_producto CHAR(18) NULL,
id_lugaraanaquel CHAR(18) NOT NULL,
id_anaquel INTEGER(10) NULL
);

ALTER TABLE LUGARES_ANAQUEL


ADD PRIMARY KEY (id_lugaraanaquel);

CREATE TABLE PRODUCTO


(
id_producto CHAR(18) NOT NULL,
nombre_producto CHAR(18) NULL,
stock_producto CHAR(18) NULL,
imagen_producto CHAR(18) NULL,
forma_producto CHAR(18) NULL,
preciocompra_producto CHAR(18) NULL,
precioventa_producto CHAR(18) NULL,
id_categoria CHAR(18) NULL,
ruc_proveedor CHAR(18) NULL,
marca_producto CHAR(18) NULL,
fecha_vencimiento CHAR(18) NULL,
feche_recepcion CHAR(18) NULL
);
ALTER TABLE PRODUCTO
ADD PRIMARY KEY (id_producto);

CREATE TABLE PROVEEDOR


(

ruc_proveedor CHAR(18) NOT NULL,


nombre_proveedor CHAR(18) NULL,
telefono_proveedor CHAR(18) NULL,
nombrecontacto_proveedor CHAR(18) NULL
);

ALTER TABLE PROVEEDOR


ADD PRIMARY KEY (ruc_proveedor);

CREATE TABLE TRABAJADOR


(
dni_trabajador CHAR(18) NOT NULL,
nombre_trabajador CHAR(18) NULL,
apellido_trabajdor CHAR(18) NULL,
nacimiento_trabajador CHAR(18) NULL,
direccion_trabajador CHAR(18) NULL,
correo_trabajador CHAR(18) NULL,
categoria_trabajador CHAR(18) NULL,
contraseña_trabajador CHAR(18) NULL
);

ALTER TABLE TRABAJADOR


ADD PRIMARY KEY (dni_trabajador);

CREATE TABLE VENTA


(
id_venta CHAR(18) NOT NULL,
fecha_venta CHAR(18) NULL,
dni_trabajador CHAR(18) NULL,
dni_cliente CHAR(18) NULL
);

ALTER TABLE VENTA


ADD PRIMARY KEY (id_venta);

ALTER TABLE DETALLES_VENTA


ADD FOREIGN KEY R_11 (id_venta) REFERENCES VENTA (id_venta);

ALTER TABLE DETALLES_VENTA


ADD FOREIGN KEY R_12 (id_producto) REFERENCES PRODUCTO (id_producto);

ALTER TABLE LUGARES_ANAQUEL


ADD FOREIGN KEY R_13 (id_producto) REFERENCES PRODUCTO (id_producto);

ALTER TABLE LUGARES_ANAQUEL


ADD FOREIGN KEY R_16 (id_anaquel) REFERENCES ANAQUEL (id_anaquel);

ALTER TABLE PRODUCTO


ADD FOREIGN KEY R_5 (id_categoria) REFERENCES CATEGORIA (id_categoria);

ALTER TABLE PRODUCTO


ADD FOREIGN KEY R_15 (ruc_proveedor) REFERENCES PROVEEDOR
(ruc_proveedor);

ALTER TABLE VENTA


ADD FOREIGN KEY R_9 (dni_trabajador) REFERENCES TRABAJADOR
(dni_trabajador);

ALTER TABLE VENTA


ADD FOREIGN KEY R_10 (dni_cliente) REFERENCES CLIENTE (dni_cliente);
2. Descripción de tablas

Tabla cliente: Se hace el registro de los datos importantes de los clientes, personas
recurrentes de la farmacia

● dni_cliente: Identificador del cliente.


● nombre_cliente: Nombres del cliente.
● apellido_cliente: Apellidos del cliente.
● direccion_cliente: Domicilio del cliente.
● telefono_cliente: Teléfono del cliente.

Tabla venta: Se realiza el registro de existencia de la venta, relacionando el


trabajador y el cliente.

● id_venta: Identificador de la venta.


● fecha_venta: Fecha en la que se realizó el pedido.
● dni_trabajador: Identificador del trabajador.
● dni_cliente: Identificador del cliente.
Tabla detalles_venta: Se realiza el registro de los productos que se realizaron en la
venta.

● id_detallecompra: Identificador del detalle venta.


● id_venta: Identificador de la venta.
● id_producto: Identificador del producto comprado.
● cantidad_detallecompra: Registra la cantidad de producto comprado.

Tabla trabajador: Se registran los datos más importantes del trabajador de la


botica.

● dni_trabajador: Identificador del trabajador.


● nombre_trabajador: Nombre del trabajador.
● nacimiento_trabajador: Fecha de nacimiento del trabajador.
● direccion_trabajador: Domicilio del trabajador.
● correo_trabajador: Correo electrónico del trabajador.
● categoria_trabajador: El puesto que ocupa (vendedor, administrador).
● contraseña_trabajador: Contraseña de la cuenta del trabajador.
Tabla proveedor: Se registran los datos más importantes de los proveedores de la
botica.

● ruc_proveedor: Identificador del proveedor.


● nombre_preveedor: Nombre comercial del proveedor.
● telefono_proveedor: Telefono de contacto del proveedor represnetante.
● nombrecontacto_proveedor: Nombre del contacto proveedor.

Tabla anaquel: Se registran el ingreso de los anaqueles a la botica.

● id_anaquel: Identificador anaquel.


● fila_anaquel: Cantidad de filas que contiene el anaquel.
● columna_anaquel: Cantidad de columnas o separaciones que tiene el
anaquel.
● capacidad_anaquel: Capacidad de cada espacio del anaquel.

Tabla lugare_anaquel: Se registran el posicionamiento de los productos


ingresados.

● id_lugaraanaquel: Identificador del espacio.


● n_filas: El número de fila.
● n_columnas: El número de columna al que pertenece.
● id_producto: Identificador del producto que se guardará en esa posición.
● id_anaquel: Identificador del anaquel al cual pertenece el espacio.
Tabla categoría: Guarda las categorías de los medicamentos.

● id_categoria: Identificador único de la categoría.


● nombre_categoria: Guarda el nombre de la categoría.
● nota_categoría: Guarda los datos de la categoría.

Tabla productos: Se registran los datos de los productos ingresados en la botica.

● id_producto: Identificador del producto.


● nombre_producto: Nombre comercial producto.
● stock_producto: Cantidad de producto ingresado.
● imgen_producto: Link de la imagen del producto.
● forma_producto: Presentación del producto (Líquidas, Sólidas, Semisólida,
Otras).
● preciocompra_producto: Ingresamos el precio de compra del producto.
● precioventa_producto: Ingreso del precio de venta del producto.
● id_catedoria: Identificador a la categoría que pertenece el fármaco.
● ruc_proveedor: Identificador del proveedor del producto.
● marca_producto: Ingreso de la marca del producto.
● fecha_vencimiento: fecha de vencimiento del producto.
● fecha_recepcion: Fecha de la recepción del pruducto.
3. CONSULTAS

CONSULTAS SQL
1. SELECT SUM(producto.preciocompra_producto *
producto.stock_producto) as compra,
SUM(producto.precioventa_producto * producto.stock_producto) as
venta FROM producto

Consulta utilizada para obtener el total de precio de compra de todos


los medicamentos así como para obtener el total de precio de venta de
todos los medicamentos y definir cuánto es el gasto total y mediante la
resta sacar la ganancia general.

2. SELECT COUNT(*) as cant FROM venta WHERE fecha_venta =


'{$fecha}'

Consulta utilizada para obtener la cantidad de ventas que existen de


una determinada fecha.

3. SELECT COUNT(*) as cant FROM proveedor

Consulta utilizada para obtener la cantidad de proveedores que existen


en la DB.

4. SELECT COUNT(*) as cant FROM trabajador WHERE


categoria_trabajador = 'Empleado'

Consulta utilizada para obtener la cantidad de trabajadores de rango


Empleado que existen en la DB.

5. SELECT SUM(stock_producto) as cant FROM producto

Consulta utilizada para obtener la cantidad real de medicamentos que


existen en la DB.

6. SELECT, INSERT, UPDATE, DELETE

Consultas básicas de todo proceso para un CRUD(Create, Read,


Update, Delete).
TRIGGERS Y PROCEDIMIENTOS DE ALMACENADO

Trigger insertado de fila: Se encarga del proceso de insertado automático


de filas con una columna llena de datos vacíos para “id_producto” en la tabla
“lugares_anaquel” usando los ciclos while.

Trigger insertado de identificador autoincrementable personalizado: Se


encarga del proceso de insertado automático de ID autoincrementables en
las tablas de “anaquel” y “categoría”.
Trigger insertado con procedimiento de almacenado para la gestión de
posición automático de productos en anaqueles: Se encarga del proceso
de llano automático de productos en la tabla “luagres_anaquel”.

También podría gustarte