Está en la página 1de 9

NOMBRES: JUAN CARLOS QUISPE VERA

EXAMEN PARCIAL
Consideraciones generales:
 Se considerará en la evaluación, el orden, la limpieza y la claridad de las respuestas.
 Si está permitido el uso o consulta de cuadernos, separatas, libros o cualquier material de la asignatura
durante el desarrollo de la evaluación.

1. Caso de Negocio: GESTIÓN DE UN ZOO (Zoológico)

Un zoo necesita una aplicación informática para llevar su organización respecto a las especies que posee,
los empleados (cuidadores y guías), y los distintos itinerarios de visita que ofrece. La información está
estructurada de la siguiente manera:

 Especies: de las especies interesa saber el nombre en español, el nombre científico y una
descripción general. Hay que tener en cuenta que una especie puede vivir en diferentes hábitats
naturales y que un hábitat puede ser ocupado por diferentes especies. Las especies se encuentran
en distintas zonas del parque de manera que cada especie está en una zona y en una zona hay
varias especies.
 Hábitats: los diferentes hábitats naturales vienen definidos por el nombre, el clima y el tipo de
vegetación predominantes, así como el continente o continentes en los que se encuentran.
 Zonas: las zonas del parque en las que se encuentran las distintas especies vienen definidas por el
nombre y la extensión que ocupan.
 Itinerarios: los itinerarios discurren por distintas zonas del parque. La información de interés para
los itinerarios es: código de itinerario, la duración del recorrido, la longitud del itinerario, el máximo
número de visitantes autorizado y el número de distintas especies que visita. Hay que tener en
cuenta que un itinerario recorre distintas zonas del parque y que una zona puede ser recorrida por
diferentes itinerarios.
 Guías: los guías del parque vienen definidos por el nombre, dirección, teléfono y fecha en la que
comenzaron a trabajar en el zoo. Interesa saber qué guías llevan qué itinerarios, teniendo en
cuenta que un guía puede llevar varios itinerarios y que un itinerario puede ser asignado a
diferentes guías en diferentes horas, siendo éstas un dato de interés.
 Cuidadores: los cuidadores vienen definidos por el nombre, dirección, teléfono y fecha de ingreso
en el parque. Hay que tener en cuenta que un cuidador puede estar a cargo de varias especies y
que una especie puede ser atendida por varios cuidadores, siendo de interés la fecha en la que un
cuidador se hace cargo de una especie.

 ELABORAR EL DIAGRAMA ENTIDAD RELACION USANDO EL SOFTWARE YED o DIA U


OTRO PROGRAMA QUE MEJOR MANEJE.
 ELABORAR EL SCRIPT DE LA BASE DE DATOS INCLUYENDO SUS RELACIONES DE
TABLAS PRINCIPAL Y FORANEAS.
 APLICAR RESTRICCION UNIQUE, CHECK, PK, FK, entre otras a las tablas creadas.
 REALIZAR EL REGISTRO DE DATOS A CADA UNA DE LAS TABLAS
 CREAR CONSULTAS UTILIZANDO FUNCIONES DE AGREGACION Y AGRUPAMIENTO.
 CREAR 5 CONSULTAS UTILIZANDO INNER JOIN A SU CRITERIO.
 CREAR 5 VISTAS UTILIZANDO LAS CONSULTAS YA CREADAS ANTERIORMENTE
 ELABORAR EL DIAGRAMA ENTIDAD RELACION USANDO EL SOFTWARE YED o DIA U OTRO PROGRAMA QUE MEJOR MANEJE.
 ELABORAR EL SCRIPT DE LA BASE DE DATOS INCLUYENDO SUS RELACIONES DE
TABLAS PRINCIPAL Y FORANEAS.

 APLICAR RESTRICCION UNIQUE, CHECK, PK, FK, entre otras a las tablas creadas.

RPTA 3

USE master
GO
CREATE DATABASE DBPARQUE
GO
USE DBPARQUE
GO

CREATE TABLE EMPLEADO (


ID_EMP INT IDENTITY(1,1) PRIMARY KEY,
NOM_EMP VARCHAR(70),
DIR_EMP VARCHAR(70),
TEL_EMP VARCHAR(9),
FECI_EMP DATE,
)

CREATE TABLE ZONA (


ID_ZON INT IDENTITY(1,1) PRIMARY KEY,
NOM_ZON VARCHAR(70),
EXT_ZON VARCHAR(70)
)
GO
CREATE TABLE CLIMA(
ID_CLI INT IDENTITY(1,1) PRIMARY KEY,
NOM_CLI VARCHAR(70) NOT NULL
)
GO
CREATE TABLE CONTINENTE(
ID_CON INT IDENTITY(1,1) PRIMARY KEY,
NOM_CON VARCHAR(70) NOT NULL
)
GO
CREATE TABLE VEGPRE(
ID_VEGP INT IDENTITY(1,1) PRIMARY KEY,
NOM_VEGP VARCHAR(70) NOT NULL
)
GO

CREATE TABLE ESPECIE(


ID_ESP INT IDENTITY(1,1) PRIMARY KEY,
NOMC_ESP VARCHAR(70) NOT NULL,
NOME_ESP VARCHAR(70) NOT NULL,
DES_ESP VARCHAR(70) NOT NULL
)
GO

CREATE TABLE INTINERARIO(


ID_INT INT IDENTITY(1,1) PRIMARY KEY,
DUR_INT TIME NOT NULL,
LON_INT INT NOT NULL,
MAXNV_INT INT NOT NULL,
NUMESV_INT INT NOT NULL
)
go

CREATE TABLE HABITAT(


ID_HAB INT IDENTITY(1,1) PRIMARY KEY,
NOM_HAB VARCHAR(70) NOT NULL,
ID_CLI INT NOT NULL,
ID_VEGP INT NOT NULL,
ID_CON INT NOT NULL,
FOREIGN KEY (ID_CLI) REFERENCES CLIMA,
FOREIGN KEY (ID_VEGP) REFERENCES VEGPRE,
FOREIGN KEY (ID_CON) REFERENCES CONTINENTE
)
go

CREATE TABLE CUIDADOR(


ID_CUI int IDENTITY(1,1) PRIMARY KEY,
ID_EMP int NOT NULL,
FECI_CUI date NULL,
FOREIGN KEY (ID_EMP) REFERENCES EMPLEADO

)
GO

CREATE TABLE GUIA(


ID_GUI int IDENTITY(1,1) PRIMARY KEY,
ID_EMP int NOT NULL,
FECI_GUI date NULL,
FOREIGN KEY (ID_EMP) REFERENCES EMPLEADO

)
go

CREATE TABLE RECORRIDO(


ID_INT INT NOT NULL,
ID_ZON INT NOT NULL,
FEC_REC DATE,
FOREIGN KEY (ID_INT) REFERENCES INTINERARIO,
FOREIGN KEY (ID_ZON) REFERENCES ZONA,
CONSTRAINT RECORRIDO_UQ UNIQUE(ID_INT,ID_ZON)
)
GO

CREATE TABLE HABITATESPECIE (


ID_HAB INT NOT NULL,
ID_ESP INT NOT NULL,
FEC_HEP DATE,
FOREIGN KEY (ID_HAB) REFERENCES HABITAT,
FOREIGN KEY (ID_ESP) REFERENCES ESPECIE,
CONSTRAINT HABESP_UQ UNIQUE(ID_HAB,ID_ESP)
)
GO

CREATE TABLE INTINERARIOGUIA(


ID_INT INT NOT NULL,
ID_GUI INT NOT NULL,
FEC_IGU DATE,
FOREIGN KEY (ID_INT) REFERENCES INTINERARIO,
FOREIGN KEY (ID_GUI) REFERENCES GUIA
)
GO

CREATE TABLE CUIDADORESPECIE (


ID_CUI INT NOT NULL,
ID_ESP INT NOT NULL,
FEC_CESP DATE,
FOREIGN KEY (ID_CUI) REFERENCES CUIDADOR,
FOREIGN KEY (ID_ESP) REFERENCES ESPECIE
)
GO

 REALIZAR EL REGISTRO DE DATOS A CADA UNA DE LAS TABLAS

RPTA 4

USE DBPARQUE
GO

INSERT INTO CLIMA VALUES('TROPICAL')


INSERT INTO CLIMA VALUES('SECA')
INSERT INTO CLIMA VALUES('FRIA')

INSERT INTO CONTINENTE VALUES ('AMERICA')


INSERT INTO CONTINENTE VALUES ('ASIA')
INSERT INTO CONTINENTE VALUES ('EUROPA')

INSERT INTO EMPLEADO VALUES ('ROVINSON MELGAREJO','NATURALES, HUARAL',


'987654321','2018-02-01')
INSERT INTO EMPLEADO VALUES ('CARLOS SOTO','Av. Carlos Izaguirre 123, LIMA',
'987654321','2018-02-01')
INSERT INTO EMPLEADO VALUES ('MIGUEL RAMOS','Av. Universitaria 123, LIMA',
'987654321','2018-02-01')
INSERT INTO EMPLEADO VALUES ('ROSA RAMOS','Av. Universitaria 123, LIMA',
'987654321','2018-02-01')
INSERT INTO GUIA VALUES (1,'2018-02-01')
INSERT INTO GUIA VALUES (2,'2018-02-01')

INSERT INTO CUIDADOR VALUES (3,'2018-02-01')


INSERT INTO CUIDADOR VALUES (4,'2018-02-01')

INSERT INTO ESPECIE VALUES ('MAMMALIA', 'MAMÍFEROS', 'ANIMALES MAMIFEROS')


INSERT INTO ESPECIE VALUES ('SAUROPSIDA','REPTILES','ANIMALES REPTILES')
INSERT INTO ESPECIE VALUES ('AMPHIBIA','ANFIBIOS','ANIMALES ANFIBIOS')

INSERT INTO VEGPRE VALUES('SELVA TROPICAL')


INSERT INTO VEGPRE VALUES('DECIERTO ARIDO')
INSERT INTO VEGPRE VALUES('SABANA ARBOLADA')
INSERT INTO VEGPRE VALUES('BOSQUE MONTANO')

INSERT INTO HABITAT VALUES ('ACUATICOS',1, 1,1 )


INSERT INTO HABITAT VALUES ('TERRESTRES',2,2,1 )
INSERT INTO HABITAT VALUES ('ZONAS POLARES',1, 1,2 )
INSERT INTO HABITAT VALUES ('DECIERTO',2,2,2 )

INSERT INTO HABITATESPECIE VALUES (1,1,'2018-02-03')


INSERT INTO HABITATESPECIE VALUES (1,2,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (1,3,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (2,1,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (2,2,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (2,3,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (3,1,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (3,2,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (3,3,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (4,1,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (4,2,'2018-02-03')
INSERT INTO HABITATESPECIE VALUES (4,3,'2018-02-03')

INSERT INTO ZONA VALUES ('NORTE','16 km2')


INSERT INTO ZONA VALUES ('CENTRO','16 hectarias')
INSERT INTO ZONA VALUES ('ESTE','30 km2')
INSERT INTO ZONA VALUES ('OESTE','40 hectarias')
INSERT INTO ZONA VALUES ('ZUR','25 km2')

INSERT INTO INTINERARIO VALUES ('05:00',2,10,4 )


INSERT INTO INTINERARIO VALUES ('08:00',4,9,8 )
INSERT INTO INTINERARIO VALUES ('06:00',4,14,6 )
INSERT INTO INTINERARIO VALUES ('07:00',3,13,5 )
INSERT INTO INTINERARIO VALUES ('09:00',5,5,2 )
INSERT INTO INTINERARIO VALUES ('05:00',2,10,4 )
INSERT INTO INTINERARIO VALUES ('08:00',4,8,3 )
INSERT INTO INTINERARIO VALUES ('08:00',4,11,7 )
INSERT INTO INTINERARIO VALUES ('08:00',3,12,4 )
INSERT INTO INTINERARIO VALUES ('08:00',5,7,6 )

INSERT INTO RECORRIDO VALUES (1,1,'2018-02-03')


INSERT INTO RECORRIDO VALUES (1,2,'2018-02-03')
INSERT INTO RECORRIDO VALUES (1,3,'2018-02-03')
INSERT INTO RECORRIDO VALUES (1,4,'2018-02-03')
INSERT INTO RECORRIDO VALUES (1,5,'2018-02-03')
INSERT INTO RECORRIDO VALUES (2,1,'2018-02-03')
INSERT INTO RECORRIDO VALUES (2,2,'2018-02-03')
INSERT INTO RECORRIDO VALUES (2,3,'2018-02-03')
INSERT INTO RECORRIDO VALUES (2,4,'2018-02-03')
INSERT INTO RECORRIDO VALUES (2,5,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,1,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,2,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,3,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,4,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,5,'2018-02-03')
INSERT INTO RECORRIDO VALUES (3,6,'2018-02-03')
INSERT INTO RECORRIDO VALUES (4,1,'2018-02-03')
INSERT INTO RECORRIDO VALUES (4,2,'2018-02-03')
INSERT INTO RECORRIDO VALUES (4,3,'2018-02-03')
INSERT INTO RECORRIDO VALUES (4,4,'2018-02-03')
INSERT INTO RECORRIDO VALUES (4,5,'2018-02-03')

INSERT INTO INTINERARIOGUIA VALUES(1,1,'2018-02-03')


INSERT INTO INTINERARIOGUIA VALUES(1,2,'2018-02-03')
INSERT INTO INTINERARIOGUIA VALUES(2,1,'2018-02-04')
INSERT INTO INTINERARIOGUIA VALUES(2,2,'2018-02-04')
INSERT INTO INTINERARIOGUIA VALUES(3,1,'2018-02-05')
INSERT INTO INTINERARIOGUIA VALUES(3,2,'2018-02-05')
INSERT INTO INTINERARIOGUIA VALUES(4,1,'2018-02-06')
INSERT INTO INTINERARIOGUIA VALUES(4,2,'2018-02-06')
INSERT INTO INTINERARIOGUIA VALUES(5,1,'2018-02-07')
INSERT INTO INTINERARIOGUIA VALUES(5,2,'2018-02-07')
INSERT INTO INTINERARIOGUIA VALUES(6,1,'2018-02-08')
INSERT INTO INTINERARIOGUIA VALUES(6,2,'2018-02-08')
INSERT INTO INTINERARIOGUIA VALUES(7,1,'2018-02-09')
INSERT INTO INTINERARIOGUIA VALUES(7,2,'2018-02-09')
INSERT INTO INTINERARIOGUIA VALUES(8,1,'2018-02-10')
INSERT INTO INTINERARIOGUIA VALUES(8,2,'2018-02-10')
INSERT INTO INTINERARIOGUIA VALUES(9,1,'2018-02-11')
INSERT INTO INTINERARIOGUIA VALUES(9,2,'2018-02-11')
INSERT INTO INTINERARIOGUIA VALUES(10,1,'2018-02-12')
INSERT INTO INTINERARIOGUIA VALUES(10,2,'2018-02-12')

INSERT INTO CUIDADORESPECIE VALUES(1,1,'2018-02-03')


INSERT INTO CUIDADORESPECIE VALUES(2,2,'2018-02-03')

 CREAR CONSULTAS UTILIZANDO FUNCIONES DE AGREGACION Y AGRUPAMIENTO.

RPTA 5

SELECT SUM(LON_INT) AS LONGITUD_TOTAL


FROM INTINERARIO
GO

SELECT MAX(LON_INT) AS LONG_MAX, MIN(LON_INT) LONG_MIN


FROM INTINERARIO
GO

SELECT AVG(MAXNV_INT) AS PROM_MAX_NUM_VISITANTES


FROM INTINERARIO
GO

SELECT
Z.NOM_ZON AS ZONA,
SUM(I.LON_INT) AS LONG_TOTAL_POR_ZONA,
AVG(I.MAXNV_INT) AS PROM_NUMVISI_POR_ZONA,
MAX(I.NUMESV_INT) AS MAX_NUMMES_POR_ZONA
FROM RECORRIDO R
INNER JOIN INTINERARIO I ON R.ID_INT=I.ID_INT
INNER JOIN ZONA Z ON R.ID_INT=R.ID_INT
GROUP BY Z.NOM_ZON
ORDER BY Z.NOM_ZON ASC

 CREAR 5 CONSULTAS UTILIZANDO INNER JOIN A SU CRITERIO.

RPTA6

01

SELECT HE.FEC_HEP,H.NOM_HAB,E.NOME_ESP
FROM HABITATESPECIE HE
INNER JOIN HABITAT H ON HE.ID_HAB=H.ID_HAB
INNER JOIN ESPECIE E ON HE.ID_ESP=E.ID_ESP
GO

02

SELECT C.ID_CUI,E.NOM_EMP,E.DIR_EMP,E.TEL_EMP,E.FECI_EMP,ESP.NOMC_ESP
FROM CUIDADORESPECIE EC
INNER JOIN CUIDADOR C ON EC.ID_CUI=C.ID_CUI
INNER JOIN EMPLEADO E ON C.ID_EMP=E.ID_EMP
INNER JOIN ESPECIE ESP ON EC.ID_ESP=ESP.ID_ESP
GO
03

SELECT R.FEC_REC,I.LON_INT,Z.NOM_ZON, Z.EXT_ZON


FROM RECORRIDO R
INNER JOIN INTINERARIO I ON R.ID_INT=I.ID_INT
INNER JOIN ZONA Z ON R.ID_INT=R.ID_INT
GO

04

SELECT
H.ID_HAB ,
H.NOM_HAB,
C.NOM_CLI,
V.NOM_VEGP,
CN.NOM_CON
FROM HABITAT H
INNER JOIN CLIMA C ON H.ID_CLI=C.ID_CLI
INNER JOIN VEGPRE V ON H.ID_VEGP=V.ID_VEGP
INNER JOIN CONTINENTE CN ON H.ID_CON=CN.ID_CON
GO

05

SELECT IG. FEC_IGU, I.DUR_INT,E.NOM_EMP


FROM INTINERARIOGUIA IG
INNER JOIN INTINERARIO I ON IG.ID_INT=I.ID_INT
INNER JOIN GUIA G ON IG.ID_GUI=G.ID_GUI
INNER JOIN EMPLEADO E ON G.ID_EMP=E.ID_EMP
GO

 CREAR 5 VISTAS UTILIZANDO LAS CONSULTAS YA CREADAS ANTERIORMENTE

RPTA7
01

CREATE VIEW VW_HABITAT_ESPECIE


AS
SELECT HE.FEC_HEP,H.NOM_HAB,E.NOME_ESP
FROM HABITATESPECIE HE
INNER JOIN HABITAT H ON HE.ID_HAB=H.ID_HAB
INNER JOIN ESPECIE E ON HE.ID_ESP=E.ID_ESP
GO

02

CREATE VIEW VW_EMPLEADOCUIDADOR


AS
SELECT C.ID_CUI,E.NOM_EMP,E.DIR_EMP,E.TEL_EMP,E.FECI_EMP,ESP.NOMC_ESP
FROM CUIDADORESPECIE EC
INNER JOIN CUIDADOR C ON EC.ID_CUI=C.ID_CUI
INNER JOIN EMPLEADO E ON C.ID_EMP=E.ID_EMP
INNER JOIN ESPECIE ESP ON EC.ID_ESP=ESP.ID_ESP
GO

03

CREATE VIEW VW_RECORRIDOPORZONA


AS
SELECT R.FEC_REC,I.LON_INT,Z.NOM_ZON, Z.EXT_ZON
FROM RECORRIDO R
INNER JOIN INTINERARIO I ON R.ID_INT=I.ID_INT
INNER JOIN ZONA Z ON R.ID_INT=R.ID_INT
GO

04

CREATE VIEW VW_HABITATPORCLIVEGCONT


AS
SELECT
H.ID_HAB ,
H.NOM_HAB,
C.NOM_CLI,
V.NOM_VEGP,
CN.NOM_CON
FROM HABITAT H
INNER JOIN CLIMA C ON H.ID_CLI=C.ID_CLI
INNER JOIN VEGPRE V ON H.ID_VEGP=V.ID_VEGP
INNER JOIN CONTINENTE CN ON H.ID_CON=CN.ID_CON
GO

05

CREATE VIEW VW_GUIADOPOREMPLEADO


AS
SELECT IG. FEC_IGU, I.DUR_INT,E.NOM_EMP
FROM INTINERARIOGUIA IG
INNER JOIN INTINERARIO I ON IG.ID_INT=I.ID_INT
INNER JOIN GUIA G ON IG.ID_GUI=G.ID_GUI
INNER JOIN EMPLEADO E ON G.ID_EMP=E.ID_EMP
GO

También podría gustarte