SlideShare una empresa de Scribd logo
Examen de SQL - BASES DE DATOS
                               Febrero de 2006


    A continuación se presenta la estructura final de algunas tablas que podrían derivarse del
diseño de una BD de reservas de vuelos. También se muestra un ejemplo del contenido de
estas tablas.

ENTIDAD                   COLUMNAS                 TIPO             COMENTARIO
                          Nif                      Carácter(9)      Nif del cliente. Clave primaria.
                          Apellido1                Carácter (40)    Primer apellido del cliente.
CLIENTES                  Apellido2                Carácter(40)     Segundo apellido del cliente.
                          Nombre                   Carácter(40)     Nombre del cliente.
                          Poblacion                Carácter(20)     Población de residencia del cliente
                          Vuelo                    Numérico (4)     Clave primaria. Identificador del vuelo.
                          id_compañia              Carácter (2)     Clave primaria. Identificador de la compañía
VUELOS                    fecha                    Fecha            Clave primaria. Fecha del vuelo.
                          Origen                   Carácter (20)    Ciudad de Origen del Vuelo
                          Destino                  Carácter (20)    Ciudad de Destino del Vuelo
                          Plazas                   Numérico (5)     Numero de plazas ofertadas del Vuelo
                          Vuelo                    Numérico (4)     Identificador del vuelo.
                          id_compañia              Carácter (2)     Identificador de la compañía
OCUPACION_VUELOS          fecha                    Fecha            Fecha del vuelo.
                          Pasajero                 Carácter(9)      Nif del ocupante del asiento.
                          Asiento                  Carácter(3)      Identificación del asiento ocupado. Si el billete aun
                                                                    no se encuentra emitido su valor será nulo


                                        CLIENTES
      NIF            APELLIDO1        APELLIDO2        NOMBRE             POBLACION
      07345128H      PEREZ            PEREZ            JUAN               MADRID
      27365138A      GARCIA           SANCHEZ          PAULA              CACERES
      10134562B      LARRA            ALVAREZ          JUAN PEDRO         MADRID
      57176355K      VAZQUEZ          PEDROSA          IRENE              LONDRES
      08124356C      TENA             TENA             ALBERTO            MALAGA


                                         VUELOS
            VUELO ID-COMPAÑÍA FECHA                    ORIGEN      DESTINO         PLAZAS
             1003                IB   20/01/2006       MADRID      LONDRES                40
             1007                AF   20/01/2006       PARIS       MALAGA                 12
             1003                IB   30/01/2006       MADRID      LONDRES                20
             1007                AF   30/01/2006       PARIS       MALAGA                 17


                               OCUPACION_VUELOS
            VUELO ID-COMPAÑÍA FECHA                     PASAJERO       ASIENTO
              1003               IB   20/01/2006        07345128H      01V
              1003               IB   20/01/2006        10134562B      01P
              1003               IB   20/01/2006        08124356C      02V
              1003               IB   20/01/2006        57176355K      02P
              1007               AF   20/01/2006        27365138A
              1003               IB   30/01/2006        07345128H      01V
              1003               IB   30/01/2006        10134562B      02V
              1003               IB   30/01/2006        57176355K
Examen de SQL - BASES DE DATOS
                            Febrero de 2006

Apellidos _____________________________________________________
Nombre ___________________________ DNI______________________
Titulación__________________________________



     1. Realizar las siguientes operaciones:

        A. Crear la tabla OCUPACION_VUELOS según las especificaciones aparecidas para
           dicha tabla en el enunciado y además las siguientes restricciones:
              • Clave Primaria
              • Clave alterna
              • Claves externas
        B. Impedir la existencia de vuelos con la misma ciudad de origen y destino en la
           misma fecha que otra existente (No pueden existir dos vuelos con origen MADRID
           y destino LONDRES para el mismo día).
        C. Realizar una reserva para el vuelo PARIS-MALAGA de HOY para el cliente con
           NIF 08124356C


A.
        CREATE TABLE ocupacion_vuelos
        (    Vuelo          NUMBER(4),
             Id_compañia    VARCHAR2(2),
             Fecha          DATE,
             Pasajero       VARCHAR2(9),
             Asiento        VARCHAR2(3)
             PRIMARY KEY (vuelo,id_compañia,fecha,pasajero),
             UNIQUE(vuelo,id_compañia,fecha,asiento),
             FOREIGN KEY (vuelo,id_compañia,fecha)
                  REFERENCES vuelos(vuelo,id_compañia,fecha),
             FOREIGN KEY (pasajero) REFERENCES clientes(nif)
        );

B.
        ALTER TABLE       vuelos ADD (UNIQUE (origen,destino,fecha));

ó

        CREATE UNIQUE INDEX ind_vuelos
             ON vuelos (origen , destino,fecha);

C.
        INSERT INTO ocupacion_vuelos
              (vuelo,id_compañia,fecha, pasajero)
        SELECT vuelo, id_compañia, SYSDATE, '08124356C'
        FROM vuelos
        WHERE origen='PARIS' AND destino = 'MALAGA'
Examen de SQL - BASES DE DATOS
                     Febrero de 2006




2. Obtener información de los vuelos en los que no se ha realizado ninguna reserva,
   ordenado por compañía, mediante al menos 3 de los siguientes tipos de consulta:

   A.    Operación de conjuntos
   B.    Subconsulta anidada
   C.    Subconsulta correlacionada
   D.    Join

VUELO                  COMPAÑIA                FECHA
---------------------- ---------               ----------
1007                   AF                      30/01/2006

A.
SELECT vuelo, id_compañia AS compañía , fecha
FROM vuelos
MINUS
SELECT DISTINCT vuelo, id_compañia,fecha
FROM ocupacion_vuelos

B.
SELECT vuelo, id_compañia AS compañía , fecha
FROM vuelos
WHERE (vuelo,id_compañia,fecha) NOT IN
       (SELECT DISTINCT vuelo,id_compañia,fecha
        FROM ocupación_vuelos);

C.
SELECT vuelo, id_compañia AS compañía , fecha
FROM vuelos V
WHERE 0 = ( SELECT COUNT(*)
            FROM ocupacion_vuelos O
            WHERE v.vuelo=o.vuelo AND
                  v.id_compañia=o.id_compañia AND
                  v.fecha=o.fecha);
       ó

SELECT vuelo, id_compañia AS compañía , fecha
FROM vuelos V
WHERE NOT EXISTS( SELECT *
                  FROM ocupacion_vuelos O
                  WHERE v.vuelo=o.vuelo AND
                        v.id_compañia=o.id_compañia AND
                        v.fecha=o.fecha);

D.
SELECT vuelo, id_compañia AS compañía , fecha
FROM vuelos LEFT JOIN ocupacion_vuelos
USING (vuelo,id_compañia,fecha)
WHERE pasajero is NULL;
Examen de SQL - BASES DE DATOS
                          Febrero de 2006

Apellidos _____________________________________________________
Nombre ___________________________ DNI______________________
Titulación__________________________________



   3. Obtener información de los clientes que han realizado todos los vuelos desde/hacia su
      población de residencia en el mismo asiento. Salida:


      CLIENTE             ASIENTO
      ----------          ----------
      07345128H           O1V
      57176355K           02P



   SELECT NIF AS CLIENTE , MAX(ASIENTO) AS ASIENTO
   FROM CLIENTES JOIN OCUPACION_VUELOS ON (NIF=PASAJERO)
           JOIN VUELOS USING (VUELO,ID_COMPAÑIA)
   WHERE (ORIGEN=POBLACION OR DESTINO=POBLACION)
   GROUP BY NIF
   HAVING COUNT(DISTINCT ASIENTO) = 1;
Examen de SQL - BASES DE DATOS
                        Febrero de 2006


4.   Rellenar, solo en los casos que sea necesario, el siguiente código PL/SQL. Además,
     añadir las instrucciones necesarias para asegurar la atomicidad de las transacciones.
SET SERVEROUTPUT ON;
DECLARE
   PROCEDURE reserva_vuelo(nif VARCHAR2, id_vuelo NUMBER,
                             compañía VARCHAR2, fecha DATE) IS
      -- Definir las variables locales necesarias para el procedimiento
      Plazas_ofertadas 1      vuelos.plazas%TYPE;
      Plazas_ocupadas     1   vuelos.plazas%TYPE;
       1   Vuelo_lleno EXCEPTION;
   BEGIN
      -- Obtener el numero de plazas del vuelo que se va a reservar
      2   SELECT plazas INTO plazas_ofertadas
          FROM vuelos
          WHERE vuelo=reserva_vuelo.id_vuelo AND
                Id_compañía=reserva_vuelo.compañia AND
                 fecha=reserva_vuelo.fecha;
      -- Comprobar si existen plazas vacantes para el vuelo.
      -- Si no existen plazas lanzar una excepción
      3   SELECT COUNT(*) INTO plazas_ocupadas
          FROM ocupación_vuelos
          WHERE vuelo=reserva_vuelo.id_vuelo AND
                Id_compañía=reserva_vuelo.compañia AND
                 fecha=reserva_vuelo.fecha;
          IF plazas_ocupadas >= plazas_ofertadas THEN
                 RAISE vuelo_lleno;
          END IF;
      -- Dar de alta el pasaje
      4   INSERT INTO ocupación_vuelos (vuelo,id_compañía,fecha,pasajero)
          VALUES (     reserva_vuelo.vuelo,reserva_vuelo.compañia,
                       reserva_vuelo.fecha,reserva_vuelo.nif);
      DBMS_OUTPUT.PUT_LINE ('RESERVA REALIZADA');
      COMMIT;
  EXCEPTION
      WHEN 5    NO_DATA_FOUND      THEN
         DBMS_OUTPUT.PUT_LINE ('NO EXISTE EL VUELO INDICADO');
      WHEN 6    DUP_VAL_ON_INDEX               THEN
         DBMS_OUTPUT.PUT_LINE ('EL CLIENTE YA TIENE RESERVADO EL VUELO');
      WHEN 7     VUELO_LLENO THEN
         DBMS_OUTPUT.PUT_LINE ('NO EXISTEN PLAZAS LIBRES EN EL VUELO');
      -- Para cualquier otro tipo de error
      WHEN 8    OTHERS THEN
           -- Relanzar la misma excepción que se ha producido
           ROLLBACK; (No tiene porque ser necesario)
           9   RAISE
  END;
BEGIN
   DBMS_OUTPUT.ENABLE;
   Reserva_vuelo ('07345128H' , 1007, 'AF', '30/01/2006');
EXCEPTION
   -- Para cualquier error que se produzca
   WHEN 10    OTHERS   THEN
         DBMS_OUTPUT.PUT_LINE ('ERROR EN RESERVA DE VUELO');
END;

Más contenido relacionado

La actualidad más candente

Vlsm
VlsmVlsm
Ccna (200 125)
Ccna (200 125)Ccna (200 125)
Ccna (200 125)
shajeeha khalid
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
Meztli Valeriano Orozco
 
Mikrotik ultimo manual
Mikrotik ultimo manualMikrotik ultimo manual
Mikrotik ultimo manual
Christian Val
 
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
.. ..
 
Access Control List (ACL)
Access Control List (ACL)Access Control List (ACL)
Access Control List (ACL)
ISMT College
 
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WAN
FlavioRobledo
 
Introduction to Snort
Introduction to SnortIntroduction to Snort
Introduction to Snort
Hossein Yavari
 
Direccionamiento - Ejercicios - Explicacion - Clases A-B-C
Direccionamiento - Ejercicios - Explicacion - Clases A-B-CDireccionamiento - Ejercicios - Explicacion - Clases A-B-C
Direccionamiento - Ejercicios - Explicacion - Clases A-B-C
liberaunlibroupeg
 
Vlans
VlansVlans
AAA & RADIUS Protocols
AAA & RADIUS ProtocolsAAA & RADIUS Protocols
AAA & RADIUS Protocols
Peter R. Egli
 
ospf isis
ospf   isisospf   isis
ospf isis
Brian Piragauta
 
Subnetting made simple
Subnetting made simpleSubnetting made simple
Subnetting made simple
Wamuyu Murakaru
 
Ejercicios-de-subneteo(listos)
 Ejercicios-de-subneteo(listos) Ejercicios-de-subneteo(listos)
Ejercicios-de-subneteo(listos)
Greivin Zamora Moya
 
Default routing
Default routingDefault routing
Default routing
Pawandeep Singh
 
Snort Intrusion Detection / Prevention System on PFSense Firewall
Snort Intrusion Detection / Prevention System  on PFSense FirewallSnort Intrusion Detection / Prevention System  on PFSense Firewall
Snort Intrusion Detection / Prevention System on PFSense Firewall
Huda Seyam
 
CCNA Chapter1
CCNA Chapter1CCNA Chapter1
CCNA Chapter1
Mohammed Ali
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
Eduardo Castro
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
Raziel Freitez
 
TIPC Overview
TIPC OverviewTIPC Overview
TIPC Overview
Jon Maloy
 

La actualidad más candente (20)

Vlsm
VlsmVlsm
Vlsm
 
Ccna (200 125)
Ccna (200 125)Ccna (200 125)
Ccna (200 125)
 
3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros3.1 inserción, eliminación y modificación de registros
3.1 inserción, eliminación y modificación de registros
 
Mikrotik ultimo manual
Mikrotik ultimo manualMikrotik ultimo manual
Mikrotik ultimo manual
 
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
Tutorial y manual para instalar y configurar cacti 0.8.8 a en windows 7 de 32...
 
Access Control List (ACL)
Access Control List (ACL)Access Control List (ACL)
Access Control List (ACL)
 
Cuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WANCuadro comparativo tecnologias WAN
Cuadro comparativo tecnologias WAN
 
Introduction to Snort
Introduction to SnortIntroduction to Snort
Introduction to Snort
 
Direccionamiento - Ejercicios - Explicacion - Clases A-B-C
Direccionamiento - Ejercicios - Explicacion - Clases A-B-CDireccionamiento - Ejercicios - Explicacion - Clases A-B-C
Direccionamiento - Ejercicios - Explicacion - Clases A-B-C
 
Vlans
VlansVlans
Vlans
 
AAA & RADIUS Protocols
AAA & RADIUS ProtocolsAAA & RADIUS Protocols
AAA & RADIUS Protocols
 
ospf isis
ospf   isisospf   isis
ospf isis
 
Subnetting made simple
Subnetting made simpleSubnetting made simple
Subnetting made simple
 
Ejercicios-de-subneteo(listos)
 Ejercicios-de-subneteo(listos) Ejercicios-de-subneteo(listos)
Ejercicios-de-subneteo(listos)
 
Default routing
Default routingDefault routing
Default routing
 
Snort Intrusion Detection / Prevention System on PFSense Firewall
Snort Intrusion Detection / Prevention System  on PFSense FirewallSnort Intrusion Detection / Prevention System  on PFSense Firewall
Snort Intrusion Detection / Prevention System on PFSense Firewall
 
CCNA Chapter1
CCNA Chapter1CCNA Chapter1
CCNA Chapter1
 
Casos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL ServerCasos de bodegas de datos con SQL Server
Casos de bodegas de datos con SQL Server
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
TIPC Overview
TIPC OverviewTIPC Overview
TIPC Overview
 

Destacado

Bases de datos temas examen
Bases de datos temas examenBases de datos temas examen
Bases de datos temas examen
Velmuz Buzz
 
Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQL
Totus Muertos
 
Examen base de datos
Examen base de datosExamen base de datos
Examen base de datos
alinahoyos
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
testgrupocomex
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
Julian Benavidez
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
Edgar Sandoval
 
Ejemplos de entidad relacion
Ejemplos de entidad relacionEjemplos de entidad relacion
Ejemplos de entidad relacion
Rodrigo Claros Euscate
 

Destacado (7)

Bases de datos temas examen
Bases de datos temas examenBases de datos temas examen
Bases de datos temas examen
 
Breve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQLBreve resumen sobre consultas básicas en MySQL
Breve resumen sobre consultas básicas en MySQL
 
Examen base de datos
Examen base de datosExamen base de datos
Examen base de datos
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejercicios
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Ejemplos de entidad relacion
Ejemplos de entidad relacionEjemplos de entidad relacion
Ejemplos de entidad relacion
 

Similar a Sql

PnrPump Model pnrpump2.0.pptx
PnrPump Model pnrpump2.0.pptxPnrPump Model pnrpump2.0.pptx
PnrPump Model pnrpump2.0.pptx
AlexVzquZ
 
Bodega mod
Bodega modBodega mod
Ejercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sqlEjercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sql
MaraMagdalenaBlancoR
 
Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)
guestc718eb
 
Diseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of MotoringDiseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of Motoring
josmal 7
 
Diseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of MotoringDiseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of Motoring
ssharLudena
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
Rafael Tobar Jame
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
bdatos
 
Guía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de DatosGuía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de Datos
José Ricardo Tillero Giménez
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
Giancarlos Bello Sanchez
 
Sql
SqlSql
Virtualidad
VirtualidadVirtualidad
Virtualidad
JuanKMillos
 
Ejercicios
EjerciciosEjercicios
Ejercicios
John Soto
 
Solucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccionalSolucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccional
romero janeth
 
Identificar Las Llaves Primarias Y ForáNeas
Identificar Las Llaves Primarias Y ForáNeasIdentificar Las Llaves Primarias Y ForáNeas
Identificar Las Llaves Primarias Y ForáNeas
DiegoFGaleano
 
Presentación sql
Presentación sqlPresentación sql
Presentación sql
Ignacio Gomez Rivas
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
Angeliik Cortes
 
1 PLAN DE VUELO.pptx
1 PLAN DE VUELO.pptx1 PLAN DE VUELO.pptx
1 PLAN DE VUELO.pptx
CarolinaCardozo27
 
Bases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola VaronBases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola Varon
MARCEMEJIA11
 
Soluciones ejercicios 3
Soluciones ejercicios 3Soluciones ejercicios 3
Soluciones ejercicios 3
yover01
 

Similar a Sql (20)

PnrPump Model pnrpump2.0.pptx
PnrPump Model pnrpump2.0.pptxPnrPump Model pnrpump2.0.pptx
PnrPump Model pnrpump2.0.pptx
 
Bodega mod
Bodega modBodega mod
Bodega mod
 
Ejercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sqlEjercicios resueltos de_pl-sql
Ejercicios resueltos de_pl-sql
 
Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)Diapositivas del Proyecto de Aula (SILIPRO)
Diapositivas del Proyecto de Aula (SILIPRO)
 
Diseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of MotoringDiseño Físico EasyDrive School of Motoring
Diseño Físico EasyDrive School of Motoring
 
Diseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of MotoringDiseño conceptual Easy Drive School of Motoring
Diseño conceptual Easy Drive School of Motoring
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basic
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Guía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de DatosGuía 3 Ejercicios de Normalización de Base de Datos
Guía 3 Ejercicios de Normalización de Base de Datos
 
Ejercicios sql
Ejercicios sqlEjercicios sql
Ejercicios sql
 
Sql
SqlSql
Sql
 
Virtualidad
VirtualidadVirtualidad
Virtualidad
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Solucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccionalSolucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccional
 
Identificar Las Llaves Primarias Y ForáNeas
Identificar Las Llaves Primarias Y ForáNeasIdentificar Las Llaves Primarias Y ForáNeas
Identificar Las Llaves Primarias Y ForáNeas
 
Presentación sql
Presentación sqlPresentación sql
Presentación sql
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
1 PLAN DE VUELO.pptx
1 PLAN DE VUELO.pptx1 PLAN DE VUELO.pptx
1 PLAN DE VUELO.pptx
 
Bases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola VaronBases de datos Lina Mejia y Paola Varon
Bases de datos Lina Mejia y Paola Varon
 
Soluciones ejercicios 3
Soluciones ejercicios 3Soluciones ejercicios 3
Soluciones ejercicios 3
 

Último

Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
lautyzaracho4
 
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptxPPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
gamcoaquera
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Demetrio Ccesa Rayme
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
Osiris Urbano
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
rosannatasaycoyactay
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
https://gramadal.wordpress.com/
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
ginnazamudio
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
israelsouza67
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
DavidCamiloMosquera
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Demetrio Ccesa Rayme
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
JAVIER SOLIS NOYOLA
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
YeniferGarcia36
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
Inslvarez5
 

Último (20)

Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdfLas Tecnologias Digitales en los Aprendizajesdel Siglo XXI  UNESCO Ccesa007.pdf
Las Tecnologias Digitales en los Aprendizajesdel Siglo XXI UNESCO Ccesa007.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdfBlogs_y_Educacion_Por Zaracho Lautaro_.pdf
Blogs_y_Educacion_Por Zaracho Lautaro_.pdf
 
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptxPPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
PPT_Servicio de Bandeja a Paciente Hospitalizado.pptx
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdfGuia Practica de ChatGPT para Docentes Ccesa007.pdf
Guia Practica de ChatGPT para Docentes Ccesa007.pdf
 
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptxSEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
SEMIOLOGIA DE HEMORRAGIAS DIGESTIVAS.pptx
 
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx3° SES COMU LUN10  CUENTO DIA DEL PADRE  933623393 PROF YESSENIA (1).docx
3° SES COMU LUN10 CUENTO DIA DEL PADRE 933623393 PROF YESSENIA (1).docx
 
Power Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascaradoPower Point: El espiritismo desenmascarado
Power Point: El espiritismo desenmascarado
 
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIACONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
CONTENIDOS Y PDA DE LA FASE 3,4 Y 5 EN NIVEL PRIMARIA
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024Evaluacion del tercer trimestre del 2023-2024
Evaluacion del tercer trimestre del 2023-2024
 
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdfp4s.co Ecosistema de Ecosistemas - Diagrama.pdf
p4s.co Ecosistema de Ecosistemas - Diagrama.pdf
 
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT   en el Aula Ccesa007.pdfDocentes y el uso de chatGPT   en el Aula Ccesa007.pdf
Docentes y el uso de chatGPT en el Aula Ccesa007.pdf
 
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
 
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdfCUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
CUENTOS EN MAYÚSCULAS PARA APRENDER A LEER.pdf
 

Sql

  • 1. Examen de SQL - BASES DE DATOS Febrero de 2006 A continuación se presenta la estructura final de algunas tablas que podrían derivarse del diseño de una BD de reservas de vuelos. También se muestra un ejemplo del contenido de estas tablas. ENTIDAD COLUMNAS TIPO COMENTARIO Nif Carácter(9) Nif del cliente. Clave primaria. Apellido1 Carácter (40) Primer apellido del cliente. CLIENTES Apellido2 Carácter(40) Segundo apellido del cliente. Nombre Carácter(40) Nombre del cliente. Poblacion Carácter(20) Población de residencia del cliente Vuelo Numérico (4) Clave primaria. Identificador del vuelo. id_compañia Carácter (2) Clave primaria. Identificador de la compañía VUELOS fecha Fecha Clave primaria. Fecha del vuelo. Origen Carácter (20) Ciudad de Origen del Vuelo Destino Carácter (20) Ciudad de Destino del Vuelo Plazas Numérico (5) Numero de plazas ofertadas del Vuelo Vuelo Numérico (4) Identificador del vuelo. id_compañia Carácter (2) Identificador de la compañía OCUPACION_VUELOS fecha Fecha Fecha del vuelo. Pasajero Carácter(9) Nif del ocupante del asiento. Asiento Carácter(3) Identificación del asiento ocupado. Si el billete aun no se encuentra emitido su valor será nulo CLIENTES NIF APELLIDO1 APELLIDO2 NOMBRE POBLACION 07345128H PEREZ PEREZ JUAN MADRID 27365138A GARCIA SANCHEZ PAULA CACERES 10134562B LARRA ALVAREZ JUAN PEDRO MADRID 57176355K VAZQUEZ PEDROSA IRENE LONDRES 08124356C TENA TENA ALBERTO MALAGA VUELOS VUELO ID-COMPAÑÍA FECHA ORIGEN DESTINO PLAZAS 1003 IB 20/01/2006 MADRID LONDRES 40 1007 AF 20/01/2006 PARIS MALAGA 12 1003 IB 30/01/2006 MADRID LONDRES 20 1007 AF 30/01/2006 PARIS MALAGA 17 OCUPACION_VUELOS VUELO ID-COMPAÑÍA FECHA PASAJERO ASIENTO 1003 IB 20/01/2006 07345128H 01V 1003 IB 20/01/2006 10134562B 01P 1003 IB 20/01/2006 08124356C 02V 1003 IB 20/01/2006 57176355K 02P 1007 AF 20/01/2006 27365138A 1003 IB 30/01/2006 07345128H 01V 1003 IB 30/01/2006 10134562B 02V 1003 IB 30/01/2006 57176355K
  • 2. Examen de SQL - BASES DE DATOS Febrero de 2006 Apellidos _____________________________________________________ Nombre ___________________________ DNI______________________ Titulación__________________________________ 1. Realizar las siguientes operaciones: A. Crear la tabla OCUPACION_VUELOS según las especificaciones aparecidas para dicha tabla en el enunciado y además las siguientes restricciones: • Clave Primaria • Clave alterna • Claves externas B. Impedir la existencia de vuelos con la misma ciudad de origen y destino en la misma fecha que otra existente (No pueden existir dos vuelos con origen MADRID y destino LONDRES para el mismo día). C. Realizar una reserva para el vuelo PARIS-MALAGA de HOY para el cliente con NIF 08124356C A. CREATE TABLE ocupacion_vuelos ( Vuelo NUMBER(4), Id_compañia VARCHAR2(2), Fecha DATE, Pasajero VARCHAR2(9), Asiento VARCHAR2(3) PRIMARY KEY (vuelo,id_compañia,fecha,pasajero), UNIQUE(vuelo,id_compañia,fecha,asiento), FOREIGN KEY (vuelo,id_compañia,fecha) REFERENCES vuelos(vuelo,id_compañia,fecha), FOREIGN KEY (pasajero) REFERENCES clientes(nif) ); B. ALTER TABLE vuelos ADD (UNIQUE (origen,destino,fecha)); ó CREATE UNIQUE INDEX ind_vuelos ON vuelos (origen , destino,fecha); C. INSERT INTO ocupacion_vuelos (vuelo,id_compañia,fecha, pasajero) SELECT vuelo, id_compañia, SYSDATE, '08124356C' FROM vuelos WHERE origen='PARIS' AND destino = 'MALAGA'
  • 3. Examen de SQL - BASES DE DATOS Febrero de 2006 2. Obtener información de los vuelos en los que no se ha realizado ninguna reserva, ordenado por compañía, mediante al menos 3 de los siguientes tipos de consulta: A. Operación de conjuntos B. Subconsulta anidada C. Subconsulta correlacionada D. Join VUELO COMPAÑIA FECHA ---------------------- --------- ---------- 1007 AF 30/01/2006 A. SELECT vuelo, id_compañia AS compañía , fecha FROM vuelos MINUS SELECT DISTINCT vuelo, id_compañia,fecha FROM ocupacion_vuelos B. SELECT vuelo, id_compañia AS compañía , fecha FROM vuelos WHERE (vuelo,id_compañia,fecha) NOT IN (SELECT DISTINCT vuelo,id_compañia,fecha FROM ocupación_vuelos); C. SELECT vuelo, id_compañia AS compañía , fecha FROM vuelos V WHERE 0 = ( SELECT COUNT(*) FROM ocupacion_vuelos O WHERE v.vuelo=o.vuelo AND v.id_compañia=o.id_compañia AND v.fecha=o.fecha); ó SELECT vuelo, id_compañia AS compañía , fecha FROM vuelos V WHERE NOT EXISTS( SELECT * FROM ocupacion_vuelos O WHERE v.vuelo=o.vuelo AND v.id_compañia=o.id_compañia AND v.fecha=o.fecha); D. SELECT vuelo, id_compañia AS compañía , fecha FROM vuelos LEFT JOIN ocupacion_vuelos USING (vuelo,id_compañia,fecha) WHERE pasajero is NULL;
  • 4. Examen de SQL - BASES DE DATOS Febrero de 2006 Apellidos _____________________________________________________ Nombre ___________________________ DNI______________________ Titulación__________________________________ 3. Obtener información de los clientes que han realizado todos los vuelos desde/hacia su población de residencia en el mismo asiento. Salida: CLIENTE ASIENTO ---------- ---------- 07345128H O1V 57176355K 02P SELECT NIF AS CLIENTE , MAX(ASIENTO) AS ASIENTO FROM CLIENTES JOIN OCUPACION_VUELOS ON (NIF=PASAJERO) JOIN VUELOS USING (VUELO,ID_COMPAÑIA) WHERE (ORIGEN=POBLACION OR DESTINO=POBLACION) GROUP BY NIF HAVING COUNT(DISTINCT ASIENTO) = 1;
  • 5. Examen de SQL - BASES DE DATOS Febrero de 2006 4. Rellenar, solo en los casos que sea necesario, el siguiente código PL/SQL. Además, añadir las instrucciones necesarias para asegurar la atomicidad de las transacciones. SET SERVEROUTPUT ON; DECLARE PROCEDURE reserva_vuelo(nif VARCHAR2, id_vuelo NUMBER, compañía VARCHAR2, fecha DATE) IS -- Definir las variables locales necesarias para el procedimiento Plazas_ofertadas 1 vuelos.plazas%TYPE; Plazas_ocupadas 1 vuelos.plazas%TYPE; 1 Vuelo_lleno EXCEPTION; BEGIN -- Obtener el numero de plazas del vuelo que se va a reservar 2 SELECT plazas INTO plazas_ofertadas FROM vuelos WHERE vuelo=reserva_vuelo.id_vuelo AND Id_compañía=reserva_vuelo.compañia AND fecha=reserva_vuelo.fecha; -- Comprobar si existen plazas vacantes para el vuelo. -- Si no existen plazas lanzar una excepción 3 SELECT COUNT(*) INTO plazas_ocupadas FROM ocupación_vuelos WHERE vuelo=reserva_vuelo.id_vuelo AND Id_compañía=reserva_vuelo.compañia AND fecha=reserva_vuelo.fecha; IF plazas_ocupadas >= plazas_ofertadas THEN RAISE vuelo_lleno; END IF; -- Dar de alta el pasaje 4 INSERT INTO ocupación_vuelos (vuelo,id_compañía,fecha,pasajero) VALUES ( reserva_vuelo.vuelo,reserva_vuelo.compañia, reserva_vuelo.fecha,reserva_vuelo.nif); DBMS_OUTPUT.PUT_LINE ('RESERVA REALIZADA'); COMMIT; EXCEPTION WHEN 5 NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('NO EXISTE EL VUELO INDICADO'); WHEN 6 DUP_VAL_ON_INDEX THEN DBMS_OUTPUT.PUT_LINE ('EL CLIENTE YA TIENE RESERVADO EL VUELO'); WHEN 7 VUELO_LLENO THEN DBMS_OUTPUT.PUT_LINE ('NO EXISTEN PLAZAS LIBRES EN EL VUELO'); -- Para cualquier otro tipo de error WHEN 8 OTHERS THEN -- Relanzar la misma excepción que se ha producido ROLLBACK; (No tiene porque ser necesario) 9 RAISE END; BEGIN DBMS_OUTPUT.ENABLE; Reserva_vuelo ('07345128H' , 1007, 'AF', '30/01/2006'); EXCEPTION -- Para cualquier error que se produzca WHEN 10 OTHERS THEN DBMS_OUTPUT.PUT_LINE ('ERROR EN RESERVA DE VUELO'); END;