You are on page 1of 39

CUCEI

Lic. Informtica

BASE DE DATOS AVANZADAS

Proyecto Final

De Alba Mendoza Melissa Rubi


Resendez Muoz Uriel Armando
CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERAS
Mtra. MURILLO LEAO MARIA MAGDALENA
2014 A

Proyecto Final BDA

Pgina 1

CUCEI
Lic. Informtica

INDICE
Objetivo ....................................................................................................................................................... 3
Giro del Sistema ........................................................................................................................................ 4
Bases de Datos Avanzadas Actividades de EER ............................................................................ 5
DER de la Base de Datos. ...................................................................................................................... 5
Disear el Diagrama EER de la Base de Datos ................................................................................... 7
Modelo Relacional de la Base de Datos............................................................................................... 8
Disear el Diagrama de Clases de UML de la Base de Datos a partir del EER. .............................. 9
Bases de Datos Avanzadas Actividades de BDOO ...................................................................... 10
Objeto Complejo Estructurado (GRAFO) de la Base de Datos ........................................................ 10
Especificar los tipos de objetos mediante Constructores de Tipo (del grafo anterior). ................... 11
Definir los tipos de objetos y sus operaciones del esquema de su BD mediante un Lenguaje de
Definicion de Datos (ODL). ................................................................................................................... 12
Representar el esquema de su BD en Notacin grafica de ODL. .................................................... 14
Bases de Datos Avanzadas Actividades de BD Deductivas ....................................................... 15
Hacer una representacin de su modelo de DER en Notacin Prolog usando: hechos, reglas y
consultas ................................................................................................................................................. 15
Disear una interpretacin de hechos y reglas en CORAL. .............................................................. 19
Bases de Datos Avanzadas Actividades Distribuidas ................................................................. 20
Desarrollar 4 fragmentaciones en ALGEBRA RELACIONAL: una FH Derivada, una FH, una FV y
una F Mixta de la Base de Datos ......................................................................................................... 20
Desarrollar 4 fragmentaciones en SQL: dos FH, una FV y una F Mixta de la BD de su proyecto.21
Desarrollar 3 consultas de la BD de su proyecto, en dos de ellas utilizando 3 estrategias (UNION)
y la otra utilizando la fragmentacin vertical para optimizarla (SEMIREUNION). ........................... 24
Proyecto Ferretera .............................................................................................................................. 25
CODIGO FUENTE ................................................................................................................................. 35
Conclusin ................................................................................................................................................ 39

Proyecto Final BDA

Pgina 2

CUCEI
Lic. Informtica

Objetivo
Como objetivo general nos hemos trazado el poder contribuir a que el sistema
desarrollado en este trabajo pueda facilitar el desempeo de los trabajadores as
como hacer ms eficiente el trabajo realizado por los mismos.
Poder llevar el control de los datos de personal que labora aqu.
Lograr que aqu donde diariamente se reciban artculos y se lleva el control de los
precios.
As como de transaccin de diversos mbitos controlar de una manera sencilla
usando la base de datos que se le est proporcionando para evitar confusiones en
las diferentes actividades de esta empresa.
Indagando a profundidad en las necesidades para la elaboracin del sistema nos
hemos encontrado con la oportunidad de especificar un poco ms los objetivos
hacer un eficaz facilitara el entendimiento, funcionamiento y justificacin del mismo.

El primer punto a hacer mencin dentro de estas particularidades fue:


El disear la estructura de la base de datos necesaria para el sistema,
definiendo sus restricciones y relaciones conforme a las necesidades del
cliente, dndonos las restricciones necesarias para la elaboracin del
mismo.
Crear dicho diseo enfocado para Postgres con los diferentes diagramas
para facilitar la compresin del sistema a los usuarios finales.
Obtener una completa aprobacin por los usuarios de esta Base de Datos,
para lograr la optimizacin del sistema.
Conseguir una flexibilidad en el sistema en caso de que al solicitarlo se
pueda completar de forma inmediata con algn punto solicitado por el
usuario.

Proyecto Final BDA

Pgina 3

CUCEI
Lic. Informtica

Giro del Sistema


El giro para este sistema es primordialmente una gestin y control ptimo en las
operaciones realizadas da a da dentro de lo que es esta ferretera.
Diseado para ser una solucin verstil y flexible.
Capaz de adaptarse a necesidades especficas, dando una automatizacin y
mejora a lo que son tareas cotidianas.
Proporcionando un margen muy bajo de error, otorgando a su vez oportunidades
en mejorar el tiempo con los trabajadores y clientes del lugar.

Proyecto Final BDA

Pgina 4

CUCEI
Lic. Informtica

Bases de Datos Avanzadas


Actividades de EER
DER de la Base de Datos.

Proyecto Final BDA

Pgina 5

CUCEI
Lic. Informtica

Proyecto Final BDA

Pgina 6

CUCEI
Lic. Informtica

Disear el Diagrama EER de la Base de Datos

Proyecto Final BDA

Pgina 7

CUCEI
Lic. Informtica

Modelo Relacional de la Base de Datos

Proyecto Final BDA

Pgina 8

CUCEI
Lic. Informtica

Disear el Diagrama de Clases de UML de la Base de Datos a partir


del EER.

Proyecto Final BDA

Pgina 9

CUCEI
Lic. Informtica

Bases de Datos Avanzadas


Actividades de BDOO
Objeto Complejo Estructurado (GRAFO) de la Base de Datos

Proyecto Final BDA

Pgina 10

CUCEI
Lic. Informtica

Especificar los tipos de objetos mediante Constructores de Tipo (del


grafo anterior).

PERSONA
O0= (i0, tupla, <ID: i1, Tel: i2, Nombre: i3, Direccin: i7>)
ID
O1= (i1, atom, 01)
TEL
O2= (i2, atom, 3348367191)
NOMBRE
O3= (i3, tupla, <NombreP: i4, ApellidoPP: i5, ApellidoPM: i6>)
NOMBRES
O4= (i4, atom, Juan Pablo)
APELLIDOP
O5= (i5, atom, Prez)
APELLIDOM O6= (i6, atom, Mendoza)
DIRECCION
O7= (i7, tupla, <Calle: i8, Num: i9, Colonia: i10>)
CALLE
O8= (i8, atom, Paradise)
NUM
O9= (i9, atom, 2477)
COLONIA
O10= (i10, atom, Paraiso)
EMPLEADO
O11= (i11, tupla, <Persona: i0, Salario: i12, NSS: i13, CCompra: i28>)
SALARIO
O12= (i12, atom, 154.2)
NSS
O13= (i13, atom, JEjejd232)
CLIENTE
O14= (i14, tupla, < Persona: i0, RFC: i15, CVenta: i27>)
RFC
O15= (i15, atom, JEJDJS123JD)
PROVEEDOR O16= (i16, tupla, <Persona: i0, RFC: i15, CCompra: i22, CProducto: i29>)
SUCURSAL
O17= (i17, tupla, <ID: i1, Tel: i2, Direccin: i7, CEmpleado: i26>)
PRODUCTO O18= (i18, tupla, <ID: i1, Existencia: i19, Marca: i20, Precio: i21, CVenta: i25>)
EXISTENCIA O19= (i19, atom, 98)
MARCA
O20= (i20, atom, Patito)
PRERCIO
O21= (i21, atom, 25.6)
COMPRA
O22= (i22, tupla, <ID: i1, Fecha: i23, Total: i24, CProducto: i29,
CProveedor: i16:>)
FECHA
O23= (i23, atom, 26/08/1991)
TOTAL
O24= (i24, atom, 35.4)
VENTA
O25= (i25, tupla, <ID: i1, Fecha: i23, Total: i24, CProducto: i29, CCliente: i30,
CEmpleado: i26>)
CEMPLEADO O26 = (i26, set, {Empleado1: i11, Empleado2:i11,, EmpleadoN: i11})
CVENTA
O27= (i27, set, {Venta1: i25, Venta2: i25,, VentaN: i25})
CCOMPRA
O28= (i28, set, {Compra1: i22, Compra2: i22,, CompraN: i22})
CPRODUCTO O29= (i29, set, {Producto1: i18, Producto2: i18,, ProductoN: i18})
CCLIENTE
O30 = (i30, set, {Persona1: i0, RFC: i15, CVenta1: i27})

Proyecto Final BDA

Pgina 11

CUCEI
Lic. Informtica

Definir los tipos de objetos y sus operaciones del esquema de su BD


mediante un Lenguaje de Definicion de Datos (ODL).
Class PERSONA
Type tuple( ID: integer,
Nombre: tuple(

nombre: string,
Apaterno: string,
Amaterno:string),
Direccion:tuple( calle:string,
Num:string,
Colonia:string),
Telefono: string)

End
Class EMPLEADO inherit PERSONA
Type tuple( salario: decimal,
Nss: string)
End
Class CLIENTE inherit PERSONA
Type tuple( RFC: string)
End
Class PROVEEDOR inherit PERSONA
Type tuple( RFC: string,
Cproductos: set(PRODUCTO)
End
Class SUCURSAL
Type tuple( ID: integer,
Direccion:tuple( calle:string,
Num:string,
Colonia:string),
Telefono: string)
Method
AgregaEmpleado: EMPLEADO
End

Proyecto Final BDA

Pgina 12

CUCEI
Lic. Informtica

Class PRODUCTO
Type Tuple( ID: integer,
Marca: string,
Precio: decimal,
Existencias: integer)
Method
nuevoProducto: PRODUCTO
End
Class COMPRA
Type tuple( ID: string,
Fecha:date,
Total: decimal,
Cproducto: set( PRODUCTO) )
Method
nuevaCompra:COMPRA,
calculaSubtotal: decimal,
calculaIVA: decimal,
end
Class VENTA
Type tuple( ID: string,
Fecha:date,
Total: decimal,
Cproducto: set( PRODUCTO) )
Method
nuevaVenta: VENTA,
calculaSubtotal: decimal,
calculaIVA: decimal,
end

Proyecto Final BDA

Pgina 13

CUCEI
Lic. Informtica

Representar el esquema de su BD en Notacin grafica de ODL.

Proyecto Final BDA

Pgina 14

CUCEI
Lic. Informtica

Bases de Datos Avanzadas


Actividades de BD Deductivas
Hacer una representacin de su modelo de DER en Notacin Prolog
usando: hechos, reglas y consultas
Hechos:
empleado(melissa).
empleado(fernanda).
empleado(uriel).
empleado(ming).
empleado(armando).
empleado(aurora).
empleado(luis).
empleado(rubi).
empleado(felipe).
empleado(eduardo).
sueldo(melissa, 30000).
sueldo(fernanda, 40000).
sueldo(uriel, 25000).
sueldo(ming, 43000).
sueldo(armando, 38000).
sueldo(aurora, 25000).
sueldo(luis, 25000).
sueldo(rubi, 25000).
sueldo(felipe, 25000).
sueldo(eduardo, 55000).
sucursal(fernanda, 1).
sucursal(melissa, 1).
sucursal(ming, 2).
sucursal(uriel, 2).
sucursal (armando, 1).
sucursal (aurora, 1).
sucursal (luis, 2).
sucursal (eduardo, 3).
sucursal (rubi, 3).

Proyecto Final BDA

sucursal (felipe, 3).


supervisar(fernanda, melissa).
supervisar (fernanda,
armando).
supervisar(fernanda, aurora).
supervisar(ming, uriel).
supervisar (ming, luis).
supervisar(eduardo, rubi).
supervisar (eduardo, felipe).
cliente (andrea)
cliente (jaime)
cliente (camilo)
proveedor (ferromex)
proveedor (herremax)
proveedor (mexifer)
productoprov (ferromex,
martillo)
productoprov (ferromex,
serrucho)
productoprov (ferromex,
desarmador)
productoprov (herremax,
clavos)
productoprov (herremax,
tornillos)
productoprov (herremax,
herraduras)
productoprov (mexifer, cadena)
precio (martillo, 14.5)

precio (serrucho, 26.5)


precio (desarmador, 13)
precio (clavos, 1.5)
precio (tornillos, 3)
precio (herradura,15)
precio (cadena, 33.5)
direccin (ferromex,
guadalajara)
direccin (herremax,
chihuahua)
direccin (mexifer, guadalajara)
direccion (andrea, zapopan)
direccion (jaime, tonala)
direccion (camilo, guadalajara)
direccion (melissa,
zapopan).
direccion(fernanda,
guadalajara).
direccion (uriel, tonala).
direccion (ming, guadalajara).
direccion (armando,
tlaquepaque).
direccion (aurora, guadalajara).
direccion (luis, tonala).
direccion (rubi, zapopan).
direccion (eduardo,
tlaquepaque).
direccion (felipe, tonala).

Pgina 15

CUCEI
Lic. Informtica

Reglas:
Empleados_en_sucursal(X, Y):- empleado(X), sucursal(X, Y).
Producto_de_proveedor(X,Y):-producto(X), proveedor(Y), productoprov(X,Y).
Precios_altos(Y):- precio(X,Y), Y>20
Personas_de_GDL(X):- (empleado(X); cliente(X); proveedor(X)), Y=Guadalajara,
direccin(X,Y).
Superior(X, Y):- Supervisar (X, Y).
Superior(X, Y):- Supervisar (X, Z), Superior(Z, Y).
Gerente(X):- empleado(X), NOT(Supervisar(Y,X)).
Consultas:
Empleados_en_sucursal(X,1).
X=fernanda
X=melissa

X=armando

Producto_de_proveedor(ferromex,X).
X=martillo
X=serrucho

X=desarmador

X=aurora

Precios_altos(martillo,Y).
False
Personas_de_GDL(X).
X=ferromex X=mexifer X=camilo X=fernanda X=ming

X=aurora

Superior(ming, Y).
Y=uriel
Y=luis
Gerente(X).
X=fernanda

X=ming

X=eduardo

Empleados_en_sucursal(melissa,1).
true
Empleados_en_sucursal(rubi,1).
false
Personas_de_GDL(luis).
False

Proyecto Final BDA

Pgina 16

CUCEI
Lic. Informtica

Prolog:

Proyecto Final BDA

Pgina 17

CUCEI
Lic. Informtica

Proyecto Final BDA

Pgina 18

CUCEI
Lic. Informtica

Disear una interpretacin de hechos y reglas en CORAL.

Empleado (1111, Melissa Mendoza, Zapopan Jalisco, 36284288, NSDJRHG789,


1, gerente, 2013-11-24).
Empleado (2222, Ming Hsieh, Guadalajara Jalisco, 3333702887, JCBJLSNDHU3,
2, gerente, 2014-10-10).
Empleado (2223, Esmeralda Ramrez, Zapopan Jalisco, 3467859098,
DDAAOOIUEU, 2, empleado, 2014-12-03).
Empleado (2224, Uriel Martnez, Tonal Jalisco, 32456722, LJFUR76NJKS, 2,
empleado, 2014-11-24).
Empleado (1112, Rubi De Alba, Zapopan Jalisco, 31218251, MDIUJLJNFE0, 1,
empleado, 2013-12-30).
producto(1,martillo,23.50,MEXI,60).
producto(2,Tornillos,3.50,MEXI,1000).
producto(3,desarmador,22.00,FERREX,65).
producto(4,soga,14.50,DUREX,154).
Sucursal(1,Av. Mxico 772,33287654,2,1111).
Sucursal(2,Av. La Paz 4345,34558822 ,3,2222).
cliente(11, Eduardo Mora, Local D 4323, 36354782,GDFTEYRJLO397).
cliente(12, Angel Becerra, Av. Juarez 455, 34123432,HGTYRFDERRTT4).
cliente(13, Andrea Loza, Av. Patria 2072, 3333444477, OOIU789YT65RF).
cliente(14, Brissa Flores, Moctezuma 345, 34920987, LLSSRFDVG543).
venta (1, 11, 1112, 123.00).
venta (2, 14, 2224, 2354.00).

Proyecto Final BDA

Pgina 19

CUCEI
Lic. Informtica

Bases de Datos Avanzadas


Actividades Distribuidas
Desarrollar 4 fragmentaciones en ALGEBRA RELACIONAL: una FH
Derivada, una FH, una FV y una F Mixta de la Base de Datos

Fragmentacin Horizontal

no _sucursal=1, (EMPLEADO)
marca=HUNTER, (PRODUCTO)

Fragmentacin Horizontal Derivada

direccion=GUADALAJARA, (SUCURSAL)
direccion= GUADALAJARA, (CLIENTE)
direccion= GUADALAJARA, (EMPLEADO)
direccion=GUADALAJARA, (PROVEEDOR)

Fragmentacin Vertical

id_proveedor, nombre, direccion, telefono (PROVEEDOR)


id_producto, nombre_p, precio (PRODUCTO)

Fragmentacin Mixta

id_proveedor, nombre, telefono ( direccion=GUADALAJARA, (PROVEEDOR))


id_producto, nombre_p, precio ( marca=HUNTER, (PRODUCTO))

Proyecto Final BDA

Pgina 20

CUCEI
Lic. Informtica

Desarrollar 4 fragmentaciones en SQL: dos FH, una FV y una F Mixta


de la BD de su proyecto.

Fragmentacin Horizontal

select * from Empleado where no_sucursal=1;

select * from Producto where marca='HUNTER';

Fragmentacin Horizontal Derivada

select * from Sucursal where direccion='GUADALAJARA';

select * from Cliente where direccion='GUADALAJARA';

Proyecto Final BDA

Pgina 21

CUCEI
Lic. Informtica

select * from Empleado where direccion='GUADALAJARA';

select * from Proveedor where direccion='GUADALAJARA';

Fragmentacin Vertical

select id_proveedor, nombre, direccion, telefono from Proveedor;

select id_producto, nombre_p, precio from Producto;

Proyecto Final BDA

Pgina 22

CUCEI
Lic. Informtica

Fragmentacin Mixta

select id_proveedor, nombre, direccion, telefono from Proveedor where


direccion='GUADALAJARA';

select id_producto, nombre_p, precio from Producto where marca='HUNTER';

Proyecto Final BDA

Pgina 23

CUCEI
Lic. Informtica

Desarrollar 3 consultas de la BD de su proyecto, en dos de ellas


utilizando 3 estrategias (UNION) y la otra utilizando la fragmentacin
vertical para optimizarla (SEMIREUNION).
Se cuenta con una Base de datos distribuida en las 3 Sucursales, cada una tiene
la informacin de sus Empleados por separado y la sucursal 3 desea ver un listado
del id_ empleado y nombre, de todos los empleados de las 3 sucursales.
Ej. Sucursal 1 cuenta con 4 empleados, sucursal 2 cuenta con3 empleados y
sucursal 3 cuenta con 3 empleados.

UNION

Enviar de la sucursal 1 a la sucursal 2 todas las tuplas de empleados.


Despus de unirlas en la sucursal 2 volverlas a enviar a la sucursal 3 para
unirlas con las de esa sucursal, despus seleccionar el ID y el nombre para
mostrarlo. En total serian 700b que se pasan a la sucursal 3.
Enviar todas las tuplas de empleado de la sucursal 2 a la 1, y en la uno unir
las tuplas que recibi de la sucursal 2 con los de la 1 para enviarlos a la 3,
as se renen con las de la 3 y se obtiene el nombre y el id. En total serian
700b que se pasan a la sucursal 3.

SEMIREUNION

Enviar de la sucursal 1 a la sucursal la fragmentacin vertical de empleado


que tendra el id y el nombre. Despus de unirlas en la fragmentacin de
sucursal 2 y enviarlo a la 3 para unirlas con las de esa sucursal tambin
fragmentada. Se envan de la 1, 176b , de la 2 serian 132 en total 308b .

Proyecto Final BDA

Pgina 24

CUCEI
Lic. Informtica

Proyecto Ferretera
A continuacin se muestran algunas capturas del programa:

Agregar nuevos empleados, solo el administrador puede realizar esta


operacin.
Hacemos clic en el Men Agregar > Empleado

Agregamos todos los datos que se solicitan y damos clic en Agregar

Proyecto Final BDA

Pgina 25

CUCEI
Lic. Informtica

Si no cometimos ningn error nos aparecer la siguiente ventana.

En caso de que exista algn error como querer agregar un gerente en una
sucursal que ya cuenta con uno nos marcara que no se puede realizar la
operacin

Proyecto Final BDA

Pgina 26

CUCEI
Lic. Informtica

La ventana que nos aparece es la siguiente ya que solo puede existir un


gerente por sucursal

En caso de que el error es por falta de datos se mostrara lo siguiente:

Para la consulta se puede introducir el ID o el nombre del empleado

Proyecto Final BDA

Pgina 27

CUCEI
Lic. Informtica

Si queremos hacer una consulta generar le mostrara lo siguiente

Para agregar un producto se muestra el siguiente formulario (el proveedor


debe estar previamente dado de alta).

Proyecto Final BDA

Pgina 28

CUCEI
Lic. Informtica

Si se agreg de manera correcta nos muestra la siguiente


ventana.

No se puede agregar un producto que no tenga proveedor

Proyecto Final BDA

Pgina 29

CUCEI
Lic. Informtica

Se pueden realizar consultas de productos de manera individual


introduciendo nombre o ID del producto que deseamos

Tambin podemos hacer consultas generales.

Proyecto Final BDA

Pgina 30

CUCEI
Lic. Informtica

Podemos consultar proveedores y ver todos los productos que manejan

Para una nueva venta se ingresa el nombre o id del cliente que solicita la
venta, as como el id del empleado que la realiza.

Proyecto Final BDA

Pgina 31

CUCEI
Lic. Informtica

Se puede consultar los productos que tenemos y verificar existencia, o


simplemente escribir el id o nombre del producto

Si ingresamos un nmero mayor a las existencias disponibles nos mostrara


un mensaje

Proyecto Final BDA

Pgina 32

CUCEI
Lic. Informtica

Conforme agreguemos productos se ira mostrando en la pantalla para


terminar pulsamos finalizar

Si consultamos los productos vemos que las existencias decendieron

Proyecto Final BDA

Pgina 33

CUCEI
Lic. Informtica

En una compra (adquirir productos) se necesita un proveedor y el empleado


que la solicita

Podemos observar cual sera la existencia final del producto despus de la


compra si la compra no se realiza las existencias no se modificaran

Proyecto Final BDA

Pgina 34

CUCEI
Lic. Informtica

CODIGO FUENTE
SET statement_timeout = 0;
SET lock_timeout = 0;
SET client_encoding = 'WIN1252';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;
--- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
-CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
--- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
-COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
SET search_path = public, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--- Name: cliente; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE cliente (
id_cliente integer NOT NULL,
nombre character varying(60) NOT NULL,
direccion character varying(80) NOT NULL,
telefono character varying(15) NOT NULL,
rfc character varying(13)
);
ALTER TABLE public.cliente OWNER TO "Melissa";
--- Name: compra; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE compra (
id_compra integer NOT NULL,
id_empleado integer NOT NULL,
id_proveedor integer NOT NULL,
fecha_pedido date,
subtotal numeric,
iva numeric,
total numeric
);
ALTER TABLE public.compra OWNER TO "Melissa";
--- Name: detallecompra; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE detallecompra (
id_compra integer NOT NULL,

Proyecto Final BDA

Pgina 35

CUCEI
Lic. Informtica
id_producto integer NOT NULL,
cantidad integer NOT NULL,
precio numeric,
importe numeric
);
ALTER TABLE public.detallecompra OWNER TO "Melissa";
--- Name: detalleventa; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE detalleventa (
id_venta integer NOT NULL,
id_producto integer NOT NULL,
cantidad integer NOT NULL,
precio numeric,
importe numeric
);
ALTER TABLE public.detalleventa OWNER TO "Melissa";
--- Name: empleado; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE empleado (
id_empleado integer NOT NULL,
nombre character varying(60) NOT NULL,
direccion character varying(80) NOT NULL,
telefono character varying(15),
nss character(11),
no_sucursal integer NOT NULL,
cargo character varying(15),
salario numeric NOT NULL,
fecha_inicio date,
status character varying(15),
foto character varying(150),
CONSTRAINT empleado_cargo_check CHECK ((((cargo)::text = 'Empleado'::text) OR ((cargo)::text
= 'Gerente'::text)))
);
ALTER TABLE public.empleado OWNER TO "Melissa";
--- Name: producto; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE producto (
id_producto integer NOT NULL,
nombre_p character varying(60) NOT NULL,
precio numeric NOT NULL,
existencias integer,
marca character varying(50),
status character varying(15),
foto character varying(150)
);

Proyecto Final BDA

Pgina 36

CUCEI
Lic. Informtica
ALTER TABLE public.producto OWNER TO "Melissa";
--- Name: proveedor; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE proveedor (
id_proveedor integer NOT NULL,
nombre character varying(60) NOT NULL,
direccion character varying(80) NOT NULL,
telefono character varying(15),
rfc character varying(13) NOT NULL,
mail character varying(30),
detalles character varying(50),
status character varying(15)
);
ALTER TABLE public.proveedor OWNER TO "Melissa";
--- Name: proveedorproducto; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE proveedorproducto (
id_proveedor integer,
id_producto integer,
preciocompra numeric
);
ALTER TABLE public.proveedorproducto OWNER TO "Melissa";
--- Name: sucursal; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE sucursal (
no_sucursal integer NOT NULL,
direccion character varying(50) NOT NULL,
telefono character varying(15),
empleados integer,
no_gerente integer NOT NULL,
CONSTRAINT sucursal_empleados_check CHECK ((empleados <= 8))
);
ALTER TABLE public.sucursal OWNER TO "Melissa";
--- Name: vempleadosensucursal; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE vempleadosensucursal (
idsucursal integer,
idempleado integer,
nombre character varying(60),
salario numeric
);
ALTER TABLE public.vempleadosensucursal OWNER TO "Melissa";

Proyecto Final BDA

Pgina 37

CUCEI
Lic. Informtica
--- Name: venta; Type: TABLE; Schema: public; Owner: Melissa; Tablespace:
-CREATE TABLE venta (
id_venta integer NOT NULL,
id_cliente integer NOT NULL,
id_empleado integer NOT NULL,
fecha date,
subtotal numeric,
iva numeric,
total numeric
);
ALTER TABLE public.venta OWNER TO "Melissa";
--- Name: vganancias; Type: VIEW; Schema: public; Owner: Melissa
-CREATE VIEW vganancias AS
SELECT s.no_sucursal AS idsucursal,
sum(c.total) AS totaldecompras,
sum(v.total) AS totaldeventas,
(sum(v.total) - sum(c.total)) AS ganacias
FROM (((sucursal s
JOIN empleado e ON ((s.no_sucursal = e.no_sucursal)))
JOIN compra c ON ((e.id_empleado = c.id_empleado)))
JOIN venta v ON ((e.id_empleado = v.id_empleado)))
GROUP BY s.no_sucursal;
ALTER TABLE public.vganancias OWNER TO "Melissa";
--- Name: vgerentes; Type: VIEW; Schema: public; Owner: Melissa
-CREATE VIEW vgerentes AS
SELECT s.no_sucursal AS idsucursal,
e.id_empleado AS idempleado,
e.nombre,
e.salario
FROM (empleado e
JOIN sucursal s ON ((e.no_sucursal = s.no_sucursal)))
WHERE ((e.cargo)::text = 'Gerente'::text);
ALTER TABLE public.vgerentes OWNER TO "Melissa";
--- Data for Name: cliente; Type: TABLE DATA; Schema: public; Owner: Melissa
--

Proyecto Final BDA

Pgina 38

CUCEI
Lic. Informtica

Conclusin
Como conclusin hemos obtenido como equipo que el estudio de la
factibilidad ha sido muy provechoso para nosotros, ya que esta nos ayud a
conocer si la empresa dispone de los recursos tanto humanos, tcnicos,
econmicos y legales, para la implementacin de un nuevo sistema, que
nos permita llevar a cabo los objetivos y metas propuestas.
As como al realizar este trabajo nos hemos percatado del gran peso que
son las necesidades de parte del usuario final y la aceptacin que este le
proporcione al sistema es lo que en verdad lo convierte en un sistema
eficiente.
La informacin reunida en este documento constata como es que sirve la
base para estrategias de diseos de lo que fue mejora del sistema
rudimentario actual que tenan he implementar a la empresa una
organizacin funcional por parte de nuestro sistema.

Proyecto Final BDA

Pgina 39