39
“BASE DE DATOS AVANZADAS” Proyecto Final De Alba Mendoza Melissa Rubi Resendez Muñoz Uriel Armando CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS Mtra. MURILLO LEAÑO MARIA MAGDALENA 2014 A

Diagramas Proyecto Final BDA

Embed Size (px)

DESCRIPTION

documentacion de una base de datos

Citation preview

Page 1: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 1

“BASE DE DATOS AVANZADAS”

Proyecto Final

De Alba Mendoza Melissa Rubi Resendez Muñoz Uriel Armando

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS

Mtra. MURILLO LEAÑO MARIA MAGDALENA

2014 A

Page 2: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 2

INDICE

Objetivo ....................................................................................................................................................... 3

Giro del Sistema ........................................................................................................................................ 4

“Bases de Datos Avanzadas Actividades de EER” ............................................................................ 5

DER de la Base de Datos. ...................................................................................................................... 5

Diseñar el Diagrama EER de la Base de Datos ................................................................................... 7

Modelo Relacional de la Base de Datos ............................................................................................... 8

Diseñar 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 Notación grafica de ODL. .................................................... 14

“Bases de Datos Avanzadas Actividades de BD Deductivas” ....................................................... 15

Hacer una representación de su modelo de DER en Notación Prolog usando: hechos, reglas y

consultas ................................................................................................................................................. 15

Diseñar una interpretación 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 fragmentación vertical para optimizarla (SEMIREUNION). ........................... 24

“Proyecto Ferretería” .............................................................................................................................. 25

CODIGO FUENTE ................................................................................................................................. 35

Conclusión ................................................................................................................................................ 39

Page 3: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 3

Objetivo Como objetivo general nos hemos trazado el poder contribuir a que el sistema

desarrollado en este trabajo pueda facilitar el desempeño de los trabajadores así

como hacer más 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 artículos y se lleva el control de los

precios.

Así como de transacción 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 elaboración del sistema nos

hemos encontrado con la oportunidad de especificar un poco más los objetivos

hacer un eficaz facilitara el entendimiento, funcionamiento y justificación del mismo.

El primer punto a hacer mención dentro de estas particularidades fue:

El diseñar la estructura de la base de datos necesaria para el sistema,

definiendo sus restricciones y relaciones conforme a las necesidades del

cliente, dándonos las restricciones necesarias para la elaboración del

mismo.

Crear dicho diseño enfocado para Postgres con los diferentes diagramas

para facilitar la compresión del sistema a los usuarios finales.

Obtener una completa aprobación por los usuarios de esta Base de Datos,

para lograr la optimización del sistema.

Conseguir una flexibilidad en el sistema en caso de que al solicitarlo se

pueda completar de forma inmediata con algún punto solicitado por el

usuario.

Page 4: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 4

Giro del Sistema

El giro para este sistema es primordialmente una gestión y control óptimo en las

operaciones realizadas día a día dentro de lo que es esta ferretería.

Diseñado para ser una solución versátil y flexible.

Capaz de adaptarse a necesidades específicas, dando una automatización 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.

Page 5: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 5

“Bases de Datos Avanzadas Actividades de EER”

DER de la Base de Datos.

Page 6: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 6

Page 7: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 7

Diseñar el Diagrama EER de la Base de Datos

Page 8: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 8

Modelo Relacional de la Base de Datos

Page 9: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 9

Diseñar el Diagrama de Clases de UML de la Base de Datos a partir del EER.

Page 10: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 10

“Bases de Datos Avanzadas Actividades de BDOO”

Objeto Complejo Estructurado (GRAFO) de la Base de Datos

Page 11: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 11

Especificar los tipos de objetos mediante Constructores de Tipo (del grafo anterior).

PERSONA O0= (i0, tupla, <ID: i1, Tel: i2, Nombre: i3, Dirección: 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, ‘Pérez’)

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, Dirección: 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})

Page 12: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 12

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

Page 13: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 13

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

Page 14: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 14

Representar el esquema de su BD en Notación grafica de ODL.

Page 15: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 15

“Bases de Datos Avanzadas Actividades de BD Deductivas”

Hacer una representación de su modelo de DER en Notación 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).

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)

dirección (ferromex,

guadalajara)

dirección (herremax,

chihuahua)

dirección (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).

Page 16: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 16

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’,

dirección(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 X=aurora

Producto_de_proveedor(ferromex,X).

X=martillo X=serrucho X=desarmador

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

Page 17: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 17

Prolog:

Page 18: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 18

Page 19: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 19

Diseñar una interpretación 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 Ramírez, Zapopan Jalisco, 3467859098,

DDAAOOIUEU, 2, empleado, 2014-12-03).

Empleado (2224, Uriel Martínez, 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. México 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).

Page 20: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 20

“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

Fragmentación Horizontal

σ no _sucursal=1, (EMPLEADO)

σ marca=’HUNTER’, (PRODUCTO)

Fragmentación Horizontal Derivada

σ direccion=’GUADALAJARA’, (SUCURSAL)

σ direccion=’ ’GUADALAJARA’, (CLIENTE)

σ direccion= ’GUADALAJARA’, (EMPLEADO)

σ direccion=’GUADALAJARA’, (PROVEEDOR)

Fragmentación Vertical

id_proveedor, nombre, direccion, telefono (PROVEEDOR)

id_producto, nombre_p, precio (PRODUCTO)

Fragmentación Mixta

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

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

Page 21: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 21

Desarrollar 4 fragmentaciones en SQL: dos FH, una FV y una F Mixta de la BD de su proyecto.

Fragmentación Horizontal

select * from Empleado where no_sucursal=1;

select * from Producto where marca='HUNTER';

Fragmentación Horizontal Derivada

select * from Sucursal where direccion='GUADALAJARA';

select * from Cliente where direccion='GUADALAJARA';

Page 22: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 22

select * from Empleado where direccion='GUADALAJARA';

select * from Proveedor where direccion='GUADALAJARA';

Fragmentación Vertical

select id_proveedor, nombre, direccion, telefono from Proveedor;

select id_producto, nombre_p, precio from Producto;

Page 23: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 23

Fragmentación Mixta

select id_proveedor, nombre, direccion, telefono from Proveedor where direccion='GUADALAJARA';

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

Page 24: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 24

Desarrollar 3 consultas de la BD de su proyecto, en dos de ellas utilizando 3 estrategias (UNION) y la otra utilizando la fragmentación vertical para optimizarla (SEMIREUNION).

Se cuenta con una Base de datos distribuida en las 3 Sucursales, cada una tiene

la información 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.

Después de unirlas en la sucursal 2 volverlas a enviar a la sucursal 3 para

unirlas con las de esa sucursal, después 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 reúnen 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 fragmentación vertical de empleado

que tendría el id y el nombre. Después de unirlas en la fragmentación de

sucursal 2 y enviarlo a la 3 para unirlas con las de esa sucursal también

fragmentada. Se envían de la 1, 176b , de la 2 serian 132 en total 308b .

Page 25: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 25

“Proyecto Ferretería”

A continuación se muestran algunas capturas del programa:

Agregar nuevos empleados, solo el administrador puede realizar esta

operación.

Hacemos clic en el Menú Agregar > Empleado

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

Page 26: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 26

Si no cometimos ningún error nos aparecerá la siguiente ventana.

En caso de que exista algún error como querer agregar un gerente en una

sucursal que ya cuenta con uno nos marcara que no se puede realizar la

operación

Page 27: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 27

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

gerente por sucursal

l

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

Page 28: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 28

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).

Page 29: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 29

Si se agregó de manera correcta nos muestra la siguiente

ventana.

No se puede agregar un producto que no tenga proveedor

Page 30: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 30

Se pueden realizar consultas de productos de manera individual

introduciendo nombre o ID del producto que deseamos

También podemos hacer consultas generales.

Page 31: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 31

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.

Page 32: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 32

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

simplemente escribir el id o nombre del producto

Si ingresamos un número mayor a las existencias disponibles nos mostrara

un mensaje

Page 33: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 33

Conforme agreguemos productos se ira mostrando en la pantalla para

terminar pulsamos finalizar

Si consultamos los productos vemos que las existencias decendieron

Page 34: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 34

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

que la solicita

Podemos observar cual sería la existencia final del producto después de la

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

Page 35: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 35

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,

Page 36: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 36

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)

);

Page 37: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 37

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";

Page 38: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 38

--

-- 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

--

Page 39: Diagramas Proyecto Final BDA

CUCEI Lic. Informática

Proyecto Final BDA Página 39

Conclusión

Como conclusión 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, técnicos,

económicos y legales, para la implementación 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 aceptación que este le

proporcione al sistema es lo que en verdad lo convierte en un sistema

eficiente.

La información reunida en este documento constata como es que sirve la

base para estrategias de diseños de lo que fue mejora del sistema

rudimentario actual que tenían he implementar a la empresa una

organización funcional por parte de nuestro sistema.