Está en la página 1de 3

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

SELECT * FROM tbDetallePedido


GO

También podría gustarte