proyecto de base de datos distribuidas

26
INSTITUTO TECNOLOGICO del Valle de oaxaca B A S E D E D A T O S ALUMNOS: CARREÑO CRUZ ARTURO HERNÁNDEZ APARICIO LOURDES MARTINEZ MARTINEZ BENJAMIN PROFESOR: L.I. AMBROSIO CARDOSO JIMENEZ MATERIA: TALLER DE BASES DE DATOS I SEMESTRE: GRUPO: “A” ESPECIALIDAD: LIC. EN INFORMATICA Ex Hacienda De Nazareno Xoxocotlán, Oaxaca, MAYO 2009

Upload: benjamin

Post on 16-Jun-2015

3.461 views

Category:

Documents


10 download

DESCRIPTION

es un proyecto de base de datos distribuidas... en donde encontramos desde la definicion del problema hasta la implementacion

TRANSCRIPT

Page 1: Proyecto de base de datos distribuidas

IINNSSTTIITTUUTTOO TTEECCNNOOLLOOGGIICCOO

ddeell VVaallllee ddee ooaaxxaaccaa

B A S E D E D A T O S ALUMNOS:

CARREÑO CRUZ ARTURO

HERNÁNDEZ APARICIO LOURDES

MARTINEZ MARTINEZ BENJAMIN

PROFESOR:

L.I. AMBROSIO CARDOSO JIMENEZ

MATERIA:

TALLER DE BASES DE DATOS I

SEMESTRE: 6º GRUPO: “A”

ESPECIALIDAD:

LIC. EN INFORMATICA

Ex Hacienda De Nazareno Xoxocotlán,

Oaxaca, MAYO 2009

Page 2: Proyecto de base de datos distribuidas

INTRODUCCION

Objetivo: Elaborar una base de datos en donde pueda almacenar, y controlar la

información de una sastrería de una manera sencilla pero eficaz.

Una conocida sastrería ha tenido un crecimiento gradual tanto en sus empleados

como en sus sucursales, así también como en la producción de sus prendas lo que ha

dificultado la manipulación de su información, pues de hacerla de una manera manual

lo hace todavía más complicado, por lo dicha sastrería ha contratado a un equipo de

informáticos para que elaboren una base de datos en la cual puedan guardar los datos

relevantes y poder manipular y controlar la información de la manera correcta y sin

errores. Para poder tener un buen control de la información de la sastrería la base de

datos contendrá lo siguiente:

Tendrá una tabla en donde se guardaran todos los datos de cada trabajador, en donde principalmente se almacenará datos generales como nombre, dirección, teléfono etc.

Contendrá un campo en donde almacenará los datos generales de todas las sucursales de la sastrería para poder tener un manejo adecuado de estos mismos.

Además contendrá la tabla de telas en la cual guardara datos de estos, para poder ocupar estos datos de una manera correcta.

Para el mejor manejo de la producción de prendas existirá un campo en donde se guardará la información de prendas elaboradas por lotes, que empleado la elaboro, que cantidad etc.

Se tendrá también la tabla en donde se guarde los datos generales de cada prenda, así el vendedor tendrá siempre a la mano información de estas.

La base de datos contendrá también la tabla de ventas así como de compras, esto es de vital importancia para la sastrería por tal razón no pueden haber errores.

De igual manera contendrá la tabla de clientes, se almacenaran datos generales de estos mismos.

También se tendrá el control de otras actividades como apartados, control de compras

que se hacen con los proveedores

Page 3: Proyecto de base de datos distribuidas

PROCESO

Los pasos a seguir para el almacenamiento de esta información son:

1. Se almacenaran los datos principales de las prendas que se están

produciendo, su código, características y precios.

2. Se almacenara los tipos de telas que se van a emplear para la

elaboración de las prendas, su código y su descripción.

3. Se almacenaran las sucursales donde trabajan los empleados, su código

y su dirección

4. Se almacenar en una tabla los datos particulares de los sastres, su

código, su nombre, el código de la sucursal donde trabaja y su fecha de

nacimiento.

5. Se almacenaran los lotes de fabricación, con el número de lote, código

de la prensa, o la cantidad fabricada, la fecha de inicio y la fecha final.

6. Se almacenara en una tabla los tipos de telas que fueron empleados

para realizar cada prenda.

7. Se almacenara en una tabla los registros de los trabajos realizados, su

número de lote, su código de sastre y el número de prendas que fueron

fabricadas.

Page 4: Proyecto de base de datos distribuidas

ENTIDADES Y CLASIFICACION DE ATRIBUTOS

Almacén

IdTela Identificativo

Cantidad Simple

Material Compuesto

Color Multivalorado

Largo Compuesto

Ancho compuesto

Sastre

IdSastre Identificativo

Nombre Compuesto

Appaterno Simple

Apmaterno Simple

Teléfono Multivalorado

Dirección Compuesto

FechaIngreso Compuesto

Fechanacimiento Compuesto

Salario Compuesto

IdSucursal Identificativo

Prendas

IdPrenda Identificativo

Descripción Compuesto

Talla Multivalorado

Color Simple

Sucursales

IdSucursal Identificativo

Nombre Compuesto

Dirección Compuesto

Teléfono Multivalorado

NumeroEmpleados Simple

Horarios Compuesto

Lotes_Fabricados

IdLote Identificativo

IdPrenda Identificativo

IdTela Identificativo

CantidadFabricada Simple

IdSucursal Identificativo

FechaInicio Compuesto

FechaTermino Compuesto

Trabajo_Sastre

IdTrabajo Identificativo

IdSastre Identificativo

IdLote Identificativo

CantidadFabricada Simple

Clientes

IdCliente Identificativo

Nombre Compuesto

ApPaterno Simple

ApMaterno Simple

Teléfono Multivalorado

Dirección Compuesto

Ventas

IdVenta Identificativo

Fecha Venta Compuesto

IdSucursal Identificativo

IdCliente Identificativo

Page 5: Proyecto de base de datos distribuidas

Compra_telas

IdCompra Identificativo

IdProveedor Identificativo

FechaCompra Compuesto

Total Simple

Venta_Detalle

IdVenta_detalle Identificativo

IdVenta Identificativo

IdPrenda Identificativo

Cantidad Compuesto

PrecioUnitario Simple

Apartados

IdApartado Identificativo

IdCliente Identificativo

IdPrenda Identificativo

Cantidad Simple

Descripción Compuesto

Precio Simple

Proveedores

IdProveedor Identificativo

NombProveedor Compuesto

Dirección Compuesto

Teléfono Simple

Fax Simple

Compra_Detalle

IdCompra_Detalle Identificativo

IdCompra Identificativo

IdTela Identificativo

Cantidad Simple

Precio unitario Simple

Descripción Compuesto

Prendas_Telas

IdMaterial Identificativo

IIdPrenda Identificativo

IdTela Identificativo

Page 6: Proyecto de base de datos distribuidas

DOCUMENTACION DE LAS TABLAS

Tabla Sastre

Objetivo: Almacena la información de los empleados de la sastrería, con la finalidad de llevar un control de los datos del empleado. Llave primaria: PkSastre (IdSastre). Llave extranjera:

FkSusursal(IdSucursal) se relaciona con el campo Id Sucursal en la tabla Sucursal.

Campo

Tipo de

dato

Tamaño Descripción

IdSastre Serial Clave única con la que se identifica al empleado dentro de la sastrería.

Nombre Char 30 Nombre del sastre.

Appaterno Char 20 Apellido paterno del sastre.

Apmaterno Char 20 Apellido materno del sastre.

Teléfono Char 20 Teléfono celular del empleado y/o domicilio.

Dirección Char 50 Dirección del empleado.

FechaIngreso Date 8 Fecha en que el empleado ingreso a la empresa.

Fechanacimiento Date 8 Fecha de nacimiento del empleado

Salario Float 10 Salario que percibe el trabajador

IdSucursal Int Sucursal en la que trabaja el sastre

Total Bytes 166

Tabla Almacén

Objetivo: Almacenar la información de las telas que actualmente se encuentra

en el almacén.

Llave primaria: PkTela (IdTela) Llave extranjera:

Campo

Tipo de

Dato

Tamaño Descripción

IdTela Serial Clave única con la que se identifican las telas dentro del almacén.

Cantidad Int Cantidad de telas de un mismo tipo en almacén.

Nombre Char 20 Material del que está hecho la tela

Color Char 15 Color de la tela.

Largo Float 10 El largo total de la tela.

Ancho Float 10 Ancho total de la tela

Total Bytes 55

Page 7: Proyecto de base de datos distribuidas

Tabla Prendas

Objetivo: Almacenar la información de cada una de las prendas que se

elaborarán dentro de la sastrería.

Llave primaria: PkPrenda(IdPrenda), Llave extranjera:

Campo

Tipo de

Dato

Tamaño Descripción

IdPrenda Serial Clave única con la que se identifican los tipos de prendas que han sido elaborados.

Descripción Char 50 Descripción de cada una de las prendas.

Talla Char 10 Talla de cada una de las prendas

Color Char 15 Color de la prenda.

Total Bytes 75

Tabla Sucursales

Objetivo: Almacenar la información de cada una de las sucursales con las que

se cuenta.

Llave primaria: PkSucursal(IdSucursal) Llave extranjera:

Campo

Tipo de

Dato

Tamaño Descripción

IdSucursal Serial Clave única con la que se identifican cada una de las sucursales con las que se cuenta.

Nombre Char 20 Nombre de cada una de las sucursales.

Dirección Char 30 Dirección de cada una de las sucursales.

Teléfono Char 20 Teléfono de cada una de las sucursales.

NumeroEmpleados Int Número de empleados con los que cuenta cada una de las sucursales.

Horarios Char 10 Horario en el que labora el personal de cada sucursal

Total Bytes 80

Page 8: Proyecto de base de datos distribuidas

Tabla Lotes Fabricados

Objetivo: Almacenar la información de cada uno de los lotes por prenda que se

elaboran.

Llave primaria: PkLote(IdLote) Llave extranjera:

FkPrenda(IdPrenda) se relaciona con el campo IdPrenda en la tabla Prenda

FkSucursal(IdSucursal) se relaciona con el campo IdSucursal en la tabla Sucursal

FkTela(IdTela) se relaciona con el campo IdTela en la tabla Almacén.

Campo

Tipo de

Dato

Tamaño Descripción

IdLote Serial Clave única con la que se identifican cada uno de los lotes elaborados.

IdPrenda Int Clave única con la que se identifican los tipos de prendas que han sido elaborados.

IdTela Int Clave única con la que se identifican las telas dentro del almacén.

CantidadFabricada Int Numero de prendas de un mismo tipo que han sido elaboradas en cada lote.

IdSucursal Int Clave única con la que se identifican cada una de las sucursales con las que se cuenta.

FechaInicio Date 8 Fecha en que el lote comenzó a producirse.

FechaTermino Date 8 Fecha en que el Lote dejo de Producirse

Total Bytes 16

Page 9: Proyecto de base de datos distribuidas

Tabla Trabajo_Sastre Objetivo: Almacenar la información de cada uno de los trabajo en los que interviene cada sastre. Llave primaria:Pktrabajo(Idtrabajo) Llave extranjera:

FkSastre(IdSastre) se relaciona con el campo IdSastre en la tabla Sastre.

FkLote(IdLote) se relaciona con el campoIdLote en la tabla Lotes_Fabricados.

Campo

Tipo de

Dato

Tamaño Descripción

IdTrabajo Serial Clave de cada uno de los trabajos que han realizado los sastres.

IdSastre Int Clave única con la que se identifica al empleado dentro de la sastrería.

IdLote Int Clave única con la que se identifican cada uno de los lotes elaborados.

CantidadFabricada Int Cantidad de prendas que un trabajador elaboro

Total Bytes 0

Tabla Clientes

Objetivo: Almacenar la información de cada uno de los clientes con los que

cuenta la sastreria.

Llave primaria: PkCliente(IdCliente) Llave extranjera:

Campo

Tipo de

Dato

Tamaño Descripción

IdCliente Serial Clave única con la que se identifica a cada uno de los clientes.

Nombre Char 30 Nombre del cliente

ApPaterno Char 20 Apellido Paterno del Cliente.

ApMaterno Char 20 Apellido Materno del Cliente

Teléfono Char 20 Teléfono del cliente

Dirección Char 50 Dirección del cliente

Total Bytes 140

Page 10: Proyecto de base de datos distribuidas

Tabla Ventas

Objetivo: Almacenar la información de cada una de las ventas que se realizan.

Llave primaria: PkVenta(IdVenta) Llave extranjera:

FkSucursal(IdSucursal) se relación con el campo IdSucursal en la tabla Sucursal.

FkCliente(IdCliente) se relaciona con el campo IdCLiente en la tabla Cliente.

Campo

Tipo de

Dato

Tamaño Descripción

IdVenta Serial Clave única con la que se identifica cada uno de los pedido realizados.

Fecha Venta

Date 8 Fecha en la que fue realizada la venta.

IdSucursal Int Clave única con la que se identifican cada una de las sucursales con las que se cuenta

IdCliente Int Clave única con la que se identifica a cada uno de los clientes

Total Bytes 8

Tabla Compra_Telas

Objetivo: Almacenar la información de cada una de las compras de telas que se

realizan.

Llave primaria: PkCompra(IdCompra) Llave extranjera:

FkProveedor(IdProveedor) se relaciona con el campo IdProveedor en la tabla Proveedor

Campo

Tipo de

Dato

Tamaño Descripción

IdCompra Serial Clave única con la que se identifica cada uno de las compras .

IdProveedor Int Clave única del proveedor

FechaCompra Date 8 Fecha en que la compra de tela fue realizada.

Total float 10 Monto total de la compra

Total Bytes 18

Page 11: Proyecto de base de datos distribuidas

Tabla Venta_Detalle

Objetivo: Almacenar la información de cada una de las prendas que han sido

vendidas.

Llave primaria: Pkventa_detalle(IdVenta_Detalle) Llave extranjera:

FkVenta(IdVenta) se relaciona con el campo IdVenta en la tabla Venta.,

FkPrenda(IdPrenda) se relaciona con el campo IdPrenda en la tabla Prenda.

Campo

Tipo de Dato

Tamaño Descripción

IdVenta_Detalle serial Clave única de cada una de las ventas detalle realizadas.

IdVenta Int Clave única con la que se identifica cada uno de las ventas realizadas.

IdPrenda

Int Clave única con la que se identifican los tipos de prendas que han sido elaborados.

Cantidad Int Cantidad prendas que han sido vendidas.

PrecioUnitario Float 10 Precio da cada prenda.

Total Bytes 10

Page 12: Proyecto de base de datos distribuidas

Tabla Apartados

Objetivo: Almacenar la información de cada uno de los apartados que los

clientes realizan a la sastrería.

Llave primaria: PkApartado(IdApartado) Llave extranjera: FkCliente(IdCliente) se relaciona con el campo IdCLiente en la tabla Cliente. FkPrenda(IdPrenda) se relaciona con el campo IdPrenda de la tabla Prenda.

Campo

Tipo de

Dato

Tamaño Descripción

IdApartado Serial Clave única con la que se identifica cada uno de los apartados

IdCliente Int Clave única con la que se identifica a cada uno de los clientes

IdPrenda Int Clave única con la que se identifican los tipos de prendas que han sido elaborados.

Cantidad Int Cantidad de prendas que han sido apartadas.

Descripcion Char 50 Descripción de cada una de las prendas apartadas

Precio Float 10 Precio de cada una de las prendas.

Total Bytes 60

Tabla Proveedores

Objetivo: Almacenar la información de cada uno de los proveedores de la

sastrería

Llave primaria: PkProveedor(IdProveedor) Llave extranjera:

Campo

Tipo de

Dato

Tamaño Descripción

IdProveedor Serial Clave única con la que se identifica cada uno de los proveedores

NombProveedor Char 20 Nombre del proveedor

Dirección Char 50 Dirección de cada uno de los proveedores

Teléfono Char 20 Teléfono del proveedor

Fax Char 20 Fax del proveedor

Total Bytes 110

Page 13: Proyecto de base de datos distribuidas

Tabla Compra_Detalle

Objetivo: Almacenar la información detallada de cada una de las compras

hechas.

Llave primaria: PkCompradetalle(idCompra_detalle) Llave extranjera:

FkCompra(IdCompra) se relaciona con el campo IdCompra de la tabla Compra_Tela.

Fktela(IdTela) se relaciona con el campo IdTela en la tabla Almacen.

Campo

Tipo de

Dato

Tamaño Descripción

IdCompra_Detalle serial Clave única de cada una de las compras detalle realizadas

IdCompra Int Clave única con la que se identifica cada uno de las compras .

IdTela Int Clave única con la que se identifican las telas dentro del almacén.

Cantidad Int Cantidad de prendas que fueron compradas

PrecioUnitario Float 10 Precio de cada una de las telas compradas

Descripción Char 50 La descripción de cada tela que se ha comprado

Total Bytes 60

Page 14: Proyecto de base de datos distribuidas

Tabla Prendas_Telas

Objetivo: Almacenar la información de cada una de las telas empleadas para

cada una de las prendas

Llave primaria: PkPrendas_Telas(IdMaterial) Llave extranjera:

FkPrenda(IdPrenda) se relaciona con el campo IdPrenda de la tabla Prenda.

FkTela(IdTela) se relaciona con el campo IdTela de la tabla Almacen.

Campo

Tipo de Dato

Tamaño Descripción

IdMaterial serial Clave única para el registro de cada uno de las prendas con su respectivo material

IdPrenda Int Clave única con la que se identifican los tipos de prendas que han sido elaborados

IdTela Int Clave única con la que se identifican las telas dentro del almacén.

Total Bytes 0

Page 15: Proyecto de base de datos distribuidas

CODIGO DE LA BASE DE DATOS POSTGRESQL

/*CREAR TABLA ALMACEN */ CREATE TABLE almacen (idtela serial not null,cantidad int, nombre varchar(20),color varchar(15),largo float,ancho float, CONSTRAINT pktela PRIMARY KEY (idtela)); /*CREAR TABLA PRENDAS */ CREATE TABLE prenda (idprenda serial not null, idtela INT NOT NULL, descripcion varchar(50), color varchar(15),talla varchar (10), CONSTRAINT pkprenda PRIMARY KEY (idprenda)); /*CREAR TABLA SUCURSALES */ CREATE TABLE sucursal (idsucursal serial not null,nombre varchar(20), direccion varchar(30),telefono varchar(20),num_empleados int, horario varchar (10), CONSTRAINT pksucursal PRIMARY KEY (idsucursal)); /*CREAR TABLA CLIENTES */ CREATE TABLE cliente (idcliente serial not null,nombre varchar(30), appaterno varchar(20),apmaterno varchar (20),telefono varchar(20),direccion varchar(50), CONSTRAINT pkcliente PRIMARY KEY (idcliente)); /*CREAR TABLA PROVEEDORES */ CREATE TABLE proveedor (idproveedor serial not null,nomb_proveedor varchar(20), direccion varchar(50),telefono varchar (20),fax varchar(20), CONSTRAINT pkproveedor PRIMARY KEY (idproveedor)); /*CREAR TABLA SASTRE */ CREATE TABLE sastre (idsastre serial not null,nomb_sastre varchar(30), appaterno varchar(20),apmaterno varchar (20),telefono varchar(20), direccion varchar(50),fechaingeso timestamp,fechanacimiento timestamp, salario float,idsucursal INT NOT NULL, CONSTRAINT pksastre PRIMARY KEY (idsastre), CONSTRAINT fksucursal FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal) ON UPDATE CASCADE); /*CREAR TABLA LOTES_FABRICADOS */ CREATE TABLE lotes_fabricados (idlote serial not null,idprenda INT NOT NULL, cantidad_fabricada int,idsucursal INT NOT NULL,idtela INT NOT NULL, fecha_inicio timestamp,fecha_termino timestamp, CONSTRAINT pklote PRIMARY KEY (idlote), CONSTRAINT fkprenda FOREIGN KEY (idprenda) REFERENCES prenda (idprenda), CONSTRAINT fktela FOREIGN KEY (idtela) REFERENCES almacen (idtela), CONSTRAINT fksucursal FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal) ON UPDATE CASCADE);

Page 16: Proyecto de base de datos distribuidas

/*CREAR TABLA TABAJO_SASTRE */ CREATE TABLE trabajo_sastre (idtrabajo serial not null,idsastre INT NOT NULL,idlote INT NOT NULL, cant_fabricada int, CONSTRAINT pktrabajo PRIMARY KEY (idtrabajo), CONSTRAINT fksastre FOREIGN KEY (idsastre) REFERENCES sastre (idsastre), CONSTRAINT fklote FOREIGN KEY (idlote) REFERENCES lotes_fabricados (idlote) ON UPDATE CASCADE); /*CREAR TABLA VENTAS*/ CREATE TABLE venta (idventa serial not null,fecha_venta timestamp, idsucursal INT NOT NULL, idcliente INT NOT NULL, CONSTRAINT pkventa PRIMARY KEY (idventa), CONSTRAINT fksucursal FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal), CONSTRAINT fkcliente FOREIGN KEY (idcliente) REFERENCES cliente (idcliente) ON UPDATE CASCADE); /*CREAR TABLA COMPRA_TELAS*/ CREATE TABLE compra_tela (idcompra serial not null, idproveedor INT NOT NULL,fecha_compra timestamp,total float, CONSTRAINT pkcompra PRIMARY KEY (idcompra), CONSTRAINT fkproveedor FOREIGN KEY (idproveedor) REFERENCES proveedor(idproveedor) ON UPDATE CASCADE); /*CREAR TABLA VENTA_DETALLE*/ CREATE TABLE venta_detalle (idventa_detalle serial not null, idventa INT NOT NULL, idprenda INT NOT NULL,cantidad int,precio_unitario float, CONSTRAINT pkventa_detalle PRIMARY KEY (idventa_detalle), CONSTRAINT fkventa FOREIGN KEY (idventa) REFERENCES venta (idventa), CONSTRAINT fkprenda FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE); /*CREAR TABLA APARTADOS*/ CREATE TABLE apartados (idapartado serial not null, idcliente INT NOT NULL,idprenda INT NOT NULL,cantidad int, descrpcion varchar (50), precio float, CONSTRAINT pkapartado PRIMARY KEY (idapartado), CONSTRAINT fkcliente FOREIGN KEY (idcliente) REFERENCES cliente (idcliente), CONSTRAINT fkprenda FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE); /*CREAR TABLA COMPRA_DETALLE*/ CREATE TABLE compra_detalle (idcompra_detalle serial not null, idcompra INT NOT NULL, idtela INT NOT NULL,cantidad int, descripcion varchar (50), precio_unitario float, CONSTRAINT pkcompra_detalle PRIMARY KEY (idcompra_detalle), CONSTRAINT fkcompra FOREIGN KEY (idcompra) REFERENCES compra_tela (idcompra),

Page 17: Proyecto de base de datos distribuidas

CONSTRAINT fktela FOREIGN KEY (idtela) REFERENCES almacen (idtela) ON UPDATE CASCADE); /*CREAR TABLA PRENDAS_TELAS*/ CREATE TABLE prendas_telas (idmaterial serial not null, idprenda INT NOT NULL, idtela INT NOT NULL, CONSTRAINT pkmaterial PRIMARY KEY (idmaterial), CONSTRAINT fkprenda FOREIGN KEY (idprenda) REFERENCES prenda (idprenda), CONSTRAINT fktela FOREIGN KEY (idtela) REFERENCES almacen (idtela) ON UPDATE CASCADE);

Page 18: Proyecto de base de datos distribuidas

CODIGO DE LA BASE DE DATOS MySQL

/*CREAR TABLA ALMACEN */ CREATE TABLE almacen (idtela INT NOT NULL AUTO_INCREMENT,cantidad int, material varchar(20),color varchar(15),largo float,ancho float, PRIMARY KEY (idtela)) TYPE=InnoDB; /*CREAR TABLA PRENDAS */ CREATE TABLE prenda (idprenda INT NOT NULL AUTO_INCREMENT, idtela INT NOT NULL, descripcion varchar(50), color varchar(15),talla varchar (10), PRIMARY KEY (idprenda)) TYPE=InnoDB; /*CREAR TABLA SUCURSALES */ CREATE TABLE sucursal (idsucursal INT NOT NULL AUTO_INCREMENT,nombre varchar(20), direccion varchar(30),telefono varchar(20),num_empleados int,horario varchar(10), PRIMARY KEY (idsucursal)) TYPE=InnoDB; /*CREAR TABLA CLIENTES */ CREATE TABLE cliente (idcliente INT NOT NULL AUTO_INCREMENT,nombre varchar(30), appaterno varchar(20),apmaterno varchar (20),telefono varchar(20),direccion varchar(50), PRIMARY KEY (idcliente)) TYPE=InnoDB; /*CREAR TABLA PROVEEDORES */ CREATE TABLE proveedor (idproveedor INT NOT NULL AUTO_INCREMENT,nomb_proveedor varchar(20), direccion varchar(50),telefono varchar (20),fax varchar(20), PRIMARY KEY (idproveedor)) TYPE=InnoDB; /*CREAR TABLA SASTRE */ CREATE TABLE sastre (idsastre INT NOT NULL AUTO_INCREMENT ,nomb_sastre varchar(30), appaterno varchar(15),apmaterno varchar (20),telefono varchar(20), direccion varchar(50),fechaingeso Date,fechanacimiento Date, salario float,idsucursal INT NOT NULL, PRIMARY KEY (idsastre), INDEX(idsucursal), FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA LOTES_FABRICADOS*/ CREATE TABLE lotes_fabricados (idlote INT NOT NULL AUTO_INCREMENT,idprenda INT NOT NULL, cantidad_fabricada int,idsucursal INT NOT NULL,idtela INT NOT NULL, fecha_inicio Date,fecha_termino Date,

Page 19: Proyecto de base de datos distribuidas

PRIMARY KEY (idlote), INDEX (idprenda), INDEX (idtela), INDEX (idsucursal), FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE, FOREIGN KEY (idtela) REFERENCES almacen (idtela) ON UPDATE CASCADE, FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal) ON UPDATE CASCADE ) TYPE=InnoDB; /*CREAR TABLA TABAJO_SASTRE */ CREATE TABLE trabajo_sastre (idtrabajo INT NOT NULL AUTO_INCREMENT,idsastre INT NOT NULL,idlote INT NOT NULL, cant_fabricada int, PRIMARY KEY (idtrabajo), INDEX (idsastre), INDEX (idlote), FOREIGN KEY (idsastre) REFERENCES sastre (idsastre) ON UPDATE CASCADE, FOREIGN KEY (idlote) REFERENCES lotes_fabricados (idlote) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA VENTAS*/ CREATE TABLE venta (idventa INT NOT NULL AUTO_INCREMENT,fecha_venta Date, idsucursal INT NOT NULL, idcliente INT NOT NULL, PRIMARY KEY (idventa), INDEX (idsucursal), INDEX (idcliente), FOREIGN KEY (idsucursal) REFERENCES sucursal (idsucursal) ON UPDATE CASCADE, FOREIGN KEY (idcliente) REFERENCES cliente (idcliente) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA COMPRA_TELAS*/ CREATE TABLE compra_tela (idcompra INT NOT NULL AUTO_INCREMENT, idproveedor INT NOT NULL,fecha_compra Date,total float, PRIMARY KEY (idcompra), INDEX (idproveedor), FOREIGN KEY (idproveedor) REFERENCES proveedor(idproveedor) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA VENTA_DETALLE*/ CREATE TABLE venta_detalle (idventa_detalle INT NOT NULL AUTO_INCREMENT, idventa INT NOT NULL,idprenda INT NOT NULL,cantidad int,precio_unitario float, PRIMARY KEY (idventa_detalle), INDEX (idventa), INDEX(idprenda), FOREIGN KEY (idventa) REFERENCES venta (idventa) ON UPDATE CASCADE, FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA APARTADOS*/ CREATE TABLE apartado (idapartado INT NOT NULL AUTO_INCREMENT, idcliente INT NOT NULL ,idprenda INT NOT NULL ,cantidad int, descrpcion varchar (50), precio float, PRIMARY KEY (idapartado), INDEX(idcliente), INDEX(idprenda), FOREIGN KEY (idcliente) REFERENCES cliente (idcliente) ON UPDATE CASCADE,

Page 20: Proyecto de base de datos distribuidas

FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA COMPRA_DETALLE*/ CREATE TABLE compra_detalle (idcompra_detalle INT NOT NULL AUTO_INCREMENT, idcompra INT NOT NULL,idtela INT NOT NULL,cantidad int, descripcion varchar (50), precio_unitario float, PRIMARY KEY (idcompra_detalle), INDEX (idcompra), INDEX (idtela), FOREIGN KEY (idcompra) REFERENCES compra_tela (idcompra) ON UPDATE CASCADE, FOREIGN KEY (idtela) REFERENCES almacen (idtela) ON UPDATE CASCADE) TYPE=InnoDB; /*CREAR TABLA PRENDAS_TELAS*/ CREATE TABLE prendas_telas (idmaterial INT NOT NULL AUTO_INCREMENT, idprenda INT NOT NULL, idtela INT NOT NULL, PRIMARY KEY (idmaterial), FOREIGN KEY (idprenda) REFERENCES prenda (idprenda) ON UPDATE CASCADE, FOREIGN KEY (idtela) REFERENCES almacen (idtela) ON UPDATE CASCADE) TYPE=InnoDB;

Page 21: Proyecto de base de datos distribuidas

Sastre

Almacén

IdTela

Cantidad

Material

Color

Largo Ancho

21 1500 Algodón Blanco 150 100

22 500 Poliéster Rojo 200 100

23 150 Nylon Negro 150 150

Prendas

IdPrenda

Descripción

Color

Talla

31 Blusa de… Azul 32

32 Pantalón … Negro 30

33 Camisa… Roja 32

Sucursales

IdSucursal

Nombre

Dirección

Teléfono

Numeroempleados

Horarios

10 Mañanero Centro… 1235689 18 9:00-14:00

11 Clothes Xoxo 1258479 29 6:00:14:00

15 Sastre 1 Reforma 3698745 32 8:00-17:00

Lotes_fabricados

IdLote

CantidadFabricada

IdPrenda

IdTela

IdSucursal

FichaInicio

FechaTermino

41 500 31 21 10 25/12/08 01/01/09

42 200 31 21 10 12/04/09 15/04/09

43 350 32 23 15 15/05/09 20/05/09

IdSastre

Nombresastre

APSastre

AMSastre

Teléfono

Dirección

FechaIngreso

FechaNacimiento

Salario

IdSucursal

1 Jorge García Juárez 1236587

Centro 01/02/09 12/12/80 1500 10

2 Lorenzo Aparicio

Méndez

8956478

xoxo 03/04/09 13/08/81 1500 10

3 Javier López López 8547921

Jalpan 25/11/05 10/12/75 2000 15

4 Antonio Cu Aguilar 1256893

Zaachila

15/03/08 07/09/80 1800 15

Page 22: Proyecto de base de datos distribuidas

Trabajo_sastre

No_trabajo

IdSastre

IdLote

CantidadFabricada

51 1 41 500

52 1 42 200

53 2 43 350

Clientes

IdCliente

Nombre

APPaterno

ApMaterno

Teléfono

Dirección

61 Miguel Rojas Machuca 4582168 Centro…

62 Ana Gomez Diaz 4785968 Xoxo

63 Fabiola Cruz Perez 4589765 Reforma

Ventas

IdVenta

FechaVenta

IdSucursal

IdCliente

71 23/02/09 10 51

72 114/05/09 10 51

73 01/01/09 15 53

Venta_detalle

IdVentaDetalle IdVenta

IdPrenda

Cantidad

PrecioUnitario

15 71 31 6 50

16 72 31 8 60

17 71 31 2 75

Apartados

IdApartado

IdCliente

IdPrenda

Cantidad

Precio

Descripción

81 61 31 2 100 Blusa…

82 63 31 2 100 Blusa…

83 61 33 5 250 Camisa…

Proveedores

Id_Proveedor

NomProveedor

Direccion

Telefono

Fax

91 Casa sastre Centro… 1238497 1238497

92 Mexicana 5 Señores 9763198 9763198

93 Telas sr Sta. Rosa 7961358 7961358

Page 23: Proyecto de base de datos distribuidas

CompraTelas

IdCompra

PrecioUnitario

FechaCompra

Id_Proveedor

Total

101 50 25/04/09 91 2000

102 100 25/05/09 91 1000

103 25 30/01/09 90 100

CompraDetalle

IdCompra

IdTela

Cantidad

Descripcion

PrecioUnitario

101 21 20 Tela de… 50

102 22 1000 Tela de… 100

103 22 4 Tela de… 25

PrendasTelas

IdMaterial

IdPrenda

IdTela

10 33 21

11 33 22

12 38 4

Page 24: Proyecto de base de datos distribuidas

DIAGRAMA ENTIDAD-RELACIÓN

Lotes_fabric

Sastre

Cod_sastre Nomb_satre

Fecha_ing Fecha_nac

Salario Teléfono

Trabaja Sucursales

Cod_sucursal Dirección

Teléfono Num_emp

Nombre Horario

Realiza

No_lote Cant_fab

Fec_inicio Fec_ter

Da

Usa Almacén

Cod_tela Material

Cantidad Color

Largo Ancho

Hace

Compra_telas

Id_compra Fecha

Detalle

Compra_det

Tipo

Cantidad

Precio

Fabrica

Prendas

Cod_prenda Descrip

Cant_elab Color

Hechas

Entrega

Son

Apartados

Num_apart Cantidad

Precio

Descripción

Para Clientes

Cod_cliente Teléfono

Nombre

Tiene Ventas Detalle

Ventas_det

Para

No_pedido

Fecha

Precio Cant

Descrip

1

1

En 2

2

Están

3

2

3

2

Proveedores

Al los

4

1

4

1

Id_proveed Nombre

Page 25: Proyecto de base de datos distribuidas

MODELO RELACIONAL

IdSastre Nombresastre APSastre AMSatre Teléfono Dirección FechaIngreso FechaNacimiento Salario IdSucursal

Sastre

IdTela Cantidad Material Color Largo Ancho

Almacén

IdPrenda Descripción Color Talla

Prendas

IdSucursal Nombre Direccion Telefono NumeroEmpleados Horarios

Sucursales

No_trabajo IdSastre IdLote CantidadFabricada

TrabajoSastre

IdCliente Nombre APPaterno ApMaterno Teléfono Dirección

Clientes

IdVenta FechaVenta IdSucursl IdCliente

Ventas

IdCompra PrecioUnitario FechaCompra Id_Proveedor Total

CompraTelas

IdVenta IdPrenda Cantidad PrecioUnitario

VentaDetalle

IdCompra IdTela Cantidad Descripcion

PrecioUnitario

CompraDetalle

IdApartado IdCliente IdPrenda Cantidad Precio Descripcion

Apartados

Id_Proveedor

NomProveedor

Direccion

Telefono

Fax

Proveedores

IdLote CantidadFabricada IdPrenda IdTela IdSucursal FichaInicio FechaTermino

LotesFabricados

IdMaterial

IdPrenda

IdTela

PrendasTelas

Page 26: Proyecto de base de datos distribuidas

MODELO ENTIDAD-RELACION CON DATOS