“Año del Diálogo y la Reconciliación Nacional”
“UNIVERSIDAD NACIONAL DE SAN MARTIN” FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA
PROYECTO FINAL
ASIGNATURA
:
MODELAMIENTO DE DATOS
DOCENTE
:
ING. Víctor Manuel Vallejos Monja.
INTEGRANTE
:
Yadira Lizbeth Chingay Mego Merly Monsalve Vásquez Whylds Alexanders Rodríguez Reátegui Edinson Villalobos Ramos Luis Adolfo Paredes Flores
CICLO
:
III
TARAPOTO – PERÚ 2018
I.
DATOS GENERALES DE LA EMPRESA
NOMBRE DE LA EMPRESA:
RAZON SOCIAL: TIPO EMPRESA:
Motors Show Tarapoto SAC, concesionario autorizado de las marcas Suzuki, Mazda, Fotón, Jac Motors, Great Wall, Changan, Geely y Hefei …servicio de post. Motors Show Tarapoto SAC. Sociedad Anónima Cerrada
RUC: NOMBRE DEL GERENTE: ACTIVIDAD COMERCIAL:
20450435920 Arévalo Alvarado Walter John. Venta de Vehículos Automotores.
CONDICIÓN:
Activo
DIRECCION LEGAL: TELEFONO: EMAIL:
Jr. Jiménez Pimentel Nro. 1245 (al Costado del Grifo Latino) (042) 529782
[email protected]
DISTRITO/CIUDAD:
Tarapoto
DEPARTAMENTO: Ubicación:
San Martin, Perú.
II.
PROCESOS QUE MANEJA EL NEGOCIO:
DESCRIPCION DEL PROCESO DE VENTA
DESCRIPCION VENDEDOR
Llega el cliente, el vendedor debe atenderle amablemente y preguntar qué tipo de automóvil busca al igual que las características que quiere en el automóvil.
VENDEDOR
El vendedor debe darle las opciones posibles de autos que se ajustan a las características del auto que busca. (precio, tipo, cilindraje, tracción, modelo)
VENDEDOR
Una vez que el cliente se encuentra interesado por algún automóvil en especial se le da las características, el precio y se le invita a que haga una prueba de manejo.
GERENTE DE VENTAS
Después haberlo manejado y verificarlo si el cliente decide comprarlo se pasa a la oficina y al siguiente paso si la respuesta es negativa de despide amablemente del cliente o se ofrece otra opción
ASISTENTES ADMINISTRIVA
Se acuerdan tanto el precio y los detalles de la compra.
GERENTE DE VENTAS
Autoriza la venta y facturación del vehículo
DESCRIPCION DEL PROCESO DE COMPRA DESCRIPCION
VENDEDOR
Llega el cliente, se le atiende amablemente y nos hace saber que quiere vender su vehículo.
VENDEDOR
Debe preguntar qué vehículo es el que está vendiendo, sus características y al igual que su precio.
VENDEDOR
Debe pedir de manera amable y atenta a su cliente si le es posible esperarlo un momento, para dirigirse con el gerente y hacerle saber que vehículo es el que ofrecen en venta, características y su precio.
GERENTE DE VENTAS
Debe decidir si de acuerdo al vehículo y el precio podría comprarlo.
GERENTE DE VENTAS
Si el gerente da el visto bueno se da el paso 6, si la respuesta fue negativa por parte del gerente se le debe de dar las gracias al cliente y decirle amablemente que en estos momentos no estamos interesados en comprar su unidad y por último darle otras opciones donde tal vez le puedan comprar el vehículo.
VENDEDOR
Debe hacer una prueba de manejo del vehículo y hacer una revisión general
ASESOR MECANICO
Se pasa el vehículo con el mecánico de la empresa para que le haga una revisión general para saber las condiciones del vehículo, si el vendedor noto algo anormal hacérselo saber al mecánico para que valore esa situación.
ASESOR MECANICO
Una vez que el mecánico termine de revisar el vehículo se da un reporte final al gerente de las condiciones del vehículo y que detalles estéticos y mecánicos tiene.
GERENTE DE VENTAS GERENTE DE VENTAS
Considerando ese reporte valora el precio de la unidad y se hace una oferta al cliente por su vehículo a la espera de su respuesta. Si el cliente acepta la oferta se pasa a hacer el papeleo y acordar como se va hacer dicha transacción, si no la acepta de igual manera se le dan las gracias y otra opción donde tal vez se lo puedan comprar.
III.
DIAGRAMA DE FLUJO DE CADA PROCESO
DIAGRAMA DE VENTA:
DIAGRAMA DE COMPRA:
IV.
DIAGRAMA ENTIDAD /RELACION (atributos, relaciones, PK y FK) NORMALIZACION MODELO ENTIDAD - RELACION
NORMALIZACIÓN: DFD: VENTA= {idventa+fechaspagos+fechaemision+idformapago+descripción+idcomprobante+descripcioncomp obante+idcliente+nombres+apellados+ruc+razonsocial+dirección+telf+idtipocliente+decripcion+id personal+nombpersonal+apellidpersonal+telfpersonal+idcargo+descripcioncargo+ [idcompra+fechacompra+cantidadventa+importeventa]+ idvehiculo+ placavehiculo+preciounitario+modelo+idmarca+ [cantidad+importecompra] + idmarca+descripción+idproveedor+rucproveedor+razonsocialproveedor+direccionprovededor+tel efproveedor}. PRIMERA FORMA NORMAL: VENTA = {idventa(PK)+fechaspagos+fechaemision+idformapago+descripción+idcomprobante+descripcionco mprobante+[idcliente+nombres+apellados+ruc+razonsocial+dirección+telf.+idtipocliente+decripci on]+[idpersonal+nombpersonal+apellidpersonal+telfpersonal+idcargo+descripcioncargo]+ [
idvehiculo+ placavehiculo+preciounitario+modelo+idmarca]+ [idproveedor+rucproveedor+razonsocialproveedor+direccionprovededor+telefproveedor]} DETALLE= {idventa(FK) +fechacompra+cantidadventa+importeventa+ cantidad+importecompra} SEGUNDA FORMA NORMAL: VENTA= {idventa(PK)+fechaspagos+fechaemision+idformapago+descripción+idcomprobante(FK)+ idcliente(FK)+ idpersonal(FK)} TIPOCOMPROBANTE= {idcomprobante(PK)+descripcioncomprobante} CLIENTE= {idcliente(PK)+nombres+apellados+ruc+razonsocial+dirección+telf.+idtipocliente(FK)} TIPOCLIENTE= {idtipocliente(PK)+descripción} PERSONAL= {idpersonal(PK)+nombpersonal+apellidpersonal+telfpersonal+idcargo(FK)} CARGOPERSONAL= {idcargo(PK)+descripcioncargo} VEHICULO= {idvehiculo(PK)+ placavehiculo+preciounitario+modelo+idmarca PROVEEDOR= {idproveedor(PK)+rucproveedor+razonsocialproveedor+direccionprovededor+telefproveedor} DETALLE= {idventa(FK)+ idvehiculo(FK)+ idproveedor(FK)+fechacompra+cantidadventa+[importeventa]+ cantidad+[importecompra]+} TERCERA FORMA NORMAL: VENTA= {idventa(PK)+fechaspagos+fechaemision+idformapago+descripción+idcomprobante(FK)+ idcliente(FK)+ idpersonal(FK)} TIPOCOMPROBANTE= {idcomprobante(PK)+descripcioncomprobante} CLIENTE= {idcliente(PK)+nombres+apellados+ruc+razonsocial+dirección+telf.+idtipocliente(FK)} TIPOCLIENTE= {idtipocliente(PK)+descripción} PERSONAL= {idpersonal(PK)+nombpersonal+apellidpersonal+telfpersonal+idcargo(FK)} CARGOPERSONAL= {idcargo(PK)+descripcioncargo} VEHICULO= {idvehiculo(PK)+ placavehiculo+preciounitario+modelo+idmarca PROVEEDOR= {idproveedor(PK)+rucproveedor+razonsocialproveedor+direccionprovededor+telefproveedor} DETALLE= {idventa(FK)+ idvehiculo(FK)+ idproveedor(FK)+fechacompra+cantidadventa+ cantidad}
V. DICCIONARIO DE DATOS NOMBRE ENTIDAD: tipo_cliente DESCRIPCION ENTIDAD: el cliente puede ser natural o jurídico. CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO GUARDA idtipocliente Es el índice El código obligatorio de tipo de de tipo de cliente cliente DESCRIPCION El nombre La obligatorio del tipo de descripción cliente del tipo de cliente
TIPO DE DATO INTEGER
Varchar (50)
NOMBRE ENTIDAD: cliente DESCRIPCION ENTIDAD: el cliente puede ser natural o jurídico. CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Idcliente Es el índice El código obligatorio INTEGER de cliente del cliente Nombre
El nombre del cliente
El nombre
obligatorio
Varchar(50)
Apellido
Es el apellido del cliente
Los apellidos
obligatorio
Varchar(50)
RUC
Es el RUC del cliente
El RUC
obligatorio
Numérico(11)
Razón social
Es la razón social del cliente
La RAZON SOCIAL
obligatorio
Varchar(50)
Dirección
Es la dirección del cliente
LA DIRECCION
obligatorio
Varchar(50)
EL CODIGO DEL TIPO DE CLIENTE
obligatorio
INTEGER
idtipocliente Es el índice del tipo de cliente Teléfono
Es el teléfono EL NUMERO obligatorio del cliente TELEFONICO
Varchar (50)
NOMBRE ENTIDAD: venta DESCRIPCION ENTIDAD: la venta puede ser contado o a crédito. CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Idventa Es el índice El código obligatorio INTEGER de venta de la venta Idcliente
Es el índice de cliente
El código del cliente
obligatorio
INTEGER
Idpersonal
Es el índice de personal
El código del personal
obligatorio
INTEGER
El código obligatorio de la forma de pago La fecha de obligatorio pagos
INTEGER
La fecha de obligatorio venta
DATE
Idformadepago Es el índice de forma de pago Fechapagos
Fechaventa
es la fecha donde se realizará los pagos Es la fecha donde se realiza la venta
DATE
NOMBRE ENTIDAD: personal DESCRIPCION ENTIDAD: personal encargado de diferentes áreas. CAMPO idpersonal
nombres
Apellidos
DESCRIPCION QUE SE GUARDA Es el índice El código del personal del personal El nombre El nombre del cliente
OPCIONAL/OBLIGATORIO TIPO DE DATO obligatorio INTEGER
obligatorio
Varchar(50)
Es el apellido del cliente
obligatorio
Varchar(50)
Los apellidos
Dirección
La dirección del personal
La dirección
opcional
Varchar (50)
Teléfono
El teléfono del personal
El numero telefónico
opcional
Varchar (20)
idcargo
El cargo del tipo de personal
El código del cargo
obligatorio
INTEGER
NOMBRE ENTIDAD: forma_pago DESCRIPCION ENTIDAD: puede haber diferentes formas de pago como efectivo y con tarjeta. CAMPO idformapago
descripción
DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Es el índice El código obligatorio INTEGER de forma de de forma pago de pago La forma de La obligatorio Varchar(50) tipo de pago descripción de la forma de pago
NOMBRE ENTIDAD: vehiculo DESCRIPCION ENTIDAD: se anota las principales características del vehiculo CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Idvehiculo Es el índice El código obligatorio INTEGER de vehiculo del vehiculo Placa
Es la placa del vehiculo
La placa
obligatorio
VARCHAR (50)
modelo
El modelo del vehiculo
El modelo
obligatorio
VARCHAR (50)
Precio
El precio del vehiculo
Es el precio Del vehiculo
obligatorio
NUMERIC (131089)
idmarca
Es el índice de forma de la marca
El código de la marca de vehiculo
obligatorio
INTEGER
NOMBRE ENTIDAD: compras DESCRIPCION ENTIDAD: se detalla los productos. CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Idcompra Es el índice El código de obligatorio INTEGER de compra la compra Idproveedor
Es el índice El código de proveedor del proveedor
Idpersonal
Es el índice de personal
fechacompra Es la fecha de compra
obligatorio
INTEGER
El código obligatorio del personal
INTEGER
Fecha de compra
dato
obligatorio
NOMBRE ENTIDAD: vehiculo DESCRIPCION ENTIDAD: se anota las principales características del vehiculo CAMPO DESCRIPCION QUE SE OPCIONAL/OBLIGATORIO TIPO DE GUARDA DATO Idproveedor Es el índice El código obligatorio INTEGER del del proveedor proveedor RUC Es el RUC del El RUC obligatorio Numeric (11) proveedor
Razosocial
Es la razón social del proveedor
La razón social
obligatorio
VARCHAR (50)
Dirección
Es la dirección del proveedor
La dirección
obligatorio
VARCHAR (50)
teléfono
Es el teléfono El teléfono del proveedor
obligatorio
VARCHAR (50)
NOMBRE ENTIDAD: detalleventas DESCRIPCION ENTIDAD: Se nombra su modelo, marca, cantidad, peso, su unidad de ventas CAMPO
DESCRIPCION
Idventa
Es el índice de forma de la venta Es el índice de la forma del vehículo La cantidad de venta La cantidad de importe de venta
Idvehìculo
Cantidad importeventa
QUE SE GUARDA El código de la venta
OPCIONAL/OBLIGATORIO TIPO DE DATO Obligatorio
INTEGER
El código del vehículo
Obligatorio
INTEGER
La cantidad de la venta El importe de la venta
Obligatorio
INTEGER
Obligatorio
INTEGER
NOMBRE ENTIDAD: marcas DESCRIPCION ENTIDAD: se nombra la marca y descripción CAMPO
DESCRIPCION
Idmarca
Es el índice de la forma de la marca El tipo de marca
Descripción
QUE SE GUARDA El código de la venta
OPCIONAL/OBLIGATORIO TIPO DE DATO Obligatorio
INTEGER
La descripción de la marca
obligatorio
VARCHAR
NOMBRE ENTIDAD: cargos DESCRIPCION ENTIDAD: Se nombra el cargo y descripción. CAMPO
DESCRIPCION
Idcargo
Es el índice de la forma del cargo El tipo de cargo
Descripción
QUE SE GUARDA El código del cargo
OPCIONAL/OBLIGATORIO TIPO DE DATO Obligatorio
INTEGER
La descripción del cargo
Obligatorio
VARCHAR
NOMBRE ENTIDAD: detalle_compras DESCRIPCION ENTIDAD: Se nombra el producto, cantidad y precio. CAMPO
DESCRIPCION
Idcompra
Es el índice de forma de la compra Es el índice de forma del vehiculo La cantidad de compra La cantidad del importe de la compra
Idvehiculo
Cantidad importecompra
QUE SE GUARDA El código de la compra
OPCIONAL/OBLIGATORIO TIPO DE DATO Obligatorio
INTEGER
El código del vehículo
Obligatorio
INTEGER
La cantidad de Obligatorio la compra El importe de Obligatorio la compra
INTEGER INTEGER
LA IDENTIFICACION DE LOS PK Y FK DE CADA TABLA
LLAVE PRIMARIA
LLAVES FORANEAS
CAMPO RELACIONADO CON TABLA(CAMPO)
Idcliente
idtipocliente
Tipocliente(idtipocliente)
Idventa
Idcliente Idformadepago Idpersonal idvehiculo
Clientes (idclientes) Formadepago (idformadepago) Personal (idpersonal) Vehiculo (idvehculo)
Idvehiculo Idmarca
idmarca
Marca(idmarca)
Idcompra
Idproveedor Idpersonal Idvehiculo
Proveedor(idproovedor) Personal(personal) Vehiculo(idvehiculo)
idcargo
Cargo(idcargo)
Idtipocliente
Idforma de pago
Idproveedor Idcargo Idpersonal
VI.
IMPLEMENTACION DE BASE DE DATOS (PostgreSQL) (SCRIPT)
-- Database: MotorShow -- DROP DATABASE "MotorShow"; CREATE DATABASE "MotorShow" WITH OWNER = postgres ENCODING = 'UTF8' LC_COLLATE = 'Spanish_Peru.1252' LC_CTYPE = 'Spanish_Peru.1252' TABLESPACE = pg_default CONNECTION LIMIT = -1; -- Creamos secuencias o autoincrementables para los PK CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE CREATE
SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE SEQUENCE
sec_TipoCliente; sec_Clientes; sec_Personal; sec_Proveedor; sec_FormaPago; sec_Ventas; sec_Compras; sec_Vehiculos; sec_Cargos; sec_Marca;
-- Creamos las entidades o tablas independientes CREATE TABLE Tipo_Cliente( idTipoCliente INT DEFAULT NEXTVAL('sec_TipoCliente') PRIMARY KEY, Descripcion VARCHAR (50) NOT NULL ); CREATE TABLE Forma_Pago( idFormaPago INT DEFAULT NEXTVAL('sec_FormaPago') PRIMARY KEY, Descripcion VARCHAR (50) NOT NULL ); CREATE TABLE Proveedor( idProveedor INT DEFAULT NEXTVAL('sec_Proveedor') PRIMARY KEY, RUC NUMERIC (11) NOT NULL, RazonSocial VARCHAR (50) NOT NULL, Direccion VARCHAR (50) NOT NULL, Telef VARCHAR (50) NOT NULL );
CREATE TABLE Marcas ( idMarca INT DEFAULT NEXTVAL('sec_Marca') PRIMARY KEY, Descripcion VARCHAR (50) NOT NULL ); CREATE TABLE Cargos idCargo INT Descripcion ); -- Creamos las tablas
( DEFAULT NEXTVAL('sec_Cargos') PRIMARY KEY, VARCHAR (50) NOT NULL dependientes con sus respectivas relaciones de FK
CREATE TABLE Cliente ( idCliente INT DEFAULT NEXTVAL('sec_Clientes') PRIMARY KEY, Nombres VARCHAR (50) NOT NULL, Apellidos VARCHAR (50) NOT NULL, RUC NUMERIC (11) NOT NULL, RazonSocial VARCHAR (50) NOT NULL, Direccion VARCHAR (50) NOT NULL, Telf VARCHAR (20) NOT NULL, idTipoCliente INT NOT NULL, CONSTRAINT FK_TipoCliente FOREIGN KEY (idTipoCliente) REFERENCES Tipo_Cliente (idTipoCliente) ); CREATE TABLE Personal ( idPersonal INT DEFAULT NEXTVAL('sec_Personal') PRIMARY KEY, Nombres VARCHAR (50) NOT NULL, Apellidos VARCHAR (50) NOT NULL, Direccion VARCHAR (50) NOT NULL, Telf VARCHAR (20) NOT NULL, idCargo INT NOT NULL, CONSTRAINT FK_Cargo FOREIGN KEY (idCargo) REFERENCES Cargos (idCargo) ); CREATE TABLE Vehiculo ( idVehiculo INT DEFAULT NEXTVAL('sec_Vehiculos') PRIMARY KEY, Placa VARCHAR (50) NOT NULL, Modelo VARCHAR (50) NOT NULL, Precio_Unitario DECIMAL, idMarca INT NOT NULL, CONSTRAINT FK_Marca FOREIGN KEY (idMarca) REFERENCES Marcas (idMarca) ); CREATE TABLE Ventas ( idVenta INT DEFAULT NEXTVAL ('sec_Ventas') PRIMARY KEY, idCliente INT NOT NULL, idPersonal INT NOT NULL, idFormaPago INT NOT NULL, FechaPagos DATE, FechaVenta DATE,
CONSTRAINT FK_Cliente FOREIGN KEY (idCliente) REFERENCES Cliente (idCliente), CONSTRAINT FK_Personal FOREIGN KEY (idPersonal) REFERENCES Personal (idPersonal), CONSTRAINT FK_FormaPago FOREIGN KEY (idFormaPago) REFERENCES Forma_Pago (idFormaPago) ); CREATE TABLE DetalleVentas ( idVenta INT NOT NULL, idVehiculo INT NOT NULL, Cantidad INT NOT NULL, ImporteVenta INT NOT NULL, CONSTRAINT FK_Venta FOREIGN KEY (idVenta) REFERENCES Ventas (idVenta), CONSTRAINT FK_Vehiculo FOREIGN KEY (idVehiculo) REFERENCES Vehiculo (idVehiculo) ); CREATE TABLE Compras ( idCompra INT DEFAULT NEXTVAL ('sec_Compras') PRIMARY KEY, idProveedor INT NOT NULL, idPersonal INT NOT NULL, FechaCompra DATE, CONSTRAINT FK_Proveedor FOREIGN KEY (idProveedor) REFERENCES Proveedor (idProveedor), CONSTRAINT FK_Personal FOREIGN KEY (idPersonal) REFERENCES Personal (idPersonal) ); CREATE TABLE DetalleCompras( idCompra INT NOT NULL, idVehiculo INT NOT NULL, Cantidad INT NOT NULL, ImporteCompra INT NOT NULL, CONSTRAINT FK_Compra FOREIGN KEY (idCompra) REFERENCES Compras (idCompra), CONSTRAINT FK_Vehiculo FOREIGN KEY (idVehiculo) REFERENCES Vehiculo (idVehiculo) );
VII.
CONCLUSIONES Gracias al presente informe realizado por el grupo, es que se pudo obtener las siguientes conclusiones: - Que la normalización de la información es importante para obtener registros de calidad, que permitan la adecuada recuperación y transferencia de datos. - Se puso aprender el uso postgresql, y se logró crear la base de datos. - Aprendimos acerca del leguaje del SQL del sistema de gestión de base de datos y su importancia y utilidad a la hora de almacenar, clasificar y majear información de cualquier tipo.