Practica Calificada

Practica Calificada

 

Nombre - Kevin Jeremy Valdez Navarrete

1 - Creación de Usuario (login), crear los siguientes usuarios, todos estos tendrán la misma clave (Clave = 123456)

Usuario

ROLES DE SERVIDOR

ROLES DE BASE DE DATOS

Profesor

sysAdmin

 

2 – Ingresar con el usuario creado anteriormente (profesor), crear el script para la construcción de la siguiente base de datos, con sus respectivas constraint

A – Crear la siguiente base de datos y tabla

 

Nombre de Base de Datos :BDMPractIsil   - Archivo MDF, Tamaño inicial 20MB, Incremento 3, Tamaño Final – 100mb

Detalle de Tablas


Guía_detalle

Atributo

Tipo

Restricción

idguia

int

NOT NULL

idproducto

Int

NOT NULL

precioventa

Money

NOT NULL

cantidad

smallint

NOT NULL

 

Orden_detalle

Atributo

Tipo

Restricción

idorden

Int

NOT NULL

idproducto

Int

NOT NULL

preciocompra

Money

NOT NULL

cantidadsolicitada

Smallint

NOT NULL

cantidadrecibida

Smallint

NULL

estado

varchar(10)

NULL

 

Producto

Atributo

Tipo

Restricción

idproducto

int

IDENTITY

idcategoria

int

NOT NULL

idproveedor

int

NOT NULL

nombre

varchar(40)

NOT NULL

unidadmedida

varchar(30)

NULL

precioproveedor

money

NULL

stockactual

smallint

NULL

stockminimo

smallint

NULL

 

Categoria

Atributo

Tipo

Restricción

idcategoria

int

IDENTITY

categoría

varchar(20)

NOT NULL

descripción

varchar(20)

NULL

 

Guia

Atributo

Tipo

Restricción

idguia

int

NOT NULL

idlocal

int

NOT NULL

fechasalida

datetime

NOT NULL

transportista

varchar(30)

NOT NULL

 

Local

Atributo

Tipo

Restricción

idlocal

int

NOT NULL

dirección

varchar(60)

NULL

distrito

varchar(20)

NULL

teléfono

varchar(15)

NULL

fax

varchar(15)

NULL

 

Orden

Atributo

Tipo

Restricción

idorden

int

NOT NULL

fechaorden

datetime

NOT NULL

fechaentrada

datetime

NULL


Proveedor

Atributo

Tipo

Restricción

idproveedor

int

IDENTITY

nombre

varchar(40)

NOT NULL

representante

varchar(30)

NULL

dirección

varchar(60)

NULL

ciudad

varchar(15)

NULL

departamento

varchar(15)

NULL

codigopostal

varchar(15)

NULL

teléfono

varchar(15)

NULL

fax

varchar(15)

NULL

descontinuado

bit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Respuesta Script –

 


--Creando La BD

CREATE DATABASE BDPractIsil

ON PRIMARY

(

NAME ='BDPractIsil_DATA',

FILENAME='D:PracticaBDPractIsil_DATA.MDF',

SIZE=20MB, --TAMAÑO INICIAL

MAXSIZE=100MB, --TAMAÑO FINAL

FILEGROWTH=3MB) --INCREMENTO DE LA BD

 

LOG ON

(

NAME='BDPractIsil_LOG',

FILENAME='D:PracticaBDPractIsil_DLOG.LDF',

SIZE=5MB, --TAMAÑO INICIAL

MAXSIZE=32MB, --TAMAÑO FINAL

FILEGROWTH=1MB --INCREMENTO DE LA BD

)

 

--VER INFORMACION DE LA BD

SP_HELPDB BDPractIsil

 

------------------------------------------------

USE BDPractIsil

GO

--Creacion de las Tablas

--Guia_Detalle

create table Guia_detalle

(

idguia int not null,

idproducto int not null,

precioventa money not null,

cantidad smallint not null

)

go

 

--Orden_detalle

create table Orden_detalle

(

idorden int not null,

idproducto int not null,

preciocompra money not null,

cantidadsolicitada smallint not null,

cantidadrecibida smallint not null,

estado varchar(10) null

)

go

 

--Producto

create table Producto

(

idproducto int identity (1,1) not null,

idcategoria int not null,

idproveedor int not null,

nombre varchar(40) not null,

unidadmedida varchar(30) null,

precioproveedor money null,

stockactual smallint null,

stockminimo smallint null

)

go

 

 

 

--Proveedor

create table Proveedor

(

idproveedor int identity (1,1) not null,

nombre varchar(40) not null,

representante varchar(30) null,

dirección varchar(60) null,

ciudad varchar(15) null,

departamento varchar(15) null,

codigopostal varchar(15)null,

telefono varchar(15) null,

fax varchar(15) null,

descontinuado bit

)

go

 

--Categoria

create table categoria

(

idcategoria int identity,

categoría varchar(20) not null,

descripcion varchar(20) null,

)

go

 

--Guia

create table guia

(

idguia int not null,

idlocal int not null,

fechasalida datetime not null,

transportista varchar(30) not null

)

go

 

--Local1

create table Local1

(

idlocal int not null,

direccion varchar(60) null,

distrito varchar(20) null,

teléfono varchar(15) null,

fax varchar(15) null

)

go

 

--Orden

create table Orden

(

idorden int not null,

fechaorden datetime not null,

fechaentrada datetime null

)

go


 


B – Crear la siguiente constraint

 

producto

Idproducto

 

Orden_detalle

Idorden

 

 

 

proveedor

Idproveedor

 

Orden_detalle

Idproducto

 

Tabla

Restriccion Check

Mayor a cero

categoria

Idcategoria

 

producto

Idproveedor

 

Producto

stockactual

guia

Idguia

 

producto

Idcategoria

 

 

 

local

Idlocal

 

guia

Idlocal

 

 

 

orden

Idorden

 

 

 

 

 

 

Respuesta Script –

 

--Creando los constraint

 

--llave primaria de producto

alter table Producto

add constraint PK_Producto

Primary key(idproducto)

--

sp_help Producto

--

--llave primaria de proveedor

alter table Proveedor

add constraint PK_Proveedor

Primary key (idproveedor)

--

sp_help Proveedor

--

--llave primaria de categoria

alter table categoria

add constraint PK_categoria

Primary key (idcategoria)

--

sp_help categoria

--

--llave primaria de guia

alter table guia

add constraint PK_guia

Primary key (idguia)

--

sp_help guia

--

--llave primaria de local1

alter table Local1

add constraint PK_Local1

Primary key (idlocal)

--

sp_help Local1

--

--llave primaria de orden

alter table Orden

add constraint PK_Orden

Primary key (idorden)

--

sp_help Orden

--

--LLaves Foraneas

--Tabla Orden_detalle

alter table Orden_detalle

add constraint FK_Orden

foreign key(idorden) --el campo foraneo

references Orden(idorden) --tabla de referencia

 

alter table Orden_detalle

add constraint FK_Orden_2

foreign key(idproducto) --el campo foraneo

references Producto(idproducto) --tabla de referencia

--

sp_help Orden_detalle

--

--tabla Producto

alter table Producto

add constraint FK_Producto

foreign key(idproveedor) --el campo foraneo

references Proveedor(idproveedor) --tabla de referencia

 

alter table Producto

add constraint FK_Producto1

foreign key(Idcategoria) --el campo foraneo

references categoria(Idcategoria) --tabla de referencia

--

sp_help Producto

--

--tabla guia

alter table guia

add constraint FK_guia

foreign key(idlocal) --el campo foraneo

references local1(idlocal) --tabla de referencia

--

sp_help guia

 

--aplicando el constraint check

--tabla producto

alter table Producto

add constraint CK_stockactual

check (stockactual>0)

 

 

 

C – Pegar la Imagen del Diagrama de la base de datos

 

 

 

 

 

3 -  Crear los siguientes usuarios, con sus respectivos roles(de servidor o base de dato) e indicar que tipo de proceso podemos realizar

Usuario

ROLES DE SERVIDOR

ROLES DE BASE DE DATOS

Programador

SysAdmin

db_denyreader

Alumno

 

db_datareader y db_datawriter

Soporte

 

db_datareader 

Extras

 

db_denydatareader y db_datawriter

Respuesta Script –

Programador: tiene un rol de servidor que le permite manejar cualquier BD el tiene todos los permisos. En su rol de base de datos se especifica que se niege la lectura de las BD

Alumno: Solo tiene permisos para leer y escribir. Es decir si este usuario quisiera modificar algo no podria

Soporte: Solo tiene permisos para leer

Extras: No tiene permiso para leer pero si para escribir.

4 - Se pide crear la siguiente tabla, usando el usuario soporte (revisemos el tipo de resultado que nos devuelve)

create table pedido(

n_pedido int identity(1,1) not null,

c_producto varchar(2),

c_cant_ped int,

i_aceptado char(1),

i_anulado char(1))

 

Respuesta Script –

 

Mens. 262, Nivel 14, Estado 1, Línea 1

Se ha denegado el permiso CREATE TABLE en la base de datos 'BDPractIsil'.

 

 

Ahora realicemos la misma operación de creación con el usuario programador (revisemos el resultado obtenido)

Respuesta Script –

 

Comandos completados correctamente.

 

 

 

5 – Se pide crear los siguientes tipos de datos de usuario, //programador

Nombre del Tipo de Dato

Valor

Tipo2

varchar(2) not null

Ruc

varchar(11) null

GenCod

int Identity(1,1) not null

Valor

int not null ------ check = 0 y 100

Respuesta Script –

--crear tipos de datos de usuario

sp_addtype 'Tipo2','varchar(2)','Not Null'

--

sp_addtype 'Ruc','varchar(11)','Null'

--

sp_addtype 'GenCod','int','not null','identity(1,1)'

--

sp_addtype 'Valor','int','Not null'

 

select * from systypes --verificando que nuestros datos se hayn creado apareceran al final

 

 

 

 

 

 

6 – Usando el usuario programador, Se pide crear las siguientes tablas:

Tabla Factura

codfac 

varchar(3)

 

tipcli

Tipo2

solo pueden ser CL(clientes),   CE(clientes externos), PV(proveedores)

nomcli

varchar(50)

 

numruccli

ruc

tipo de dato definido por el usuario, solo debe aceptar números

fecha

datetime

 

monto

money

 

                                                              

   Tabla factura_detalle

codfac

varchar(3)

 

coditem

GenCod

 

nompro

varchar(50)

 

cantpro

valor

tipo de dato definido por el usuario, debe ser siempre mayor a                                                           cero y menor a 100

mtoUpro

money

 

totalItem

(cantpro * mtoUpro)

es un campo calculado

 

--Creando las tablas

--tabla factura

create table Factura

(

codfac varchar(3),

tipcli Tipo2,

numruccli ruc,

fecha datetime,

monto money

)

go

 

alter table Factura

add constraint CK_tipcli--esto significa que el stock no puede ser menor que 50

check(tipcli LIKE'[CL][CE][PV]')

 

ALTER TABLE Factura

add constraint Only_Numebrs

check (numruccli NOT LIKE '%[^A-Z0-9 ]%')

 

--

--tabla Factura_detalle

create table factura_detalle

(

codfac varchar(3),

coditem GenCod,

nompro varchar(50),

cantpro valor,

mtoUpro money,

totalItem as (cantpro * mtoUpro)

)

go

-----

ALTER TABLE factura_detalle

add constraint cantpro

check (cantpro Like '[0-100]')

 

the hour is...
 
Publicidad
 
music
 


MusicPlaylist
Music Playlist at MixPod.com