Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Primer Parcial

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 10

Universidad Privada Domingo Savio Facultad de Tecnología

Primer Parcial

Adm. De Base de Datos I

Crear la base de datos Empresa con un archivo primario y con tres FileGroup
Secundario(Empresa1.ndf, Empresa2.ndf y Empresa3.ndf). Además de un archivo Log .

Crear las tablas siguientes y meter en los siguientes FileGroup:

FileGroup Empresa1

Tabla empleados con los siguientes campos:

numemp: número del empleado


nombre : nombre y apellidos del empleado
edad : edad del empleado
oficina : número de la oficina donde trabaja el empleado, p.ej. Antonio Viguer
trabaja en la oficina 12 de Alicante
titulo : el cargo que desempeña el empleado
contrato : fecha en que se contrató al empleado
jefe : número de su jefe inmediato, p.ej. El jefe de Antonio Viguer es José
González. Observar que Luis Antonio no tiene jefe, es el director general.
cuota : cuota del empleado, sería el importe mínimo de ventas que debe alcanzar
el empleado en el año
ventas : importe de ventas realizadas durante este año
Universidad Privada Domingo Savio Facultad de Tecnología

FileGroup Empresa1

abla oficinas con los siguientes campos:

oficina: código de la oficina


ciudad: ciudad donde está ubicada
region : región a la que pertenece
dir : director de la oficina (su número de empledo) por ejemplo la oficina 12 tiene
como director el empleado104 José González.
objetivo : objetivo de ventas que debe alcanzar la oficina
ventas: ventas de la oficina

FileGroup Empresa2
Universidad Privada Domingo Savio Facultad de Tecnología

Tabla clientes con los siguientes campos:

numclie: número de cliente


nombre : nombre y apellidos del cliente
repclie : nº del representante asignado al cliente.
Cada cliente tiene un representante asignado (el que figura en repclie) que será el
que generalmente le atienda.
limitecredito : límite de crédito del cliente

FileGroup Empresa2
Universidad Privada Domingo Savio Facultad de Tecnología

abla productos con los siguientes campos:

idfab: identificativo del fabricante del producto


idproducto : código que utiliza el fabricante para codificar el producto. Observar
que aparecen varias líneas con el mismo idproducto (41003), por lo que la clave
principal de la tabla deberá ser idfab+idproducto
descripcion: nombre del producto
precio: precio del producto
existencias: nº de unidades del producto que tenemos en almacén.

FileGroup Empresa3
Universidad Privada Domingo Savio Facultad de Tecnología

Tabla pedidos:

codigo : nº secuencial que sirve de clave principal


numpedido: nº de pedido. Observar que un pedido puede tener varias líneas.
fechapedido : fecha del pedido
clie : cliente que efectua el pedido
rep : representante que tramita el pedido
fab: fabricante del producto que se pide
producto : idproducto del producto que se pide.
cant : cantidad que se pide del producto
importe : importe de la línea de pedido
Universidad Privada Domingo Savio Facultad de Tecnología

Luego realizar las siguientes consulta con el comando pivot.

1.- Queremos calcular la suma de importes comprados por los clientes durante los
años 1990, 1991 y 1992

2.- Se deben crear 4 usuarios empleado1, empleado2 dentro del grupo empleado y
gerente1, gerente2 dentro del grupo gerente.

a) Se debe asignar permiso de selección, inserción, actualización y eliminación al


grupo gerentes a todas las tablas.

b) Se debe asignar permiso de selección e inserción al grupo empleado a todas las


tablas.

c) Se debe denegar el permiso de actualización al empleado1 a la tabla pedidos.

3.- Realizar el backup diferencial con copias incrementales en dos fechas


posteriores. Y Realizar el restore de la copia diferencial con sus dos copias
incrementales.
Universidad Privada Domingo Savio Facultad de Tecnología

CREATE DATABASE empresa

ON PRIMARY
( NAME='empresa_Primary',
FILENAME=
'C:\Base de Datos\Examen1\empresa_Prm.mdf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB),
FILEGROUP empresa1
( NAME = 'empresa1',
FILENAME =
'C:\Base de Datos\Examen1\empresa1.ndf',
SIZE = 1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB),
FILEGROUP empresa2
( NAME = 'empresa2',
FILENAME =
'C:\Base de Datos\Examen1\empresa2.ndf',
SIZE = 1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB),

FILEGROUP empresa3
( NAME = 'empresa3',
FILENAME =
'C:\Base de Datos\Examen1\empresa3.ndf',
SIZE = 1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
LOG ON
( NAME='empresa_log',
FILENAME =
'C:\Base de Datos\Examen1\empresaLog.ldf',
SIZE=1MB,
MAXSIZE=10MB,
FILEGROWTH=1MB);
GO

USE empresa

CREATE TABLE EMPLEADO(NUMEMP INT PRIMARY KEY NONCLUSTERED, NOMBRE VARCHAR(30),


EDAD INT, TITULO VARCHAR(30), CONTRATO DATE, CUOTA VARCHAR(30), VENTASEMP
VARCHAR(30)) ON empresa1;

ALTER TABLE EMPLEADO ADD JEFE INT REFERENCES EMPLEADO

CREATE TABLE OFICINA (IDOFICINA INT PRIMARY KEY NONCLUSTERED, CUIDAD VARCHAR(30),
REGION VARCHAR(20), DIR INT, OBJETIVO FLOAT, VENTAS FLOAT) ON empresa1;

ALTER TABLE EMPLEADO ADD IDOFICINA INT REFERENCES OFICINA

CREATE TABLE CLIENTE (NUMCLI INT PRIMARY KEY NONCLUSTERED, NOMBRECLI


VARCHAR(30),LIMITECREDITO FLOAT,NUMEMP INT REFERENCES EMPLEADO) ON empresa2;

CREATE TABLE FABRICA (IDFAB INT PRIMARY KEY NONCLUSTERED, NOMBREFAB VARCHAR(30))
ON empresa3;
CREATE TABLE PRODUCTO (IDPRODUCTO INT PRIMARY KEY NONCLUSTERED, DESCRIPCION
VARCHAR(30), PRECIO FLOAT, EXISTENCIAS INT, IDFAB INT REFERENCES FABRICA) ON
empresa2;
Universidad Privada Domingo Savio Facultad de Tecnología

CREATE TABLE PEDIDO (CODIGO INT PRIMARY KEY NONCLUSTERED, NUMPEDIDO INT,
FECHAPEDIDO DATE, CANT INT, IMPORTE FLOAT, NUMCLI INT REFERENCES CLIENTE, NUMEMP
INT REFERENCES EMPLEADO, IDFAB INT REFERENCES FABRICA, IDPRODUCTO INT REFERENCES
PRODUCTO) ON empresa3;

INSERT INTO OFICINA(IDOFICINA,CUIDAD,REGION,DIR,OBJETIVO,VENTAS) VALUES


(2001,'SANTA CRUZ','CENTRO',1234,800000,850000)
INSERT INTO OFICINA(IDOFICINA,CUIDAD,REGION,DIR,OBJETIVO,VENTAS) VALUES
(2002,'SANTA CRUZ','NORTE',1234,800000,850000)
INSERT INTO OFICINA(IDOFICINA,CUIDAD,REGION,DIR,OBJETIVO,VENTAS) VALUES
(2003,'SANTA CRUZ','SUR',1234,800000,850000)

INSERT INTO EMPLEADO


(NUMEMP,NOMBRE,EDAD,TITULO,CONTRATO,CUOTA,VENTASEMP,JEFE,IDOFICINA) values
(101,'EDSON REYES',30,'DIR. GENERAL','2021/08/12',300000,305000,101,2001)
INSERT INTO EMPLEADO
(NUMEMP,NOMBRE,EDAD,TITULO,CONTRATO,CUOTA,VENTASEMP,JEFE,IDOFICINA) values
(103,'FERNANDO GUTIERREZ',50,'REPRESENTANTE','2019/04/12',200000,250000,101,2001)
INSERT INTO EMPLEADO
(NUMEMP,NOMBRE,EDAD,TITULO,CONTRATO,CUOTA,VENTASEMP,JEFE,IDOFICINA) values
(102,'DAVID SORIA',43,'DIR. VENTAS','2021/08/12',100000,3120000,103,2002)

INSERT INTO CLIENTE(NUMCLI,NOMBRECLI,LIMITECREDITO,NUMEMP) VALUES (2001,'PEPITO


GONZALES',65000,102)
INSERT INTO CLIENTE(NUMCLI,NOMBRECLI,LIMITECREDITO,NUMEMP) VALUES (2002,'MARIO
GUTIERREZ',63000,102)
INSERT INTO CLIENTE(NUMCLI,NOMBRECLI,LIMITECREDITO,NUMEMP) VALUES (2003,'CARLOS
JUSTINIANO',66000,102)

INSERT INTO FABRICA(IDFAB,NOMBREFAB) VALUES (2001567,'BOLIVIA')

INSERT INTO PRODUCTO(IDPRODUCTO,DESCRIPCION,PRECIO,EXISTENCIAS,IDFAB) VALUES


(6775,'CLAVOS',58,277,2001567)
INSERT INTO PRODUCTO(IDPRODUCTO,DESCRIPCION,PRECIO,EXISTENCIAS,IDFAB) VALUES
(9665,'ARANDELAS',34,375,2001567)
INSERT INTO PRODUCTO(IDPRODUCTO,DESCRIPCION,PRECIO,EXISTENCIAS,IDFAB) VALUES
(5430,'PERNOS',77,96,2001567)

INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(1,11036,'1990/05/19',436,25288,2001,102,2001567,6775)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(2,25378,'1990/07/16',234,7956,2002,102,2001567,9665)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(3,27890,'1990/08/03',743,57211,2003,102,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(4,35609,'1991/08/03',96,247,2002,102,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(5,11036,'1997/05/19',436,25288,2001,102,2001567,6775)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(6,25378,'1997/07/16',234,7956,2002,102,2001567,9665)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(7,27890,'1997/08/03',743,57211,2003,102,2001567,5430)
Universidad Privada Domingo Savio Facultad de Tecnología

INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(8,35609,'1998/08/03',96,247,2002,102,2001567,5430)

INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(9,11036,'1990/05/19',436,25288,2001,101,2001567,6775)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(10,25378,'1990/07/16',234,7956,2002,103,2001567,9665)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(11,27890,'1990/08/03',743,57211,2003,103,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(12,35609,'1991/08/03',96,247,2002,101,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(13,11036,'1997/05/19',436,25288,2001,101,2001567,6775)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(14,25378,'1997/07/16',234,7956,2002,103,2001567,9665)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(15,27890,'1997/08/03',743,57211,2003,101,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(16,35609,'1998/08/03',96,247,2002,103,2001567,5430)
INSERT INTO
PEDIDO(CODIGO,NUMPEDIDO,FECHAPEDIDO,CANT,IMPORTE,NUMCLI,NUMEMP,IDFAB,IDPRODUCTO)V
ALUES(17,27890,'1996/08/03',743,57211,2003,101,2001567,5430)

--** pregunta 1 PIVOT--

select * from( select CUIDAD,REGION ,year(FECHAPEDIDO) as año,sum(importe) as


total from OFICINA, empleado inner join PEDIDO on
(Empleado.numemp=PEDIDO.NUMEMP)
where year(FECHAPEDIDO) between '1990' and '1992' and
EMPLEADO.IDOFICINA=OFICINA.IDOFICINA
group by CUIDAD,Region,year(FECHAPEDIDO)) as consulta PIVOT( SUM(total) FOR año
IN ([1990],[1991],[1992] )) AS pvt

---pregunta 2 incisos a,b,c---


create login empleado1 with password ='5336143'
create login empleado2 with password='5336143'
create login gerente1 with password='5336143'
create login gerente2 with password='5336143'

create user empleado1 for login empleado1


create user empleado2 for login empleado2
create user gerente1 for login gerente1
create user gerente2 for login gerente2

create role empleados


create role gerentes

grant select,insert,update, delete on database::empresa to gerentes


grant select,insert on database::empresa to empleados
Universidad Privada Domingo Savio Facultad de Tecnología

deny update on pedido to empleado1

---- pregunta 3--

backup database[empresa]

to disk = N'C:\Base de Datos\Examen1\Completa\completa.bak'

with checksum;

backup database[empresa]

to disk = N'C:\Base de Datos\Examen1\Diferencial\29082021.bak'

with differential;

backup database[empresa]

to disk = N'C:\Base de Datos\Examen1\Diferencial\30082021.bak'

with differential;

---RESTAURACION DATABASE--
drop database empresa

restore database[empresa]

from disk=N'C:\Base de Datos\Examen1\Completa\completa.bak'


with norecovery;

go

restore database[empresa]

from disk=N'C:\Base de Datos\Examen1\Diferencial\29082021.bak'


with norecovery;

go

restore database[empresa]

from disk=N'C:\Base de Datos\Examen1\Diferencial\30082021.bak'


with recovery;

go

También podría gustarte