Crear la Base de datos Negocio, con dos archivos (mdf y ldf)
Según el siguiente Modelo Físico, construir las tablas y sus relaciones.
Implementar los siguientes requerimientos:
La fecha del pedido predeterminada es la fecha del sistema.
El Precio de un artículo debe ser mayor a cero.
El nombre de un artículo no se puede repetir.
Ingresar registros de prueba, para comprobar los constraints que se han implementado.
SOLUCION:
-- CREACION DE BASE DE DATOS
USE MASTER GO CREATE DATABASE Negocio ON PRIMARY (NAME = Biblio_Dat, FILENAME='C:\MisDatos\Negocio_Dat.mdf', SIZE = 5MB, MAXSIZE = 200, FILEGROWTH = 1MB) LOG ON (NAME = Biblio_Log, FILENAME ='C:\MisDatos\Negocio_Log.ldf', SIZE = 1MB, MAXSIZE = 100, FILEGROWTH= 1MB) GO
USE Negocio GO
CREATE TABLE tbCliente
( idCliente char(5) not null, nomCli varchar(20) not null, DirCli varchar(20) not null ) GO ALTER TABLE tbCliente ADD CONSTRAINT pk_idCliente PRIMARY KEY (idCliente) GO CREATE TABLE tbPedido ( idPedido char(10) not null, fechaPed datetime not null, montoPed money not null, idCliente char(5) not null ) GO ALTER TABLE tbPedido ADD CONSTRAINT pk_idPedido PRIMARY KEY (idPedido) GO ALTER TABLE tbPedido ADD CONSTRAINT df_fechaPed DEFAULT GETDATE() FOR fechaPed GO ALTER TABLE tbPedido ADD CONSTRAINT fk_tbPedido_tbCliente FOREIGN KEY (idCliente) REFERENCES tbCliente (idCliente) GO
CREATE TABLE tbArticulo
( idArticulo char(5) not null, nomArt varchar(20) not null, precioArt money not null ) GO ALTER TABLE tbArticulo ADD CONSTRAINT pk_idArticulo PRIMARY KEY (idArticulo) GO ALTER TABLE tbArticulo ADD CONSTRAINT ck_precioArt CHECK (precioArt > 0) GO ALTER TABLE tbArticulo ADD CONSTRAINT uq_nomArt UNIQUE (nomArt) GO
CREATE TABLE tbDetallePedido
( idPedido char(10) not null, idArticulo char(5) not null, cantPed int not null, preVen money not null ) GO ALTER TABLE tbDetallePedido ADD CONSTRAINT pk_idPedido_idArticulos PRIMARY KEY (idPedido, idArticulo) GO ALTER TABLE tbDetallePedido ADD CONSTRAINT fk_tbDetallePedido_tbPedido FOREIGN KEY (idPedido) REFERENCES tbPedido (idPedido) GO ALTER TABLE tbDetallePedido ADD CONSTRAINT fk_tbDetallePedido_tbArticulo FOREIGN KEY (idArticulo) REFERENCES tbArticulo (idArticulo) GO
-- CONSULTAS DE PRUEBA USE Negocio GO
-- Se agrega un registro en la tabla tbCliente
INSERT INTO tbCliente (idCliente, nomCli, dirCli) VALUES (1, 'EDUARDO CAMPOS', 'Av. Venezuela 1234') GO
SELECT * FROM tbCliente
GO
-- Se prueba el constraint DEFAULT
INSERT INTO tbPedido (idPedido, montoPed, idCliente) VALUES (1, 120, 1) GO
SELECT * FROM tbPedido
GO
-- Se prueba el constraint CHECK. Este INSERT debe fallar
INSERT INTO tbArticulo (idArticulo, nomArt, precioArt) VALUES (1, 'Televisor Plasma 23"', -8.50) GO
SELECT * FROM tbArticulo
GO
-- Se prueba el constraint UNIQUE. No debe permitir agregar
-- dos articulos con el mismo nombre INSERT INTO tbArticulo (idArticulo, nomArt, precioArt) VALUES (1, 'Laptop Sony', 1500) GO INSERT INTO tbArticulo (idArticulo, nomArt, precioArt) VALUES (2, 'Laptop Sony', 650) GO
SELECT * FROM tbArticulo
GO
-- Por ultimo, se agrega un registro en la tabla tbDetallePedido
INSERT INTO tbDetallePedido (idPedido, idArticulo, cantPed, preVen) VALUES (1, 1, 3, 462.30) GO