proyecto bd 5 sem

28
CIB ER CAF É G I

Upload: elenyta-ruiz-reyes

Post on 25-Nov-2015

65 views

Category:

Documents


5 download

TRANSCRIPT

CIBER CAFG I R AProyectos

INSTITUTO TECNOLOGICO SUPERIORDE ALVARADO

INGENIERA EN SISTEMAS COMPUTACIONALESMateria:TALLER DE BASES DE DATOS

Semestre-Grupo:5 AProducto Acadmico:PROYECTO CIBER CAF GIRA Proyectos

Presenta:MARIA ELENA RUIZ REYES

Docente:ING. HERMINIO CARLIN QUEVEDO

H. Y G. ALVARADO, VER. AGOSTODICIEMBRE 2013

PROYECTO DE BASE DE DATOS

Contenido ...

1.- INTRODUCCION .

2.- DESCRIPCION

2.1 Objetivos ..

2.2 Alcances ..

3.- PROYECTO DE BASE DE DATOS (CIBER CAF GIRA Proyectos)

3.1 Descripcin de los datos .

3.2 Tablas

3.3 Diagrama E-R .

3.4 Diccionario de datos .

3.5 Creacin de tablas (SQL) .

3.6 Llaves forneas ..

3.7 Insercin de datos

3.8 Ejercicios

4 CONCLUSIONES

1.- INTRODUCCION

Este proyecto est basado en la solucin al problema que presenta el ciber caf al manejo y proteccin de su informacin, de tal manera que el contenido de sus datos sea de fcil acceso. Por medio de la aplicacin a este proyecto se ver cmo funciona un ciber caf ante la consulta y manejo de su informacin. Se elaboraran las tablas de la base de datos con sus respectivos atributos y entidades. Para luego decidirel lenguajedeprogramacinque se utilizara para elaborar la parte de pantallas oformularios.

Dentro de las tareas bsicas delsistemasern llevar elcontrolde cuentas por cobrar, el tiempo de cada mquina rentada, generar los resmenes de cada da o por fechas de las ventas realizadas, as como el almacenamiento de los artculos que se tiene como servicios.

Adems podremos ver la identificacin de claves principales, forneas y cdigos de cada tabla.

2.- DESCRIPCION

En esta pequea empresa ciber caf GIRA Proyectos se presenta el problema de que no se tiene en un mismo sistema el control de todo la informacin que maneja este ciber caf, as que se necesita tener una base de datos en la que se pueda almacenar toda la informacin del control del tiempo de las mquinas y su importe a cobrar, los servicios, las cuentas por cobrar y las Ordenes de trabajo.

En el Control de las maquinas se registran los siguientes datos el id de mquina, tiempo en que inicia, tiempo en que termina, contador, importe.

En servicios que se tienen impresiones, cds, dvds, impresiones a color y blanco/negro, escner, envi por correo, copias tamao oficio y carta, folders, descargas y conversin (pelculas, video, canciones), escritos o investigaciones, quemar cd o dvd, descargar curp, opalina delgada o gruesa.

Cuentas por cobrar el nombre, fecha, orden de trabajo, importe por cobrar, importe del pago, saldo acumulado por cobrar, observaciones, atendi.

Ordenes de trabajo id_Orden de trabajo, cliente, telfono, fecha de recibido, fecha de entrega, hora de entrega, cantidad, descripcin, importe, observaciones, recibe, entrego.

Clientes aquellas personas que soliciten servicios trabajos diversos, que tambin se anotan en cuentas_por_cobrar. Venta son aquellas ventas que entran a travs de los clientes que utilizan las pc y solicitan impresiones u otro servicio, tambin pueden entrar aquellas que son ventas directas.

Maquinas en esta tabla solo se le asigna un nmero nico a cada maquina.

2.1 Objetivos

Comoobjetivogeneral el poder contribuir a que el sistema pueda facilitarel trabajoa los empleados as como hacer ms eficiente el trabajo realizado por los mismos.

Poder llevar el control de los datos en un solo sistema del tiempo de renta y cobro de las maquinas as como poder llevar un mejor control de los cobros realizados por el ciber.

2.2 Alcances

Con esta base de datos se espera que la informacin:

Este siempre actualizada y a la mano, para brindar un mximo servicio al cliente, de tal manera que el mismo este satisfecho por haber elegido nuestros servicios.

Tambin que el empleado realice los reportes exactos al entregar el corte de caja a su superior (Jefe).

Adems que se ahorre tiempo en la bsqueda de la informacin requerida en el momento.

3.- PROYECTO DE BASE DE DATOS (CIBER CAF GIRA Proyectos)

El ciber caf GIRA Proyectos es un negocio en el que a las personas se le brinda los siguientes servicios:

Renta de pc por tiempo(el tiempo que el cliente decida)

Impresiones a color o b/n

Envi por correo electrnico

Escner de documentos

Trabajos de capturacion de informacin o investigacin.

3.1 Descripcin de los datos

Tabla_cliente: En ella se guardan los datos que tienen que ver con los clientes, nombre, direccin y telfono.

Tabla_control: Aqu se guarda el tiempo en que inicia y termina la renta de cada computadora rentada, as como la fecha de cada da de acuerdo al calendario de la mquina.

Tabla_cuentas_por_cobrar: En esta tabla se registran a los clientes que tengan crdito en la pequea empresa.

Tabla_servicio: Aqu estn todos los servicios con que cuenta el ciber caf, como por ejemplo, impresiones, escner, etc. As tambin el precio de cada servicio.

Tabla_ordenes_de_trabajo: En esta tabla se guardan los trabajos que se realizan durante la jornada de trabajo y aquellos que estn pendientes por cobrar y a la vez se registran en la tabla_cuentas_por_cobrar.

Tabla_maquina: Aqu solo se le asigna una llave primaria a cada mquina.

Tabla_venta: Aqu se guardan las ventas que realiza cada cliente el rentar un pc.

3.2 Tablas

3.3 Diagrama E-R

Modelo Relacional

3.4 Diccionario de datos Entidad AtributoDescripcin

Control

Id_maquina Es la llave foranea que tiene cada mquina ya asignado.

Tiempo_iniciaEs el marcador de tiempo en el que inicia la renta de la pc.

Tiempo_terminaEs el marcador de tiempo en el que termina la renta de la pc.

Contador Es el total de tiempo en el que muestra el total del tiempo de la maquina fue rentada.

Importe Es el total a cobrar por la renta de pc

Fecha Es la fecha en el que se rentan las maquinas.

servicio

Ordenes de trabajoId_servicioEs la llave primaria, de la tabla

Nombre Es el nombre que se le da a cada una de las ventas que tiene el ciber ejemplo, impresiones, escner, envi por correo, etc.

Precio Es el importe monetario a cobrar

Id_ordenEs la llave primaria de esta tabla que ira en auto aumento.

Id_clienteEs la llave fornea que identifica a cada cliente de manera singular.

Fecha_recibidoEs la fecha en que se recibe el trabajo a realizar.

Fecha_entregaEs la fecha en que se va a entregar el documento o trabajo.

Hora_entregaEs el horario en que se queda pendiente a entregar el trabajo.

Descripcin Es la manera en que se plasma el trabajo, el como se realizara de acuerdo a las necesidades del cliente, como lo solicito.

Importe Es la cantidad monetaria a cobrar

Anticipo Aqu se escribe la cantidad monetaria que el cliente dejo por adelantado.

ObservacionesAlguna instruccin para la elaboracin del trabajo.

Recibe El nombre del cajero que atiende

Entrega

El nombre del cajero que entrega el trabajo

Cuentas por cobrarId_ordenNumero nico de cada orden de trabajo. Llave primaria de cada orden de trabajo. En este caso llave fornea.

Id_clienteNumero nico de cada cliente. Llave primaria de cada cliente. En este caso llave fornea.

Fecha Fecha en la que el cliente pide crdito.

Importe_cobrarCantidad monetaria a cobrar al cliente.

Abono Cantidad monetaria abonada por el cliente a su cuenta por cobrar.

Total_cobrarCantidad monetaria total pendiente por cobrar.

nota Notas de gran importancia relacionada con las cuentas a cobrar.

Atendio Cajero que elaboro la solicitud de crdito.

Cliente Id_clienteNmero de cliente nico, llave primaria.

Nombre Nombre del cliente.

Telfono Nmero telefnico del cliente.

Direccin Lugar de residencia del cliente, calle, municipio, colonia etc.

Entidad AtributoDescripcin

Maquina Id_maquinaEs la llave primaria de cada maquina

maquinaEs el nmero de maquina

Id_maquinaEs la llave fornea que vincula esta tabla con la de las maquinas

Id_servicioEs la llave fornea que conecta esta tabla con la de servicio

Venta cantidadEs al campo que define la cantidad vendida

Precio_cobrarEs el importe a cobrar dependiendo de la cantidad vendida y el servicio vendido

Control

AtributoTipoPriNullFora

Id_maquina INT (10)XX

Tiempo_iniciaVARCHAR(10)X

Tiempo_terminaVARCHAR(10)X

Contador VARCHAR(10)X

Importe INT(15)X

Fecha DATEX

servicio

AtributoTipoPriNullFora

Id_servicioINT(10)XX

Nombre VARCHAR(30)X

Precio INT(10)X

Ordenes_de_trabajo

AtributoTipoPriNullFora

Id_ordenINT (10)XX

Id_clienteINT (5)XX

Fecha_recibidoDATE)X

Fecha_entregaDATEX

Hora_entregaVARCHAR(10)X

conceptoVARCHAR(50)X

Importe INT(10)X

Anticipo INT(10)X

ObservacionesVARCHAR(50)X

Recibe VARCHAR(20)X

Entrega VARCHAR(20)X

Cuentas_por_cobrar

AtributoTipoPriNullFora

Id_ordenINT (10)XX

Id_clienteINT (5)XX

Fecha DATE)X

Importe_cobrarINT(10)X

Abono INT(10)X

Total_cobrarINT(15)X

Atendio VARCHAR(30)X

Cliente

AtributoTipoPriNullFora

Id_clienteINT (10)XX

Nombre VARCHAR(30)X

Telfono INT(15)X

Direccin VARCHAR(50)X

Maquina

AtributoTipoPriNullFora

Id_maquinaINT (10)XX

maquina INT(10)X

Venta

AtributoTipoPriNullFora

Id_maquinaINT (10)XX

Id_servicioINT(10)XX

CantidadINT(10)

Precio_cobrarINT(10)

3.5 Creacin de tablas (SQL)

CREATE TABLE IF NOT EXISTS `cliente` (`id_cliente` int(10) NOT NULL AUTO_INCREMENT, `nombre` varchar(30) NOT NULL,`telefono` int(10) NOT NULL, `direccion` varchar(30) NOT NULL,PRIMARY KEY (`id_cliente`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

------------------------------------------------------------

CREATE TABLE IF NOT EXISTS `control` (`id_maquina` int(10) NOT NULL,`tiempo_inicia` varchar(10) NOT NULL,`tiempo_termina` varchar(10) NOT NULL,`contador` varchar(10) NOT NULL,`importe` int(10) NOT NULL, `fecha` date NOT NULL,) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

------------------------------------------------------------

CREATE TABLE IF NOT EXISTS `cuentas_por_cobrar` (`id_orden` int(10) NOT NULL,`id_cliente` int(10) NOT NULL, `fecha` date NOT NULL, `importe_cobrar` int(10) NOT NULL, `abono` int(10) NOT NULL, `total_cobrar` int(10) NOT NULL, `nota` varchar(50) NOT NULL,`atendio` varchar(15) NOT NULL,

-----------------------------------------------------------

CREATE TABLE IF NOT EXISTS `ordenes_de_trabajo` (`id_orden` int(10) NOT NULL AUTO_INCREMENT,`id_cliente` int(10) NOT NULL, `fecha_recibido` date NOT NULL,`fecha_entrega` date NOT NULL, `hora_entrega` varchar(10) NOT NULL, `concepto` varchar(50) NOT NULL,`importe` int(10) NOT NULL,`anticipo` int(10) NOT NULL,`observaciones` varchar(50) NOT NULL,`recibe` varchar(15) NOT NULL,`entrega` varchar(15) NOT NULL,PRIMARY KEY (`id_orden`), ---------------------------------------------------------

CREATE TABLE IF NOT EXISTS `servicio` ( `id_servicio` int(10) NOT NULL, `nombre` varchar(30) NOT NULL, `precio` int(10) NOT NULL, PRIMARY KEY (`id_servicio`))---------------------------------------------------------

CREATE TABLE IF NOT EXISTS `maquina`(`id_maquina` int(10) NOT NULL,`maquina` int(10)NOT NULL,PRIMARY KEY (`id_maquina`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `venta` ( `id_maquina` int(10) NOT NULL, `id_servicio` int(10) NOT NULL, `cantidad` int(10) NOT NULL, `precio_cobrar` int(10) NOT NULL, KEY `servicio_id_serviciofk` (`id_servicio`), KEY `maquina_id_maquinaf` (`id_maquina`))

3.6 Llaves forneas

ALTER TABLE cuentas_por_cobrar ADD CONSTRAINT cliente_id_clientefk FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)

ALTER TABLE cuentas_por_cobrar ADD CONSTRAINT ordenes_de_trabajo_id_ordenfk FOREIGN KEY (id_orden) REFERENCES ordenes_de_trabajo(id_orden)

ALTER TABLE ordenes_de_trabajo ADD CONSTRAINT cliente_id_clientefok FOREIGN KEY (id_cliente) REFERENCES cliente(id_cliente)

ALTER TABLE control ADD CONSTRAINT maquina_id_maquinafk FOREIGN KEY (id_maquina) REFERENCES maquina(id_maquina)

ALTER TABLE venta ADD CONSTRAINT servicio_id_serviciofk FOREIGN KEY (id_servicio) REFERENCES servicio(id_servicio)

ALTER TABLE venta ADD CONSTRAINT maquina_id_maquinaf FOREIGN KEY (id_maquina) REFERENCES maquina(id_maquina)

3.7 Insercin de datos

INSERT INTO `cliente` (`id_cliente`, `nombre`, `telefono`, `direccion`) VALUES(1, 'Jose Luna Rio', '2841054222', 'colonia centro'),(2, 'Manuel Hernandez Soto', '2841074123', 'las palmitas'),(3, 'Monica Zarate Lopez', '2574126315', 'calle francisco i madero'),(4, 'Isaac Cano Limon', '4587526233', 'colonia la laguna'),(5, 'Guadalupe Vega Santos', '4251231625', 'calle francisco i madero'),(6, 'Mauricio Camino Vello', '2541625250', 'calle las margarita'),(7, 'Fabiola Chavez Duran', '2541623000', 'calle el sol');

-- --------------------------------------------------------

INSERT INTO `control` (`id_control`, `maquina`, `tiempo_inicia`, `tiempo_termina`, `contador`, `importe`, `fecha`) VALUES (1, 5, '10:15', '12:20', '2:05', 22, '2013-09-01'),(2, 4, '10:15', '11:20', '1:05', 12, '2013-09-01'),(3, 6, '13:05', '16:00', '2:55', 30, '2013-09-01'),(4, 2, '12:00', '14:30', '2:30', 25, '2013-09-01'),(5, 3, '15:12', '16:12', '1:00', 10, '2013-09-01'),(6, 1, '13:00', '16:01', '2:59', 30, '2013-09-01'),(7, 4, '14:05', '14:35', '0:30', 5, '2013-09-01');

-- --------------------------------------------------------

INSERT INTO `cuentas_por_cobrar` (`id_orden`, `id_cliente`, `fecha`, `importe_cobrar`, `abono`, `total_cobrar`, `nota`, `atendio`) VALUES(3, 4, '2013-09-02', 100, 30, 70, 'por cobrar', 'sara'),(6, 2, '2013-09-02', 120, 0, 120, 'por cobrar, trabajo entregado', 'sara'),(7, 7, '2013-09-02', 50, 45, 5, 'renta de pc', 'erika');

-- --------------------------------------------------------

INSERT INTO `ordenes_de_trabajo` (`id_orden`, `id_cliente`, `fecha_recibido`, `fecha_entrega`, `hora_entrega`, `concepto`, `importe`, `anticipo`, `observaciones`, `recibe`, `entrega`) VALUES(1, 1, '2013-09-01', '2013-09-01', '13:00', '1 hoja de trabajo', 10, 0, 'cobrar ', 'sara', 'sara'),(2, 2, '2013-09-01', '2013-09-03', '9:00', '10 hojas de trabajo', 64, 30, 'por terminar el trabajo y cobrar 34', 'sara', 'erika'),(3, 4, '2013-09-01', '2013-09-01', '18', '5 hojas de trabajo', 42, 20, 'investigar la historia de mexico terminado y por e', 'sara', 'erika'),(4, 5, '2013-09-02', '2013-09-05', '19:00', 'descargar 4 peliculas', 40, 15, 'los link de las peliculas estan en el escritorio/l', 'erika', 'sara'),(5, 3, '2013-09-02', '2013-09-23', '13:00', '20 escaner', 100, 30, 'entregado por cobrar anotado en cxc', 'sara', 'erika'),(6, 2, '2013-09-02', '0000-00-00', '', '120 copias oficio', 120, 0, 'anotado en cxc', 'sara', 'sara'),(7, 7, '2013-09-03', '0000-00-00', '', '1', 0, 50, '45 pesos renta de pc', 'erika', 'erika');

-- --------------------------------------------------------INSERT INTO `servicio` (`id_servicio`, `nombre`, `precio`) VALUES(201, 'cd', 8),(202, 'dvd', 10),(203, 'impresiones blanco y negro', 1),(204, 'impresiones a color', 2),(205, 'escaner', 5),(206, 'copias', 1);-------------------------------------------------------------

INSERT INTO `maquina` (`id_maquina`, `maquina`) VALUES(101, 1),(102, 2),(103, 3),(104, 4),(105, 5),(106, 6);

INSERT INTO `venta` (`id_maquina`, `id_servicio`, `cantidad`, `precio_cobrar`) VALUES(102, 203, 10, 10),(103, 201, 2, 8),(104, 202, 1, 10),(102, 203, 20, 20);3.8 Ejercicios

1.- Nombre y fecha de los clientes que estn pendientes de pagar en cuentas por cobrar

SELECTc.nombre,cpc.id_orden,cpc.fechaFROMclientec,cuentas_por_cobrarcpcWHEREc.id_cliente=cpc.id_cliente

SELECT c.nombre, cpc.id_orden, cpc.fechaFROM cliente c, cuentas_por_cobrar cpcWHERE c.id_cliente = cpc.id_clienteAND cpc.fecha='20131001'

2.- Mostrar la orden de trabajo, nombre del cliente, cuanto pagaron y las observaciones.

SELECTid_orden,nombre,importeFROMordenes_de_trabajoOJOINclientecONO.id_cliente=c.id_clienteORDERBYimporte

3.- Mostrar el importe total de cada mquina rentada

SELECT m.maquina, SUM(importe) FROM control c, maquina mWHERE m.id_maquina=c.id_maquinaGROUP BY importe

4.- Maquinas con ms tiempo de renta

SELECTid_maquinaFROMcontrolWHEREimporte=(SELECTMAX(importe)FROMcontrol)

5.- Cantidad total del dinero que entro de las rentas de las maquinas en cierta fecha

SELECTSUM(importe)AS IMPORTE TOTALFROMcontrolWHEREfecha='20130902'

6.- Dar de alta un cliente

INSERT INTO `cliente` (`id_cliente`, `nombre`, `telefono`, `direccion`) VALUES(8, 'Fabiola Duran Aguirre', '2941052203', 'Barrio sur'),

7.- Eliminar cliente de orden de trabajo que ya haya pagadoALTER TABLE ordenes_de_trabajo ADD FOREIGN KEY (id_cliente) REFERENCES cliente (id_cliente)ON DELETE CASCADE;DELETE FROM ordenes_de_trabajo WHERE id_cliente=1

8.- Cambiar la direccin del cliente numero 7 a calle soledadUPDATE cliente SET direccion='calle soledad' WHERE id_cliente=7;9.- Buscar los clientes que su nombre empiece con ManSELECT * FROM clienteWHERE nombre LIKE '%Man%'

10.- Eliminar cuenta por cobrar ya pagadaALTER TABLE cuentas_por_cobrar ADD FOREIGN KEY (id_orden) REFERENCES ordenes_de_trabajo (id_orden)ON DELETE CASCADE;DELETE FROM ordenes_de_trabajo WHERE id_orden=311.- Eliminar clienteDELETE FROM cliente WHERE id_cliente=1

12.- Ver el resumen de los importe de lo vendido y las entradas de las maquinasSELECT v.precio_cobrar, c.importeFROM venta v, control cWHERE v.id_maquina=c.id_maquina

4 CONCLUSIONESCon esta base de datos el pequeo negocio el Ciber Caf Gira proyectos tendr la informacin en una sola base de datos, adems de lo fcil que ser el acceso a ella as como el manejo de la informacin, sin la necesidad de estar buscando en otro documento la informacin de cuentas por cobrar u rdenes de trabajo.La informacin estar actualizada siempre, ahorrando tiempo y dando al cliente una mejor calidad de atencin y servicio, entregando los trabajos pendientes en tiempo y forma.Con la elaboracin de esta base de datos se obtienen las ventajas ya mencionadas y como todo buen negocio la informacin tiene que estar a la altura de los avances tecnolgicos.