Sei sulla pagina 1di 3

LABORATORIO DE BASES DE DATOS

Docente: Jesús Reyes Carvajal

De acuerdo a la siguiente descripción de la creación de una base de datos para una empresa,
presente un informe escrito paso a paso de las evidencias (pantallazos) que va a tener en
cuenta para la creación de la base de datos y el cargue de los datos.

Las evidencias deben mostrar ademas la cantidad de datos cargados en cada entidad.

Nota: El informe debe ser original del estudiante quien lo desarrollo.

Briza, S.L. es una empresa de nueva creación que desea desarrollar un sistema informático
para su gestión. La empresa pertenece al sector textil y según su plan de negocio, contará con
diversas fábricas para producir sus distintas líneas de productos, tendrá tiendas propias y una
sede central con sus correspondientes departamentos.

El número de empleados será creciente y cada uno de ellos se asignará a una de las líneas
de producción de las fábricas, a uno de los puestos de trabajo de la sede central, o a uno de
los puestos de trabajo de alguna de las tiendas. Los empleados podrán ser cambiados de tipo
de trabajo (cajero, vendedor, ...), como de centro de trabajo/tienda, por lo que se deberá
conservar la fecha inicial y final de cada una de las posibles asignaciones, así como el jefe
que han tenido durante dichos periodos. No cabe mencionar que de cada empleado se desea
disponer de sus datos personales básicos y los relativos a la alta en la empresa (número de
trabajador, fecha alta, fecha baja, ...).

Se desea poder realizar el seguimiento de donde se ha fabricado cada una de las gamas de
productos y se desea tener constancia de la ubicación de cada producto individual (a efectos
poder realizar inventarios). Adicionalmente, cada producto pertenecerá a un 'familia de
productos' y a una temporada (no es necesario considerar posibles estructuras de datos para
almacenar los datos de tallas y colores).

Las ventas de los productos se realizarán a clientes identificados (se desea poder almacenar
sus datos para promociones), o a clientes genéricos (a efectos de simplificar, cliente con el
número '0'). Puesto Briza desea facilitar las posibles devoluciones o cambios de los productos,
se desea que cada uno de dichos productos esté identificado con un número único (constará
en su etiqueta), a efectos evitar que los clientes tengan que mostrar el ticket de compra al
realizar las devoluciones o los cambios.

De cada compra se debe almacenar la fecha, el identificador del producto, el empleado que ha
realizado la venta y el cliente.
SCRIPT DE CREACION DE ALGUNAS TABLAS O RELACIONES

CREATE TABLE wrkc_area (


id DECIMAL(6,0),
id_work_center DECIMAL(6,0),
id_area DECIMAL (6,0),
CONSTRAINT pk_id PRIMARY KEY (id),
CONSTRAINT ak_wrkc_area UNIQUE (id_work_center, id_area),
CONSTRAINT fk_id_work_center FOREIGN KEY (id_work_center) REFERENCES work_center(id),
CONSTRAINT fk_id_area FOREIGN KEY (id_area) REFERENCES area (id));

CREATE TABLE empl_job (


id DECIMAL(6,0),
id_employee DECIMAL(6,0),
id_job DECIMAL(6,0),
start_date_assign DATE,
id_wrkc_area DECIMAL(6,0),
id_boss DECIMAL(6,0),
end_date_assign DATE,
CONSTRAINT nn_id_employee CHECK (id_employee IS NOT NULL),
CONSTRAINT nn_id_job CHECK (id_job IS NOT NULL),
CONSTRAINT nn_id_wrkc_area CHECK (id_wrkc_area IS NOT NULL),
CONSTRAINT fk_id_employee FOREIGN KEY (id_employee) REFERENCES employee(id),
CONSTRAINT fk_id_job FOREIGN KEY (id_job) REFERENCES job(id),
CONSTRAINT fk_id_wrkc_area FOREIGN KEY (id_wrkc_area) REFERENCES wrkc_area(id),
CONSTRAINT fk_id_boss FOREIGN KEY (id_boss) REFERENCES empl_job(id),
CONSTRAINT ch_dates CHECK((start_date_assign IS NOT NULL) AND (end_date_assign IS NULL OR
end_date_assign > start_date_assign)),
CONSTRAINT pk_empl_job PRIMARY KEY (id),
CONSTRAINT un_empl_job UNIQUE (id_employee, id_job, start_date_assign));

CREATE TABLE work_center (


id DECIMAL(6,0),
name VARCHAR(40),
CONSTRAINT nn_name CHECK (name IS NOT NULL),
CONSTRAINT nn_id CHECK (id IS NOT NULL),
CONSTRAINT pk_work_center PRIMARY KEY (id));

CREATE TABLE area (


id DECIMAL(6,0),
description VARCHAR(40),
CONSTRAINT nn_id CHECK (id IS NOT NULL),
CONSTRAINT nn_description CHECK (description IS NOT NULL),
CONSTRAINT pk_area PRIMARY KEY (id));

*NOTA: en emp_job 'puede' faltar alguna relación y/o restricción

Teniendo en cuenta el modelo entidad relación y el modelo relacional, cargue los datos para
las siguientes tablas:
Tabla JOB
Para cargar la tabla job se debe considerar que la misma permite almacenar un identificador (decimal(6,0)) y la descripción
del tipo de trabajo (hasta 40 caracteres). Creada adecuadamente la tabla, cargue los datos desde un 'shell' o 'símbolo del
sistema' con las instrucciones:

pg_restore --dbname=postgres --data-only --username=postgres --verbose "job.backup"

Adaptándolas según el nombre de la base de datos, usuario y ubicación del fichero en el sistema (y otras particularidades,
de ser necesario).

CREATE TABLE load_person (


id_person INEGER,
ipf CHAR (15),
name CHAR (30),
surname CHAR (50),
address CHAR (50),
postal_code CHAR (10),
gender CHAR (2),
phone_number CHAR (15),
birth_date DATE,
dead_date DATE,
id_client INTEGER,
total_purchase NUMERIC(8,3),
id_employee INTEGER,
start_date DATE,
end_date DATE
);

copyload_person from ‘load_person.txt’;


Tabla PERSON
A partir de los datos contenidos en load_person, cargue los datos referentes a las personas, en la tabla person.

Tabla EMPLOYEE
A partir de los datos contenidos en load_person, cargue en la tabla employee los datos referentes a los trabajadores.

Tabla CLIENT
A partir de los datos contenidos en load_person, cargue los datos referentes a los clientes en la tabla client.

Tabla WORK_CENTER, AREA, WRKC_AREA y EMPL_JOB


Utilice la utilidad psql y analizando el contenido del fichero wrkc_area.dmp, realice la
ejecución de dicho fichero a efectos de insertar los datos en las tablas work_center, area,
wrkc_area y empl_job.

Tabla LOAD_PRODUCTS
Cree la tabla según los campos que se pueden entrever en el fichero 'load_products.txt'.

Tabla PRODUCT
A partir de les datos contenidos en load_products, cargue los datos referentes a los diferentes productos en la tabla
products.

Tabla PRODUCT_UNIT
A partir de los datos contenidos en el fichero product_unit.txt, cargue los datos referentes a los productos que la empresa ha
producido y que tiene a la venta o ha vendido.

Tabla SALE
A partir de los datos contenidos en el fichero sale.txt, cargue los datos referentes a las ventas realizadas en las tiendas.

Potrebbero piacerti anche