Está en la página 1de 3

TALLER LENGUAJE DE DEFINICIÓN DE DATÓS - DDL

Se debe desarrollar un sistema para el registro de compras y ventas de una empresa de perfumes. Se
tienen en cuenta los siguientes supuestos:

1. La empresa se encarga de la venta de perfumes que son de diversas fragancias. Cada perfume
tiene un código único y un nombre.
2. Cada perfume está compuesto de diversas fragancias las cuales dan el aroma al producto. Es
importante saber además la cantidad de fragancia de cada producto, por si es necesario
prepararlos.
3. Hay perfumes que se importan, pero hay perfumes “Made in Cúcuta”.
4. Un perfume se puede vender en presentaciones de diversos tamaños, pero por ahora solo se
tienen definidas las siguientes presentaciones:
a. Vidrio de 50ml
b. Vidrio de 100ml
c. Vidrio de 200ml
d. Vidrio de 500ml
e. Vidrio de 1L
Igual las presentaciones pueden aumentar o disminuir, para lo cual se debe pensar en
deshabilitar las presentaciones en caso de ser necesario.
5. A la perfumería le interesa guardar el listado de sus clientes, de los cuales se deben registrar
los datos básicos y necesarios para las campañas de promoción de sus productos.
6. La empresa es régimen simplificado, pero está obligada a entregar facturas por cada venta que
realiza. Un cliente puede comprar diversos perfumes en una única venta.
7. Cada venta es realizada por un empleado y es importante saber las ventas realizadas por cada
empleado.
8. Hay diversos reportes necesarios, como :
a. La factura del venta
b. Listado de empleados
c. Listado de perfumes
d. Número de ventas de perfume por presentación, así como cantidad vendida por cada
perfume.
e. Listado de clientes
f. Listado de ventas con el total de las mismas en un rango de fechas
g. Listado de ventas por empleado

a. Definición de modelo de datos


El modelo lógico se observa en la siguiente imagen:
b. Codigo DDL de las estructuras de datos
CREATE TABLE perfume
( id numeric(3) PRIMARY KEY,
nombre varchar(50) ,
descripcion varchar(250) ,
valor numeric(9),
stock numeric(6)
);

CREATE TABLE fragancia


( id serial NOT NULL DEFAULT nextval(('fragancia_id_seq'::text)::regclass),
nombre varchar(50) ,
descripcion varchar(250)
);

ALTER TABLE fragancia ADD CONSTRAINT fragancia_pk


PRIMARY KEY (id);

CREATE TABLE perfume_fragancia


( perfume integer NOT NULL,
fragancia integer NOT NULL,
cantidad numeric(6),
id serial DEFAULT nextval(('perfume_fragancia_id_seq'::text)::regclass)
);

ALTER TABLE perfume_fragancia ADD CONSTRAINT perf_fragac_pk


PRIMARY KEY (perfume,fragancia);

ALTER TABLE perfume_fragancia ADD CONSTRAINT FK_perfume_fragancia_fragancia


FOREIGN KEY (id) REFERENCES fragancia (id) ON DELETE Cascade ON UPDATE Cascade;

ALTER TABLE perfume_fragancia ADD CONSTRAINT FK_perfume_fragancia_perfume


FOREIGN KEY (id) REFERENCES perfume (id) ON DELETE Restrict ON UPDATE Restrict;

También podría gustarte