Este documento describe los requisitos para una base de datos sobre el sistema de metro de una ciudad. Se necesita recopilar información sobre las líneas de metro y sus estaciones, incluido el orden de las estaciones en cada línea. Las estaciones pueden pertenecer a múltiples líneas y los accesos solo pueden pertenecer a una estación. Cada línea tiene asignados trenes y estaciones, y las estaciones pueden tener cocheras asignadas donde los trenes se estacionan.
Este documento describe los requisitos para una base de datos sobre el sistema de metro de una ciudad. Se necesita recopilar información sobre las líneas de metro y sus estaciones, incluido el orden de las estaciones en cada línea. Las estaciones pueden pertenecer a múltiples líneas y los accesos solo pueden pertenecer a una estación. Cada línea tiene asignados trenes y estaciones, y las estaciones pueden tener cocheras asignadas donde los trenes se estacionan.
Este documento describe los requisitos para una base de datos sobre el sistema de metro de una ciudad. Se necesita recopilar información sobre las líneas de metro y sus estaciones, incluido el orden de las estaciones en cada línea. Las estaciones pueden pertenecer a múltiples líneas y los accesos solo pueden pertenecer a una estación. Cada línea tiene asignados trenes y estaciones, y las estaciones pueden tener cocheras asignadas donde los trenes se estacionan.
Este documento describe los requisitos para una base de datos sobre el sistema de metro de una ciudad. Se necesita recopilar información sobre las líneas de metro y sus estaciones, incluido el orden de las estaciones en cada línea. Las estaciones pueden pertenecer a múltiples líneas y los accesos solo pueden pertenecer a una estación. Cada línea tiene asignados trenes y estaciones, y las estaciones pueden tener cocheras asignadas donde los trenes se estacionan.
Descargue como DOCX, PDF, TXT o lea en línea desde Scribd
Descargar como docx, pdf o txt
Está en la página 1de 13
31V
METRO
DIANA VANESSA LAZCANO PEREZ BASE DE DATOS II 31V METRO
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. EJEMPLO propuesto de consulta SQL sobre la BD de líneas de metro Tipo: consulta de tipo 3 (según enunciado). Enunciado: Escribe una consulta SQL que obtenga 3 columnas: (1) identificador de estación. (2) número de accesos a la estación . (3) número de líneas que pasan por la estación. Sólo deben figurar en el resultado estaciones con 3 o más trenes detenidos en sus andenes. Cuando un tren está detenido en un andén (línea-estación- sentido) existe una fila del tren en la tabla llegada donde fechaHoraS contiene el valor nulo. Solución: select LE.estacion, count(distinct A.numero) as “andenes”, count(distinct LE.linea) as “lineas” from ( lineaEstacion LE join acceso A on A.estacion=LE.estacion ) left join llegada LL on LL.linea=LE.linea and LL.estacion=LE.estacion and LL.fechaHoraS is null group by LE.estacion having count(distinct LL.id) >= 3. Tipo: Consulta de tipo 1 (según enunciado). Enunciado: El valor nulo. Escribe una consulta SQL que obtenga el identificador de los trenes que hayan visitado todas las estaciones pertenecientes a líneas que pasan por la estación de nombre ‘Esperanza’ en los últimos 10 días (considerar sólo la hora de llegada como fecha de visita). Solución: select T.id as ‘Tren’ from tren T where not exists ( select LE.estacion from estacion E join lineaEstacion LEsp on LEsp.estacion=E.id join lineaEstacion LE on LEsp.linea=LE.linea where E.nombre=’Esperanza’ and LE.estacion not in ( select L.estacion from llegada L where L.fechaHoraLl>=sysdate-10 and L.tren=T.id – correlacion ) )
Se ha usado not in porque mysql no admite except o minus