0% encontró este documento útil (0 votos)
56 vistas5 páginas

Base de Datos Distribuida para Tienda

Este documento presenta un esquema de base de datos distribuida para una tienda departamental con cinco tablas. Propone fragmentar las tablas horizontalmente por atributos como tipo de departamento, ciudad de proveedor, rango de edad y rango de fecha y precio. Incluye comandos SQL para crear las tablas y particiones, e insertar datos de prueba.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
56 vistas5 páginas

Base de Datos Distribuida para Tienda

Este documento presenta un esquema de base de datos distribuida para una tienda departamental con cinco tablas. Propone fragmentar las tablas horizontalmente por atributos como tipo de departamento, ciudad de proveedor, rango de edad y rango de fecha y precio. Incluye comandos SQL para crear las tablas y particiones, e insertar datos de prueba.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad de las Fuerzas Armadas ESPE

Sede Latacunga

Integrantes:Jaime Pérez Curso: Sexto “A” Carrera: Software


Ana Sáncehz
Sebastián Soberón

NRC: 5263 Asignatura:Sistemas Fecha: 15/07/2021


Avanzados de Base de
Datos.

Ejercicio: Base de datos distribuidas de una tienda departamental

Considere el siguiente esquema conceptual global de una base de datos:


Empleado (idEmp, nombre, salario, idDepto, cargo, edad) (RANGO)
Departamento (idDepto, nombre, tipo) (LISTA)
Proveedor (idProv, nombre, ciudad, tipo) (LISTA)
Producto (idProd, idProv, idDepto, tipo, cantidad) (LISTA)
LineaFactura (idFactura, nroLinea, idProducto, cantida, precio, fecha) (RANGO)
Se desea fragmentar la base de datos y convertirla en una base de datos distribuida en
diversos nodos, considerando que cada departamento será un nodo. Los empleados están
distribuidos por departamentos y existirán aplicaciones de cualquier departamento que
necesitan consultar información de los empleados y productos.
Asuma que sólo existen tres departamentos: Deportes, Juguetería y Ropa; cuatro tipos de
cargos de empleados: Administrativo, Vendedor, Gerente y Técnico; y los proveedores son
de dos ciudades: Guadalajara y Monterrey.
Se solicita llenar las tablas con registros para facilitar la fragmentación.

Para la Creación de Tablas:

CREATE TABLE empleado


(
idEmp integer NOT NULL,
nombre text,
salario float4,
iddepto integer NOT NULL,
cargo text,
edad numeric
);
CREATE TABLE departamento
(
idDepto integer NOT NULL,
nombre text,
tipo text
) PARTITION BY LIST (tipo);
CREATE TABLE proveedor
(
idProv integer NOT NULL,
nombre text,
ciudad text,
tipo text
)PARTITION BY LIST (ciudad);
CREATE TABLE producto
(
idProd integer NOT NULL,
idProv integer NOT NULL,
idDepto integer NOT NULL,
tipo text,
cantidad numeric
);
CREATE TABLE LineaFactura
(
idFactura integer NOT NULL,
nroLinea numeric,
idProd integer NOT NULL,
cantidad numeric,
precio float4,
fecha date
);

Inserción de Datos en las tablas


INSERT INTO empleado VALUES ('Anita','1200','Administrativo','24');
INSERT INTO empleado VALUES ('Chevas','1500','Vendedor','20');
INSERT INTO empleado VALUES ('Lina','1000','G
INSERT INTO empleado VALUES ('Lina','1000','Gerente','30');
INSERT INTO empleado VALUES ('Luis','500','Tecnico','21');

Insertar Datos a las particiones

INSERT INTO empleado VALUES ('Anita','1200','Administrativo','24');


INSERT INTO empleado VALUES ('Chevas','1500','Vendedor','20');
INSERT INTO empleado VALUES ('Lina','1000','Gerente','30');
INSERT INTO empleado VALUES ('Luis','500','Tecnico','21');
INSERT INTO producto VALUES ('Carro','20');
INSERT INTO producto VALUES ('Avion','40');
INSERT INTO departamento VALUES ('Naka','Deportes');
INSERT INTO departamento VALUES ('Jogueyon','Jugueteria');
INSERT INTO departamento VALUES ('Adibos','Ropa')

Realizar las siguientes fragmentaciones:

1. Fragmentar de forma horizontal la tabla departamento por el tipo de departamento


(Deportes, Juguetería y Ropa).

CREATE TABLE tip_depa_deportes PARTITION OF departamento FOR


VALUES IN ('deportes');
CREATE TABLE tip_depa_jug PARTITION OF departamento FOR VALUES IN
('jugueteria');
CREATE TABLE tip_depa_ropa PARTITION OF departamento FOR VALUES IN
('ropa');

Creación de Particiones

CREATE TABLE empleado


(
idEmp serial,
nombre text,
salario float4,
iddepto serial,
cargo text,
edad numeric
)PARTITION BY RANGE(edad);
CREATE TABLE departamento
(
idDepto serial,
nombre text,
tipo text
) PARTITION BY LIST (tipo);
CREATE TABLE proveedor
(
idProv serial,
nombre text,
ciudad text,
tipo text
)PARTITION BY LIST (ciudad);
CREATE TABLE producto
(
idProd serial,
idProv serial,
idDepto serial,
tipo text,
cantidad numeric
)PARTITION BY LIST (ti
CREATE TABLE producto
(
idProd serial,
idProv serial,
idDepto serial,
tipo text,
cantidad numeric
)PARTITION BY LIST (tipo);
CREATE TABLE LineaFactura
(
idFactura serial,
idProd serial,
nroLinea numeric,
cantidad numeric,
precio float4,
fecha date
)PARTITION BY RANGE (precio,fecha);

2. Fragmentar de forma horizontal el proveedor por la ciudad (Guadalajara, Monterrey).

CREATE TABLE prov_city_gud PARTITION OF proveedor FOR VALUES IN ('Guadalajara');


CREATE TABLE prov_city_mon PARTITION OF proveedor FOR VALUES IN ('Monterrey');
4. Fragmentación de la línea Factura por:

- Facturas cuando el precio sea mayor a 10 USD y la fecha sea mayor a julio de 2021

CREATE TABLE public precio_mayor PARTITION OF public Lineafactura


FOR VALUES FROM ('2020-07-02') TO ('2020-07-03')

- Facturas cuando el precio sea menor a 10 USD y la fecha sea menor a julio de 2021

CREATE TABLE public precio_mayor PARTITION OF public Lineafactura


FOR VALUES FROM ('2021-06-02') TO ('2021-07-03')

También podría gustarte