Sei sulla pagina 1di 3

SECCIÓN ____

Ciclo 2018-I
EP INGENIERÍA DE SISTEMAS E INFORMÁTICA
Examen
Parcial 0203-02E23
TRANSACT SQL
Tipo A Nota en letras:

Docente: Ing. LUIS MANUEL SIGÜEÑAS SIADÉN

Ciclo: VI Módulo: 01 Sección: 1 UDED: LIMA

Alumno: Código:
ESTIMADO ESTUDIANTE, SE LE RECUERDA:
USO OBLIGATORIO DEL CORREO INSTITUCIONAL, PARA SU COMUNICACIÓN.
Si aún no cuenta con su clave, solicítelo a su coordinador.
 Presentar su Documento de Identidad a solicitud del evaluador.
 Resuelva el examen utilizando lapicero y con letra legible.
 Evite borrones y enmendaduras.
 Evite el plagio. De presentarse el caso se anulará el examen y la
calificación será cero (00).
INDICACIONES PARA  La redacción y ortografía serán tomadas en cuenta en la evaluación
EL ALUMNO:  Al finalizar el examen debe asegurarse de FIRMAR EL ACTA DE
EVALUACIÓN.
 Queda prohibido el uso de dispositivos móviles durante el tiempo fijado
para el examen escrito, el incumplimiento ocasiona la ANULACION DEL
EXAMEN.
¡Éxitos!

Preguntas:

1. En base al siguiente enunciado, elabore el script con los comandos necesarios que
permitan crear una base de datos relacional en SQL Server para controlar dicha
información: usted debe crear las tablas y relaciones. NO se tendrá en cuenta la
generación de script incluida en el SQL Server ni imágenes capturadas, únicamente se
revisará el script solicitado pegado en este documento. (10 puntos)

Se desea recoger información de las líneas de metro de una determinada ciudad. Los
supuestos considerados son los siguientes:

 Una línea está compuesta por una serie de estaciones en un orden determinado, siendo
muy importante recoger la información de este orden.
 Cada estación pertenece al menos a una línea, pudiendo pertenecer a varias.
 Una estación nunca puede dejar de pertenecer a una línea a la que anteriormente
perteneciera (por ejemplo Portazgo que pertenece a la línea 1 nunca podrá dejar de
pertenecer a esta).
 Cada estación puede tener varios accesos, obviamente un acceso sólo puede pertenecer
a una estación.
 Un acceso nunca podrá cambiar de estación.
 Cada línea tiene asignados una serie de trenes, no pudiendo suceder que un tren esté
asignado a más de una línea, pero sí que no esté asignado a ninguna.
 Cada línea tiene asignados como mínimo tantos trenes como estaciones tenga y como
máximo el doble del número de estaciones.
UAP-DUED20181
SECCIÓN ____
 Algunas estaciones tienen asignadas cocheras, y cada tren tiene asignada una cochera.
Un tren puede cambiar de cochera, pero no quedar sin ella.
 Interesa conocer todos los accesos de cada línea.

/**Creamos la Base de datos**/


create database MetroLine
/** Hacemos uso de la base de datos creada **/
use Metroline
/**Creamos la tablas correspondientes**/
create table Linea(LinCod varchar(3) primary key,
LinNom varchar(15),
LinDet varchar(50))

create table Estacion(EstCod varchar(3) primary key,


EstNom varchar(15),
LinCod varchar(3))

create table Trenes(TrenCod varchar(3) primary key,


TrenDet varchar(50),
TrenAfo integer,
LinCod varchar(3))
--Se crea la tabla DetaEstacion por la relacion MUCHOS a MUCHOS
--que existe entre la tabla Estacion - Trenes
create table DetaEstacion(EstCod varchar(3),
TrenCod varchar(3))

create table Accesos(AcCod varchar(3) primary key,


EstCod varchar(3))

create table Cocheras(CocCod varchar(3) primary key,


CocDet varchar(10),
TrenCod varchar(3))
/**Creacion de la tablas correspondientes**/
alter table Estacion
add constraint fk_est_lin
foreign key (LinCod)
references Linea(LinCod)

alter table Accesos


add constraint fk_acc_est
foreign key (EstCod)
references Estacion(EstCod)

alter table Trenes


add constraint fk_tren_lin
foreign key (LinCod)
references Linea(LinCod)

alter table Cocheras


add constraint fk_coch_tren
foreign key (TrenCod)
references Trenes(TrenCod)

alter table DetaEstacion


add constraint fk_det_tren
foreign key (TrenCod)
references Trenes(TrenCod)

alter table DetaEstacion


add constraint fk_det_est
foreign key (EstCod)
references Estacion(EstCod)

UAP-DUED20181
SECCIÓN ____
2. Utilizando la base de datos CONTROL (publicada en el campus), presente el script de
consulta solicitado. Si para la solución empleó otras consultas, vistas, etc., debe
presentar el script de todo ello explicando paso a paso su desarrollo. (10 puntos)

Muestre la relación de todos los clientes (vehículos) indicando por cada uno de ellos el
suministro que más ha comprado. Solo debe mostrarse 1 suministro por cada cliente:

Salida:

 Código del cliente


 Nombre del propietario
 Nombre del suministro que más ha comprado

/*Usamos la base de datos control*/


USE control
/*Ejecutamos el querry buscado*/
select b.vehcodigo as [Código del cliente],A.vehpropietario as [Nombre del
propietario],Max(e.tipdescripcion) as [Nombre del suministro que más ha
comprado]
from tbvehiculo A
inner join tbboleta B on A.vehcodigo=b.vehcodigo
inner join tbdetboleta C on B.bolnumero=C.bolnumero
inner join tbsuministro D on C.sumcodigo=D.sumcodigo
inner join tbtipos E on D.tipcodigo=E.tipcodigo
group by b.vehcodigo,A.vehpropietario
order by 1

UAP-DUED20181

Potrebbero piacerti anche