0% encontró este documento útil (0 votos)
10 vistas39 páginas

Proyecto SQL para Gestión de Inventarios

El proyecto tiene como objetivo diseñar e implementar una base de datos relacional en SQL para la empresa Manaco, enfocándose en la gestión de inventarios y ventas de calzado. Se busca optimizar el control de existencias y automatizar procesos operativos, mejorando la eficiencia y rentabilidad de la empresa. Además, se incluye un esquema relacional con tablas y relaciones, así como ejemplos de inserción de datos representativos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
10 vistas39 páginas

Proyecto SQL para Gestión de Inventarios

El proyecto tiene como objetivo diseñar e implementar una base de datos relacional en SQL para la empresa Manaco, enfocándose en la gestión de inventarios y ventas de calzado. Se busca optimizar el control de existencias y automatizar procesos operativos, mejorando la eficiencia y rentabilidad de la empresa. Además, se incluye un esquema relacional con tablas y relaciones, así como ejemplos de inserción de datos representativos.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD SALESIANA DE BOLIVIA

CONTADURIA PUBLICA

PROYECTO
INTEGRANTES: LUIS ALBERTO FLORES ARIAS

DOCENTE: LIC. ROBERTA MALLCU

MATERIA: BASE DE DATOS II

SEMESTRE: OCTAVO – TURNO MAÑANA

FECHA: 16 DE JUNIO DE 2025

LA PAZ - BOLIVIA
Proyecto Base de Datos –
CBN

Desarrollo del proyecto 1ra parte


Organizar según los siguientes puntos:

1. INTRODUCCIÓN
El presente proyecto tiene como finalidad el diseño y la implementación de una base de
datos relacional en SQL para la empresa Manaco, enfocada específicamente en la gestión de
inventarios. Esta herramienta tecnológica está orientada a mejorar el control, seguimiento de
los productos que conforman el stock de la empresa Manaco, permitiendo una
administración más eficiente de los recursos y una toma de decisiones basada en datos
actualizados y confiables.
Manaco, al ser una empresa industrial con un volumen significativo de producción y
comercialización, requiere contar con un sistema que permita registrar de forma precisa las
ventas del inventario, los niveles de existencias disponibles, las ubicaciones de
almacenamiento, así como las relaciones con clientes. Para este propósito, la base de datos
será diseñada respetando los principios de normalización y asegurando la integridad
referencial mediante la correcta implementación de claves primarias y forran
Dentro del desarrollo del proyecto se incluye la creación de las estructuras fundamentales
como tablas y relaciones entre entidades clave. Posteriormente, se llevarán a cabo
operaciones mediante consultas SQL, tales como inserción de datos (INSERT), actualización
(UPDATE), eliminación (DELETE) y recuperación de información mediante consultas simples
(SELECT). Estas funcionalidades facilitarán la automatización de tareas repetitivas,
disminuirán los errores humanos en el manejo de inventario y optimizarán el flujo de
información dentro de la organización.
Además, el sistema permitirá generar reportes básicos sobre el estado de los inventarios,
detectando a tiempo niveles mínimos, exceso de stock o productos con baja rotación, lo cual
representa una ventaja competitiva para Manaco en términos de planificación y eficiencia
operativa. En el largo plazo, esta base de datos también podría integrarse a otros módulos
como compras, ventas o producción, formando parte de un sistema de planificación de
recursos empresariales (ERP).
Proyecto Base de Datos –
CBN

2. ANTECEDENTES DE MANACO S.A.


La empresa Manaco S.A. (Manufactura Nacional Cochabamba) tiene sus orígenes en el año
1940, cuando fue fundada en la ciudad de Cochabamba bajo el modelo empresarial de
Tomáš Bata, un reconocido industrial checoslovaco. Su establecimiento en Bolivia respondió
a la necesidad de fomentar la industrialización nacional y generar fuentes de empleo en un
contexto de escaso desarrollo manufacturero. Un año después de su fundación, en 1941, la
empresa se trasladó al municipio de Quillacollo, donde permanece hasta la actualidad como
una de las industrias más emblemáticas del país.
Desde sus inicios, Manaco S.A. adoptó una filosofía de responsabilidad social empresarial
que se reflejó no solo en la producción de calzados accesibles para la población trabajadora,
sino también en la inversión en infraestructura social. En este sentido, la empresa promovió el
desarrollo urbano del municipio de Quillacollo mediante la construcción de barrios (como
Manaco y 12 de Enero), escuelas, campos deportivos y centros de salud, además de
fomentar el crecimiento del sindicalismo fabril en la región.
Durante la década de 1940, la planta alcanzó un notable crecimiento, llegando a emplear a
más de 1.800 trabajadores, lo que consolidó su influencia económica y social. En 1944 se
formó el Sindicato Fabril Manaco, uno de los más importantes del país en ese entonces,
reflejo del compromiso y la participación activa de sus trabajadores en la vida política y laboral
del país.
A nivel productivo, Manaco S.A. ha desarrollado una sólida infraestructura industrial,
incluyendo plantas de producción de suelas, calzado de cuero, curtiembre y productos
sintéticos. A lo largo de su historia ha incorporado tecnologías modernas y ha establecido
alianzas estratégicas con marcas internacionales como Bubble Gummers, North Star y Bata,
elevando los estándares de calidad y diseño de su oferta comercial.
Actualmente, la empresa cuenta con una capacidad productiva superior a los 2,5 millones de
pares de calzados anuales, generando un volumen de ventas superior a Bs 140 millones, y
exportando aproximadamente el 85 % de su producción a países como Perú, Chile, Colombia,
México y Ecuador. Su liderazgo en el mercado nacional ha sido respaldado por diversos
reconocimientos institucionales, entre ellos el Premio al Mérito Exportador otorgado por la
Cámara de Exportadores de Cochabamba, así como su inclusión en el ranking MERCO de
reputación empresarial en Bolivia.
En suma, Manaco S.A. representa un ejemplo destacado de desarrollo industrial con
responsabilidad social, adaptabilidad al entorno competitivo y compromiso con el bienestar de
Proyecto Base de Datos –
CBN

la comunidad. Su historia refleja el papel fundamental que ha tenido en la economía regional y


nacional, consolidándose como una de las marcas más representativas de la industria
boliviana del calzado.

Breve descripción del funcionamiento de la empresa o negocio (describir los


procesos o actividades existentes, los cuales deben estar relacionados con el
propósito del proyecto)

3. Objetivos

Implementar un sistema de base de datos en SQL eficiente que permita la gestión


integral de inventarios y ventas de calzados para varón, damas y niños,
proporcionando control preciso de existencias y automatización de procesos
operativos para maximizar la rentabilidad y minimizar pérdidas por sobrestock o
desabastecimiento.

OBJETIVOS ESPECÍFICOS

Establecer un sistema de control de stock que registre en tiempo real las existencias por modelo,
talla, color y ubicación

Optimización del Proceso de Ventas

 Desarrollar un módulo de registro de ventas que capture información detallada de


transacciones, clientes y marcas.

Automatización y Eficiencia Operativa

 Digitalizar procesos manuales de entrada y salida de mercancía


 Digitalizar registros manuales (entradas/salidas de almacén).
 Sincronizar datos entre puntos de venta físicos y en línea.

Escalabilidad y Seguridad del Sistema

 Garantizar la integridad y respaldo de datos mediante transacciones seguras y copias de


seguridad programadas
 Diseñar una estructura modular que permita incorporar nuevas líneas de
productos o sucursales.
Proyecto Base de Datos –
CBN

 Garantizar integridad de datos mediante transacciones ACID y backups


programados.
- Mostrar los datos obtenidos (captura de la pantalla, mostrando los datos)
Proyecto Base de Datos –
CBN

Segunda parte

4. Esquema relacional de la Base de Datos implementada en SQLServer

CODIGO CAPTURA DEL ESQUEMA

--CREAMOS LA BASE DE DATOS MANACO--


--Esquema relacional
CREATE DATABASE MANACO
-- 1. Tabla categoría
Use MANACO
CREATE TABLE categoría (
id_categoria INT PRIMARY KEY,
nombre VARCHAR (50) NOT NULL
UNIQUE,
descripción VARCHAR (256) NULL,
estado BIT DEFAULT 1
);

-- 2. Tabla articulo
Use MANACO
CREATE TABLE articulo (
id_articulo INT PRIMARY KEY,
id_categoria INT NOT NULL,
código VARCHAR (50) NULL,
nombre VARCHAR (100) NOT NULL
UNIQUE,
precio_venta DECIMAL (11,2) NOT NULL,
stock INT NOT NULL,
Proyecto Base de Datos –
CBN

descripción VARCHAR (256) NULL,


estado BIT DEFAULT 1,
FOREIGN KEY (id_categoria)
REFERENCES categoría(id_categoria)
);

-- 3. Tabla persona
Use MANACO
CREATE TABLE cliente (
id_persona INT PRIMARY KEY,
tipo_persona VARCHAR (20) NOT NULL,
nombre VARCHAR (100) NOT NULL,
Tipo_documento VARCHAR (20) NULL,
num_documento VARCHAR (20) NULL,
dirección VARCHAR (70) NULL,
teléfono VARCHAR (20) NULL,
email VARCHAR (50) NULL
);

-- 4. Tabla rol
Use MANACO
CREATE TABLE rol (
id_rol INT PRIMARY KEY,
nombre VARCHAR (30) NOT NULL,
descripción VARCHAR (100) NULL,
estado BIT DEFAULT 1
);
Proyecto Base de Datos –
CBN

-- 5. Tabla usuario
Use MANACO
CREATE TABLE usuario (
id_usuario INT PRIMARY KEY,
id_rol INT NOT NULL,
nombre VARCHAR (100) NOT NULL,
tipo_documento VARCHAR (20) NULL,
num_documento VARCHAR (20) NULL,
dirección VARCHAR (70) NULL,
teléfono VARCHAR (20) NULL,
email VARCHAR (50) NOT NULL,
password VARBINARY(MAX) NOT NULL,
estado BIT DEFAULT 1,
FOREIGN KEY (id_rol) REFERENCES
rol(id_rol)
);

-- 6. Tabla ingreso
Use MANACO
CREATE TABLE ingreso (
id_ingreso INT PRIMARY KEY,
id_proveedor INT NOT NULL,
id_usuario INT NOT NULL,
tipo_comprobante_factura VARCHAR (20)
NOT NULL,
serie_comprobante_factura VARCHAR (7)
NULL,
num_comprobante_factura VARCHAR (10)
NOT NULL,
fecha DATETIME NOT NULL,
Proyecto Base de Datos –
CBN

impuesto DECIMAL (4,2) NOT NULL,


total, DECIMAL (11,2) NOT NULL,
estado VARCHAR (20) NOT NULL,
FOREIGN KEY (id_proveedor)
REFERENCES Proveedor(id_proveedor),
FOREIGN KEY (id_usuario) REFERENCES
usuario(id_usuario)
);

-- 7. Tabla detalle_ingreso
Use MANACO
CREATE TABLE detalle_ingreso (
id_detalle_ingreso INT IDENTITY PRIMARY
KEY,
id_ingreso INT NOT NULL,
id_articulo INT NOT NULL,
cantidad INT NOT NULL,
precio DECIMAL (11,2) NOT NULL,
FOREIGN KEY (id_ingreso) REFERENCES
ingreso(id_ingreso),
FOREIGN KEY (id_articulo) REFERENCES
articulo(id_articulo)
);

-- 8. Tabla venta
Use MANACO
CREATE TABLE venta (
id_venta INT PRIMARY KEY,
Proyecto Base de Datos –
CBN

id_cliente INT NOT NULL,


id_usuario INT NOT NULL,
tipo_comprobante_factura VARCHAR (20)
NOT NULL,
serie_comprobante_factura VARCHAR (7)
NULL,
num_comprobante_factura VARCHAR (10)
NOT NULL,
fecha_hora DATETIME NOT NULL,
impuesto DECIMAL (4,2) NOT NULL,
total, DECIMAL (11,2) NOT NULL,
estado VARCHAR (20) NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES
cliente(id_persona),
FOREIGN KEY (id_usuario) REFERENCES
usuario(id_usuario)
);

-- 9. Tabla detalle_venta
Use MANACO
CREATE TABLE detalle_venta (
id_detalle_venta INT IDENTITY PRIMARY
KEY,
id_venta INT NOT NULL,
id_articulo INT NOT NULL,
cantidad INT NOT NULL,
precio DECIMAL (11,2) NOT NULL,
descuento DECIMAL (11,2) NOT NULL,
Proyecto Base de Datos –
CBN

FOREIGN KEY (id_venta) REFERENCES


venta(id_venta),
FOREIGN KEY (id_articulo) REFERENCES
articulo(id_articulo)
);

--10 Tabla proveedor--


use MANACO
CREATE TABLE Proveedor (
id_proveedor INT not null PRIMARY KEY,
nombre_prov varchar (30) null,
telefono int null,
email varchar (100) null,
dirección varchar (150) null
)
Proyecto Base de Datos –
CBN

DIAGRAMA ESTRUCTURADO EMPRESA MANACO

5. Insertar datos representativos en la base de datos implementada, para tal caso debe
tomar en cuenta el concepto de integridad de datos (Se sugiere considerar e Importar los
datos más significativos de la base de datos usada en clases)
Proyecto Base de Datos –
CBN

6. Construir 10 consultas de inserción de datos para cada una de las tablas

-Insertar Datos a las Tablas--


--Categoría--
INSERT INTO categoría
VALUES(1, 'Botines', 'Calzado resistente para exteriores', 1)
INSERT INTO categoría
VALUES(2, 'Sandalias', 'Sandalias de varón y de mujer', 1)
INSERT INTO categoría
VALUES(3, 'Zapatillas', 'Calzado deportivo', 1)
INSERT INTO categoría
VALUES(4, 'Zapatos de varón', 'zapatos de color negro de cuero', 1)
INSERT INTO categoría
VALUES(5, 'Zapatos escolares', 'Calzado para estudiantes', 1)
INSERT INTO categoria
VALUES(6, 'Zapatos de mujer', 'Calzado resistente', 1)
INSERT INTO categoria
VALUES(7, 'Pantuflas de varon', 'Calzado cómodo para el hogar', 1)
INSERT INTO categoria
VALUES(8, 'Botas militares', 'Botas de color negro', 1)
INSERT INTO categoria
VALUES(9, 'Tennis de varon', 'Tenis de todos los colores', 1)
INSERT INTO categoria
VALUES(10, 'Tenis de mujer', 'Tenis de todos los colores', 1)

--Articulo--
INSERT INTO articulo
VALUES(1, 4, 'BT001', 'Zapatos de Varon', 280.50, 50, 'Zapato con suela
antideslizante', 1)
INSERT INTO articulo
VALUES(2, 2, 'SD001', 'Sandalia Mujer', 120.00, 70, 'Diseño ligero y cómodo', 1)
INSERT INTO articulo
VALUES(3, 10, 'ZT001', 'Tennis de Mujer', 350.99, 30, 'Tenis de color blanco-
negro-rosado', 1)
INSERT INTO articulo
VALUES(4, 1, 'ZS001', 'Botines de varon', 400.00, 45, 'Puntera metálica y suela
resistente', 1)
INSERT INTO articulo
VALUES(5, 9, 'ZE001', 'Tennis de varon', 180.75, 80, 'Diseño especial de todos los
colores', 1)
INSERT INTO articulo
Proyecto Base de Datos –
CBN

VALUES(6, 8, 'BI001', 'Botas militares', 300.00, 25, 'Bota con protección para lluvia
de color negro', 1)
INSERT INTO articulo
VALUES(7, 2, 'PF001', 'Sandalias mujer ', 95.00, 100, 'Lana sintetica de
multicolores', 1)
INSERT INTO articulo
VALUES(8, 2, 'ZF001', 'Sandalias varones', 420.50, 40, 'Lana de fieltro tono
oscuro', 1)
INSERT INTO articulo
VALUES(9, 7, 'MC001', 'Pantuflas varones', 250.00, 60, 'Algodon pluma de ganso',
1)
INSERT INTO articulo
VALUES(10, 3, 'RC001', 'Zapatilla de mujer', 210.00, 30, 'Cuero funsional', 1)

--Proveedor--
INSERT INTO Proveedor
VALUES (1,'BATA',73536278,'bata@[Link]','Prado, av. 16 de julio, S/N')
INSERT INTO Proveedor
VALUES (2,'NORTH STAR',70090022,'NORTstar@[Link]','San miguel,zona
sur calle 5, N1415')
INSERT INTO Proveedor
VALUES (3,'TENER',62500783,'tener@[Link]','Obrajes, av 14
septiembre,N567')

--Cliente--
INSERT INTO cliente
VALUES(1, 'Juridica', 'La estrella SRL', 'Factura', 45678901, 'Prado, av. 16 de julio,
S/N', 73536278, 'estrella@[Link]')
INSERT INTO cliente
VALUES(2, 'Natural', 'Alejandro Prez', 'Comprobante', 75315984, 'Zona Industrial,
Cochabamba', 77451212, 'perez2@[Link]')
INSERT INTO cliente
VALUES(3, 'Juridica', 'Textiles Andinos', 'Factura', 85296374, 'Av. Blanco Galindo',
76547896, 'textiles@[Link]')
INSERT INTO cliente
VALUES(4, 'Juridica', 'Gomas Ferreteria', 'Factura', 74125896, 'Km 10 Carretera
Sacaba', 78785456, 'gomas@[Link]')
INSERT INTO cliente
VALUES(5, 'Natural', 'Gonzalo Mendez', 'Comprobante', 78945612, 'Calle final
Villarroel', 74589632, 'mendez@[Link]')
INSERT INTO cliente
VALUES(6, 'Natural', 'María Flores','Comprobante', 4567890, 'Av. América 345',
75678912, '[Link]@[Link]')
Proyecto Base de Datos –
CBN

INSERT INTO cliente


VALUES(7, 'Natural', 'Carlos López', 'Comprobante', 7891234, 'Zona Sur, calle 10',
78945613, '[Link]@[Link]')
INSERT INTO cliente
VALUES(8, 'Juridica', 'Ferreteria morat', 'Factura', 8745210, 'Av. Beijing, calle 10',
78452100, 'ferreteriamoratvega@[Link]')
INSERT INTO cliente
VALUES(9, 'Natural', 'Luis Castro', 'Comprobante', 7412589, 'Av. Circunvalación',
74185296, '[Link]@[Link]')
INSERT INTO cliente
VALUES(10, 'Natural', 'Sofía Mamani', 'Comprobante', 9632587, 'Calle Tupac
Katari', 78945632, '[Link]@[Link]')

--Rol--
INSERT INTO rol
VALUES(1, 'Administrador', 'Acceso completo al sistema', 1)
INSERT INTO rol
VALUES(2, 'Encargado de compras', 'Control de compras', 1)
INSERT INTO rol
VALUES(3, 'Vendedor1', 'Gestión de ventas y clientes', 1)
INSERT INTO rol
VALUES(4, 'Vendedor2', 'Gestion de ventas y clientes', 1)
INSERT INTO rol
VALUES(5, 'Contador', 'Acceso a reportes contables', 1)
INSERT INTO rol
VALUES(6, 'Vendedor3', 'Gestion de ventas y clientes', 1)
INSERT INTO rol
VALUES(7, 'Supervisor', 'Supervisión de personal', 1)
INSERT INTO rol
VALUES(8, 'Gerente de almacenes', 'Control de almacenes', 1)
INSERT INTO rol
VALUES(9, 'Soporte Técnico', 'Gestión de infraestructura TI', 1)
INSERT INTO rol
VALUES(10, 'Encargado de almacen', 'Gestión de zapatos de todo tipo', 1);

--Usuario--
INSERT INTO usuario
VALUES(1, 1, 'Juan Pérez', 'CI', 7894561, 'Zona Norte', 76543210,
'juan@[Link]', CONVERT(VARBINARY, 'admin123'), 1)
INSERT INTO usuario
VALUES(2, 2, 'Ana Flores', 'CI', 8529637, 'Av. Oquendo', 74589631,
'ana@[Link]', CONVERT(VARBINARY, 'compras567'), 1)
INSERT INTO usuario
Proyecto Base de Datos –
CBN

VALUES(3, 3, 'Marco Rojas', 'CI', 1234567, 'Zona Central', 72145896,


'marco@[Link]', CONVERT(VARBINARY, 'ventas123'), 1)
INSERT INTO usuario
VALUES(4, 4, 'Laura Arce', 'CI', 9632587, 'Av. Blanco Galindo', 71234567,
'laura@[Link]', CONVERT(VARBINARY, 'ventas223'), 1)
INSERT INTO usuario
VALUES(5, 5, 'Pedro Limachi', 'CI', 3214569, 'Tiquipaya', 78945612,
'pedro@[Link]', CONVERT(VARBINARY, 'conta123'), 1)
INSERT INTO usuario
VALUES(6, 6, 'Elena Vargas', 'CI', 6547891, 'Quillacollo', 78965412,
'elena@[Link]', CONVERT(VARBINARY, 'ventas345'), 1)
INSERT INTO usuario
VALUES(7, 7, 'Luis Copa', 'CI', 7418529, 'Cercado', 74185296, 'luis@[Link]',
CONVERT(VARBINARY, 'supervisor123'), 1)
INSERT INTO usuario
VALUES(8, 8, 'Miriam Ayala', 'CI', 9637412, 'Zona Sud', 78945613,
'miriam@[Link]', CONVERT(VARBINARY, 'gerente123'), 1)
INSERT INTO usuario
VALUES(9, 9, 'Samuel Torres', 'CI', 9876543, 'Zona Norte', 78945611,
'samuel@[Link]', CONVERT(VARBINARY, 'soporte123'), 1)
INSERT INTO usuario
VALUES(10, 10, 'Diana Pinto', 'CI', 8529634, 'Av. Villazón', 78965478,
'diana@[Link]', CONVERT(VARBINARY, 'encarg123'), 1)

--Ingreso--
INSERT INTO ingreso
VALUES(1, 1, 10, 'Factura', 'F001', '00001', '2025-06-01', 13.00, 267.50,
'Registrado')
INSERT INTO ingreso
VALUES(2, 2, 9, 'Comprobante', 'C001', '00001', '2025-06-02', 13.00, 337.99,
'Registrado')
INSERT INTO ingreso
VALUES(3, 3, 8, 'Factura', 'F002', '00002', '2025-06-03', 13.00, 167.75,
'Registrado')
INSERT INTO ingreso
VALUES(4, 1, 7, 'Factura', 'F003', '00003', '2025-06-04', 13.00, 82.00, 'Registrado')
INSERT INTO ingreso
VALUES(5, 2, 6, 'Comprobante', 'C002', '00002', '2025-06-05', 13.00, 237.00,
'Registrado')
INSERT INTO ingreso
VALUES(6, 3, 5, 'Comprobante', 'C003', '00003', '2025-06-06', 13.00, 197.00,
'Registrado')
INSERT INTO ingreso
Proyecto Base de Datos –
CBN

VALUES(7, 2, 4, 'Factura', 'F004', '00004', '2025-06-07', 13.00, 407.50,


'Registrado')
INSERT INTO ingreso
VALUES(8, 3, 3, 'Factura', 'F005', '00005', '2025-06-08', 13.00, 287.00,
'Registrado')
INSERT INTO ingreso
VALUES(9, 2, 2, 'Factura', 'F006', '00006', '2025-06-09', 13.00, 387.00,
'Registrado')
INSERT INTO ingreso
VALUES(10, 1, 1, 'Comprobante', 'C004', '0007', '2025-06-10', 13.00, 107.00,
'Registrado')

--Detalle de Ingreso--
SET IDENTITY_INSERT detalle_ingreso ON;
INSERT INTO detalle_ingreso (id_detalle_ingreso, id_ingreso, id_articulo,
cantidad, precio) VALUES
(1, 1, 1, 20, 267.50),
(2, 2, 3, 30, 337.99),
(3, 3, 5, 15, 167.75),
(4, 4, 7, 10, 82.00),
(5, 5, 9, 50, 237.00),
(6, 6, 10, 25, 197.00),
(7, 7, 8, 40, 407.50),
(8, 8, 6, 15, 287.00),
(9, 9, 4, 30, 387.00),
(10, 10, 2, 20, 107.00);

SET IDENTITY_INSERT detalle_ingreso OFF;


--Venta--
INSERT INTO venta
VALUES(1, 6, 10, 'Factura', 'F001', 1001, '2025-06-01', 13.00, 267.50, 'Registrado')
INSERT INTO venta
VALUES(2, 7, 9, 'Comrpobante', 'C001', 1002, '2025-06-02', 13.00, 337.99,
'Registrado')
INSERT INTO venta
VALUES(3, 4, 8, 'Factura', 'F002', 1003, '2025-06-03', 13.00, 167.75, 'Registrado')
INSERT INTO venta
VALUES(4, 3, 7, 'Factura', 'F003', 1004, '2025-06-04', 13.00, 82.00, 'Registrado')
INSERT INTO venta
VALUES(5, 5, 6, 'Comprobante', 'C002', 1005, '2025-06-05', 13.00, 237.00, 'No
registrado')
INSERT INTO venta
VALUES(6, 6, 5, 'Comprobante', 'C003', 1006, '2025-06-06', 13.00, 197.00,
Proyecto Base de Datos –
CBN

'Registrado')
INSERT INTO venta
VALUES(7, 7, 4, 'Factura', 'F004', 1007, '2025-06-07', 13.00, 407.50, 'No
registrado')
INSERT INTO venta
VALUES(8, 2, 3, 'Factura', 'F005', 1008, '2025-06-08', 13.00, 287.00, 'Registrado')
INSERT INTO venta
VALUES(9, 1, 2, 'Factura', 'F006', 1009, '2025-06-09', 13.00, 387.00, 'Registrado')
INSERT INTO venta
VALUES(10, 10, 1, 'Comprobante', 'C004', 1010, '2025-06-10', 13.00, 107.00,
'Registrado')

--Detalle de Venta--
SET IDENTITY_INSERT detalle_venta ON;
INSERT INTO detalle_venta (id_detalle_venta, id_venta, id_articulo, cantidad,
precio, descuento) VALUES
(1, 1, 1, 2, 12.00, 276.50),
(2, 10, 2, 1, 9.00, 107.00),
(3, 2, 3, 3, 25.00, 337.99),
(4, 9, 4, 4, 15.00, 387.00),
(5, 3, 5, 5, 5.00, 167.75),
(6, 4, 6, 7, 5.00, 82.00),
(7, 5, 7, 9, 25.00, 237.00),
(8, 6, 8, 10, 25.00, 197.00),
(9, 7, 9, 8, 20.00, 407.50),
(10, 8, 10, 6, 10.00, 287.00);

SET IDENTITY_INSERT detalle_venta OFF;

7. Construir 10 consultas de actualización de datos. Tomar en cuenta la integridad de


datos.

1.- Actualizar el nombre de un artículo


Cambiar el nombre del artículo con código ZT001 a “Tenis Deportivo Mujer”.
UPDATE articulo
SET nombre = 'Tenis tela Deportivo Mujer'
WHERE código = 'ZT001';

Antes Después
Proyecto Base de Datos –
CBN

2. Corregir el número de teléfono de un proveedor


Corregir el número de teléfono del proveedor ‘TENER’ a 72500783.
UPDATE Proveedor
SET teléfono = 72500783
WHERE nombre_prov = 'TENER';

Antes Después

3. Cambiar la dirección de un cliente


Enunciado: Actualizar la dirección del cliente ‘Alejandro Prez’ a “Calle
Ayacucho N°123”.
UPDATE cliente
SET dirección = 'Calle Ayacucho N°123'
WHERE nombre = 'Alejandro Prez';

Antes Después
Proyecto Base de Datos –
CBN

4. Modificar el precio de venta de un artículo sin cambiar su identificación ni


categoría
Actualizar el precio de venta del artículo ‘Botines de varón’ a Bs 420.00,
manteniendo su categoría y demás atributos sin modificación.
UPDATE articulo
SET precio venta = 420.00
WHERE nombre = 'Botines de varón';

Antes Después

5. Cambiar el estado de un rol a inactivo


Desactivar el rol 'Vendedor1'.
UPDATE rol
SET estado = 0
WHERE nombre = 'Vendedor1';

Antes Después

6. Aumentar el precio de venta de un artículo


Proyecto Base de Datos –
CBN

Incrementar en 10% el precio de venta de ‘Botas militares’.


UPDATE articulo
SET precio venta = precio venta * 1.10
WHERE nombre = 'Botas militares';

Antes Después

7. Actualizar completamente el nombre de un cliente por error de registro


Cambiar el nombre del cliente “Luis Castro” por “Mario Fernández”, debido a
que el nombre original fue registrado incorrectamente.
UPDATE cliente
SET nombre = 'Mario Fernández'
WHERE nombre = 'Luis Castro';

Antes Después

8. Cambiar correo electrónico de un usuario


Enunciado: Actualizar el correo de usuario ‘Pedro Limachi’ a
limachi@[Link].
UPDATE usuario
SET email = 'limachi@[Link]'
WHERE nombre = 'Pedro Limachi';

Antes Después
Proyecto Base de Datos –
CBN

9. Cambiar el estado de una venta a ‘Anulado’


Cambiar el estado de la venta con id_venta = 5 a “Anulado”.
UPDATE venta
SET estado = 'Anulado'
WHERE id_venta = 5;

Antes Después

10. Corregir la descripción de una categoría


Cambiar la descripción de la categoría ‘Sandalias’ a “público sandalia”.
UPDATE categoria
SET descripcion = 'público sandalia'
WHERE nombre = 'Sandalias';

Antes Después
Proyecto Base de Datos –
CBN

8. Construir 2 consultas de eliminación de datos. Tomar en cuenta la integridad de datos.

CÓDIGO CAPATURA

--CONSULTA DE
ELIMINACION DE
DATOS--
--Eliminacion de
id_ asrticulo 10,
tabla articulos--
select'detalle_vent
a' as tabla, count(*)
as registros
from detalle_venta
where id_articulo
=10
UNION ALL
Select
'detalle_ingreso' as
tabla, count(*) as
registros
from
detalle_ingreso
where
id_articulo=10;

begin transaction;

DELETE FROM
detalle_venta
where id_articulo
=10
DELETE FROM
detalle_ingreso
Proyecto Base de Datos –
CBN

where id_articulo
=10
DELETE FROM
articulo where
id_articulo =10

Commit
transaction;

Select* From
articulo where
id_articulo=10;

---Elimacion del id
categoria 10 de la
tabla categoria--
select'Articulo' as
tabla, count(*) as
registros
from articulo where
id_categoria =10;
Select * from
categoria where
id_categoria = 10;
select id_articulo,
nombre from
articulo where
id_categoria= 10;

begin transaction;

DELETE FROM
detalle_venta
where id_articulo in
(select id_articulo
from articulo where
id_categoria=10);
DELETE FROM
detalle_ingreso
where id_articulo in
(select id_articulo
from articulo where
id_categoria=10);
Proyecto Base de Datos –
CBN

DELETE FROM
articulo where
id_categoria =10;
DELETE FROM
categoria where
id_categoria=10;

Commit
transaction;

Select* From
categoria where
id_categoria=10;

9. Definición de vistas para todas las tablas de su base de datos (se sugiere crear la vista para cada
una de las tablas de su base de datos)

CAPTURA
CÓDIGO

--Deficion de vista para todas


las tablas--
CREATE VIEW v_categorias
as
select
id_categoria,
nombre,
descripcion,
estado
from categoria where
estado=1;

CREATE VIEW v_categorias


as
select
id_categoria,
nombre,
descripcion,
estado
from categoria where
estado=1;
Proyecto Base de Datos –
CBN

CREATE VIEW v_articulos as


select
id_articulo,
codigo,
nombre,
precio_venta,
stock,
estado
From articulo
where estado =1;

CREATE VIEW v_proveedor as


select
id_proveedor,
nombre_prov
from Proveedor

CREATE VIEW v_cliente as


select
id_persona,
tipo_persona,
nombre,
CI,
direccion,
telefono,
email
From cliente

CREATE VIEW v_rol as


select
id_rol,
nombre,
descripcion
From rol

CREATE VIEW v_usuarios as


select
id_usuario,
nombre,
direccion,
telefono,
email
Proyecto Base de Datos –
CBN

From usuario

CREATE VIEW v_ingreso as


select
id_ingreso,
tipo_comprobante_factura,
serie_comprobante_factura,
num_comprobante_factura,
fecha,
total
From ingreso

CREATE VIEW
v_detalle_ingreso as
select
id_detalle_ingreso,
cantidad,
precio
From detalle_ingreso

CREATE VIEW v_ventas as


select
id_venta,
tipo_comprobante_factura,
serie_comprobante_factura,
num_comprobante_factura,
fecha_hora,
total
From venta

CREATE VIEW
v_detalle_venta as
select
id_detalle_venta,
cantidad,
precio,
descuento
From detalle_venta
--Vistas con el codigo SQL--
Select*from v_articulos;
Select*from v_cliente;
Select*from v_proveedor;
Select*from v_categorias;
Proyecto Base de Datos –
CBN

Select*from v_detalle_ingreso;
Select*from v_detalle_venta;
Select*from v_ingreso;
Select*from v_rol;
Select*from v_usuarios;
Select*from v_ventas;

10. Construir 5 consultas simples de su base de datos, aplique las cláusulas like, in, between, is null

CÓDIGO CAPTURA

--Construir 5
Consultas
Simples--

--1. Listar los


articulos cuyo
nombre contenga
la palabra
"ZAPATO", mostrar
el id articulo,
--nombre y precio--
SELECT id_articulo,
nombre,
precio_venta
FROM articulo
WHERE nombre
LIKE '%Zapato%';
Proyecto Base de Datos –
CBN

--2. Listar los


articulos que esten
en la categoria de
1a
3, mostrar el id
articulo, nombre y la
categoria--
SELECT id_articulo,
nombre,
id_categoria
FROM articulo
WHERE
id_categoria IN (1,
2, 3);

--3. Listar usuarios


cuyo email termine
en ".bo", mostrar
el id_usuario,
nombre, email
SELECT id_usuario,
nombre, email
FROM usuario
WHERE email LIKE
'%.bo'

--4. Listar el detalle


de ventas segunn
el rango de
cantidad
comprendidan
entre 5 aa 10,
--mostrar toda la
tabla--
Select *
From detalle_venta
where cantidad
Proyecto Base de Datos –
CBN

BETWEEN 5 AND
10;

--5. Listar a los


clientes, que solo
empiecen con la
letra A su nombre;
mostrar toda la
tabla--
Select *
from cliente
where nombre LIKE
'A%';

11. Construir 5 consultas multitabla de su base de datos, aplique las cláusulas like, in, between, is
null

CÓDIGO CAPTURA
Proyecto Base de Datos –
CBN

--Construir 5 Consultas
Multitabla--
--1. Mostrar todos los articulos y sus
categorias, inluso si algun articulo no
tinen categoria asiganda
--buscar aquella categoria que
termine con S, mostrar id articulo,
nombre articulo, nombre categoria--
SELECT a.id_articulo, [Link] AS
nombre_articulo, [Link] AS
nombre_categoria
FROM articulo as a
LEFT JOIN categoria as c ON
a.id_categoria = c.id_categoria
WHERE [Link] LIKE '%S';

--2. Listar los articulos comprados


junto con sus precio y cantidad cuyo
precio de compra
--este entre 50 y 150, mostar detalle
del usuario, articulo,cantidad, precio

SELECT di.id_detalle_ingreso,
[Link] AS articulo, [Link],
[Link]
FROM detalle_ingreso as di
JOIN articulo as a ON di.id_articulo
= a.id_articulo
WHERE [Link] BETWEEN 50
AND 150;
Proyecto Base de Datos –
CBN

--[Link] los nombres de los


usuarios y los roles que
desempeñañ, incluyendo a tdoso
los usuarios
--aunque su rol sea nulo, mostrar
el usuario y el rol que
desempeña--
SELECT [Link] AS usuario,
[Link] AS rol
FROM usuario u
LEFT JOIN rol r ON u.id_rol =
r.id_rol;

--4. Listar el nombre de los


clientes contando la linea de
productos en venta agrupando
por nombre de cliente,
--mostrar los productos
comprados

SELECT [Link],
COUNT(dv.id_detalle_venta) AS
productos_comprados
FROM cliente c
INNER JOIN venta v ON
c.id_persona = v.id_cliente
INNER JOIN detalle_venta dv ON
v.id_venta = dv.id_venta
GROUP BY [Link]
Proyecto Base de Datos –
CBN

--5. Listar los clientes asociados


en comprara a manaco que este
en el rango en su numero de
documento de
--40000000 a 80000000, mostrar el
id persona, nombre, id cliente
relacionado y la fecha de la venta

Select
c.id_persona,[Link],v.id_cliente,v
.fecha_hora
from cliente as c INNER JOIN venta
as v ON c.id_persona=v.id_cliente
Where num_documento BETWEEN
40000000 AND 800000000

12. Construir 5 consultas resumen de su base de datos aplique, count(), sum()

CÓDIGO CAPTURA

--Construir 5 Consultas
Resumen--
--1. Contar cuantos
articulos tiene manaco
que esten en un rago de
precio de 200 a 400—

SELECT COUNT(*) AS
total_articulos
FROM articulo
WHERE precio_venta
BETWEEN 200 AND 400
Proyecto Base de Datos –
CBN

--2. Obtener el total de


ventas que se hayan
registrado, sin tomar en
cuenta aquellas que no
se registraron—

SELECT SUM(total) AS
total_ventas_bolivianos
FROM venta
Where estado=
'Registrado'

--3. Contar cuantos


articulos hay por
categoria agrupados
nombre de categoria,
mostrar la categoria –

SELECT [Link] AS
categoria,
COUNT(a.id_articulo) AS
total_articulos
FROM articulo a
JOIN categoria c ON
a.id_categoria =
c.id_categoria
GROUP BY [Link];
Proyecto Base de Datos –
CBN

--4. Listar el nombre de


los clientes cuya suma
total en compras
registradas supera los
300 Bs, ordenados de
mayor a menor.
--mostrar el nombre del
cliente—

SELECT [Link],
SUM([Link]) AS
total_compras
FROM cliente c
INNER JOIN venta v ON
c.id_persona =
v.id_cliente
GROUP BY [Link]
HAVING SUM([Link]) >
300
ORDER BY
total_compras DESC;

--5. Mostrar cuantas


ventas realizo cada
usuario, los cuales
deben estar agrupados
por su nombre,
--mostrar al ususario—

SELECT [Link] AS
usuario,
COUNT(v.id_venta) AS
cantidad_ventas
FROM venta v
JOIN usuario u ON
v.id_usuario =
u.id_usuario
GROUP BY [Link];
Proyecto Base de Datos –
CBN

3ra parte
Estructura Base de datos de compra y venta de productos

CREATE DATABASE MANACO


USE MANACO
-- 1. Tabla categoria
Use MANACO
CREATE TABLE categoria (
id_categoria INT PRIMARY KEY,
nombre VARCHAR(50) NOT NULL UNIQUE,
descripcion VARCHAR(256) NULL,
estado BIT DEFAULT 1
);

-- 2. Tabla articulo
Use MANACO
CREATE TABLE articulo (
id_articulo INT PRIMARY KEY,
id_categoria INT NOT NULL,
codigo VARCHAR(50) NULL,
nombre VARCHAR(100) NOT NULL UNIQUE,
precio_venta DECIMAL(11,2) NOT NULL,
stock INT NOT NULL,
descripcion VARCHAR(256) NULL,
estado BIT DEFAULT 1,
FOREIGN KEY (id_categoria) REFERENCES categoria(id_categoria)
);

-- 3. Tabla persona
Use MANACO
CREATE TABLE cliente (
id_persona INT PRIMARY KEY,
tipo_persona VARCHAR(20) NOT NULL,
nombre VARCHAR(100) NOT NULL,
CI VARCHAR(20) NULL,
num_documento VARCHAR(20) NULL,
direccion VARCHAR(70) NULL,
telefono VARCHAR(20) NULL,
email VARCHAR(50) NULL
);

-- 4. Tabla rol
Use MANACO
CREATE TABLE rol (
id_rol INT PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
Proyecto Base de Datos –
CBN

descripcion VARCHAR(100) NULL,


estado BIT DEFAULT 1
);

-- 5. Tabla usuario
Use MANACO
CREATE TABLE usuario (
id_usuario INT PRIMARY KEY,
id_rol INT NOT NULL,
nombre VARCHAR(100) NOT NULL,
tipo_documento VARCHAR(20) NULL,
num_documento VARCHAR(20) NULL,
direccion VARCHAR(70) NULL,
telefono VARCHAR(20) NULL,
email VARCHAR(50) NOT NULL,
password VARBINARY(MAX) NOT NULL,
estado BIT DEFAULT 1,
FOREIGN KEY (id_rol) REFERENCES rol(id_rol)
);

-- 6. Tabla ingreso
Use MANACO
CREATE TABLE ingreso (
id_ingreso INT PRIMARY KEY,
id_proveedor INT NOT NULL,
id_usuario INT NOT NULL,
tipo_comprobante_factura VARCHAR(20) NOT NULL,
serie_comprobante_factura VARCHAR(7) NULL,
num_comprobante_factura VARCHAR(10) NOT NULL,
fecha DATETIME NOT NULL,
impuesto DECIMAL(4,2) NOT NULL,
total DECIMAL(11,2) NOT NULL,
estado VARCHAR(20) NOT NULL,
FOREIGN KEY (id_proveedor) REFERENCES Proveedor(id_proveedor),
FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario)
);

-- 7. Tabla detalle_ingreso
Use MANACO
CREATE TABLE detalle_ingreso (
id_detalle_ingreso INT IDENTITY PRIMARY KEY ,
id_ingreso INT NOT NULL,
id_articulo INT NOT NULL,
cantidad INT NOT NULL,
precio DECIMAL(11,2) NOT NULL,
FOREIGN KEY (id_ingreso) REFERENCES ingreso(id_ingreso),
FOREIGN KEY (id_articulo) REFERENCES articulo(id_articulo)
);

-- 8. Tabla venta
Use MANACO
CREATE TABLE venta (
id_venta INT PRIMARY KEY,
id_cliente INT NOT NULL,
Proyecto Base de Datos –
CBN

id_usuario INT NOT NULL,


tipo_comprobante_factura VARCHAR(20) NOT NULL,
serie_comprobante_factura VARCHAR(7) NULL,
num_comprobante_factura VARCHAR(10) NOT NULL,
fecha_hora DATETIME NOT NULL,
impuesto DECIMAL(4,2) NOT NULL,
total DECIMAL(11,2) NOT NULL,
estado VARCHAR(20) NOT NULL,
FOREIGN KEY (id_cliente) REFERENCES cliente(id_persona),
FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario)
);

-- 9. Tabla detalle_venta
Use MANACO
CREATE TABLE detalle_venta (
id_detalle_venta INT IDENTITY PRIMARY KEY,
id_venta INT NOT NULL,
id_articulo INT NOT NULL,
cantidad INT NOT NULL,
precio DECIMAL(11,2) NOT NULL,
descuento DECIMAL(11,2) NOT NULL,
FOREIGN KEY (id_venta) REFERENCES venta(id_venta),
FOREIGN KEY (id_articulo) REFERENCES articulo(id_articulo)

);

use MANACO
CREATE TABLE Proveedor (
id_proveedor INT not null PRIMARY KEY,
nombre_prov varchar(30) null,
telefono int null,
email varchar(100) null,
direccion varchar(150) null

También podría gustarte