Está en la página 1de 3

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.
 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.

SCRIP DE LA BD METRO : disculpe profesor solo hasta esta parte me alcanzo el


tiempo

--- la base de datos se creo mediante las opciones rapidas que nos da el programa
(click derecho base de datos/nueva base de datos) y acontinuacion las tablas

create table hola (


codigo int primary key ,
nombre varchar(30),
telefono numeric
)
CREATE TABLE [dbo].[acceso](
[id] [nchar](10),
[id_estacion] [nchar](10),
CONSTRAINT [PK_acceso] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[cocheras](


[id] [nchar](10),
[entrada] [nchar](10) ,
[salida] [nchar](10),
[id_tren] [nchar](10),
CONSTRAINT [PK_cocheras] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[estacion](


[id] [nchar](10),
[nombre] [nchar](10),
[estacion] [nchar](10),
[id_linea] [nchar](10),
CONSTRAINT [PK_estacion] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[linea](


[id] [nchar](10),
[nombres] [nchar](10),
[ruta] [nchar](10),
[ciudad_destino] [nchar](10),
CONSTRAINT [PK_linea] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

CREATE TABLE [dbo].[tren](


[id] [nchar](10),
[placa] [nchar](10),
[capacidad] [nchar](10),
[ruta] [nchar](10),
[id_linea] [nchar](10),
CONSTRAINT [PK_tren] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[acceso] WITH CHECK ADD CONSTRAINT [FK_acceso_estacion]
FOREIGN KEY([id_estacion])
REFERENCES [dbo].[estacion] ([id])

ALTER TABLE [dbo].[acceso] CHECK CONSTRAINT [FK_acceso_estacion]

ALTER TABLE [dbo].[cocheras] WITH CHECK ADD CONSTRAINT [FK_cocheras_tren]


FOREIGN KEY([id_tren])
REFERENCES [dbo].[tren] ([id])

ALTER TABLE [dbo].[cocheras] CHECK CONSTRAINT [FK_cocheras_tren]

ALTER TABLE [dbo].[linea] WITH CHECK ADD CONSTRAINT [FK_estacion_linea] FOREIGN


KEY([id])
REFERENCES [dbo].[estacion] ([id])

ALTER TABLE [dbo].[linea] CHECK CONSTRAINT [FK_estacion_linea]

ALTER TABLE [dbo].[tren] WITH CHECK ADD CONSTRAINT [FK_linea_tren] FOREIGN


KEY([id_linea])
REFERENCES [dbo].[linea] ([id])

ALTER TABLE [dbo].[tren] CHECK CONSTRAINT [FK_linea_tren]

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

Select V.vehcodigo,V.vehpropietario,S.sumdescripcion nombresumnistro from


tbvehiculo V

Inner join tbboleta B on V.vehcodigo=B.vehicodigo

Inner join tbdetboleta D on B.bolnumero=D. bolnumero

También podría gustarte