Está en la página 1de 5

ALUMNO : RONCAL GASLAC, HAROLD IVAN

Se tiene el siguiente Modelo relacional de una Base de datos. Base de datos que registra
información de ventas y reclamos de productos defectuosos

Asuma los tipos de datos adecuados para el registro de información en el modelo propuesto.

Se pide:

1. Implemente la BD (Script e Imagen del modelo generado)

create table Empleado(

empleadoID int primary key,

tipo_documento varchar (30) NOT NULL,

numero_documento varchar(8) NOT NULL,

apellidos varchar(50) NOT NULL,

nombres varchar(50) NOT NULL,

sexo char(1) NOT NULL,

correo_institucional varchar(200),

fecha_registro date NOT NULL,

hora_registro time NOT NULL,

codigo_ubigeo varchar(10),

direccion_residencia varchar(300),

telefono_movil char(9),

estado_empleado char(1) NOT NULL


);

create table Venta(

ventaID int primary key,

fecha_venta date ,

hora_venta time,

tipo_comprobante varchar(10) NOT NULL,

forma_pago varchar(10) NOT NULL,

importe_venta money NOT NULL,

importe_igv money NOT NULL,

monto_total_venta money NOT NULL,

estado_venta varchar(10) NOT NULL,

empleadoID int NOT NULL,

constraint fk1_Venta foreign key (empleadoID) references Empleado (empleadoID)

);

create table Categoria(

categoriaID int primary key,

nombre_categoria varchar(100) NOT NULL

);

create table Producto(

productoID int primary key,

nombre_producto varchar(100) NOT NULL,

precio_unidad money NOT NULL,

costo_unidad money ,

unidades_existencia int NOT NULL,

estado_producto varchar(10) NOT NULL,

producto_ProductoID int NOT NULL,

categoriaID int NOT NULL,

fecha_registro_producto date NOT NULL,

fecha_baja date NOT NULL

constraint fk1_Producto foreign key (producto_ProductoID) references Producto (productoID),


constraint fk2_Producto foreign key (categoriaID) references Categoria (categoriaID)

);

create table Detalle_Venta(

Venta_ventaID int NOT NULL,

productoID int NOT NULL,

unidades_vendidas int NOT NULL,

precio_venta money NOT NULL,

constraint pk_Detalle_Venta

primary key(Venta_ventaID,productoID),

constraint fk1_Detalle_venta foreign key (Venta_ventaID) references Venta (ventaID),

constraint fk2_Detalle_venta foreign key (productoID) references Producto (productoID)

);

create table Motivo_Reclamo(

motivoID int primary key,

descripcion_reclamo varchar (200)

);

create table Reclamo_Venta(

reclamoID int primary key,

fecha_reclamo date NOT NULL,

hora_reclamo time NOT NULL,

descripcion_reclamo varchar(200),

fecha_solucion date,

estado_reclamo varchar(10),

ventaID int NOT NULL,


productoID int NOT NULL,

motivoID int NOT NULL,

constraint fk1_Reclamo_Venta foreign key (ventaID) references Venta (ventaID),

constraint fk2_Reclamo_Venta foreign key (productoID) references Producto (productoID),

constraint fk3_Reclamo_Venta foreign key (motivoID) references Motivo_Reclamo (motivoID)

);

2. Implemente las siguiente restricciones según las tablas siguientes


Tabla Empleado
Campos Restricciones
empleadoID
tipo_documento Existen tres tipo: DNI, Pasaporte, Cedula de extranjería

alter table Empleado add constraint CHK_TipoDoc CHECK (tipo_documento in


('dni','pasaporte','carnet de extranjeria'));

Numero_documento Solo dígitos

ALTER TABLE Empleado ADD CONSTRAINT CHK_NumDoc CHECK


(numero_documento similar TO '[[:DIGIT:]]*' );
Apellidos
Nombres
Sexo Masculino o Femenino

alter table Empleado add constraint CHK_Sexo CHECK (sexo in ('M','F'));

Correo_institucional Solo correos válidos(@,.)

alter table Empleado add CONSTRAINT CHK_Corre CHECK (correo_institucional


~* '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$');

Fecha_registro Fecha del sistema

alter table Empleado alter column fecha_registro set DEFAULT Current_DAte;


Hora_registro Hora del sistema
alter table Empleado alter column hora_registro set DEFAULT Current_Time;
Codigo_ubigeo En el Perú son 6 dígitos e identifica a cada distrito
Alter table Empleado add constraint CHK_CodUbi CHECK (codigo_ubigeo >0)
Dirección_residencia
Teléfono_movil
Estado_empleado El empleado, puede ser un empleado activo e inactivo.

Tabla Venta
Campos Restricciones
ventaID
Fecha_venta Fecha del sistema
Hora_venta Hora del sistema
Tipo_comprobante Puede ser Factura, Boleta, Ticket
alter table Venta add constraint ck_venta_forma_pago
Check(Tipo_comprobante in ('F','B', 'T'));
Forma_pago Puede ser Efectivo, Tarjeta de crédito, Tarjeta de débito.
alter table Venta add constraint ck_venta_forma_pago Check(forma_pago in
('E','TC', 'TD'));
Importe_venta
Importe_igv
Monto_total_venta
Estado_venta El estado de una venta puede ser Realizada, Anulada
Empleado_ID

Tabla Producto
Campos Restricciones
productoID
Nombre_producto
Precio_unidad Este precio, siempre tiene que ser mayor que el precio de costo
Costo_unidad
Unidades_existencia NO contempla existencias negativas
Estado_producto Puede ser producto vigente o no vigente
Producto_productoID
categoriaID
Fecha_registro_producto Fecha del sistema
alter table Empleado alter column Fecha_registro_producto set DEFAULT
Current_DAte;
Fecha_baja Esta fecha, es la fecha en el que se deja de trabajar con ese producto.

También podría gustarte