SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
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

Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQLcamposer
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLEdgar Sandoval
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla claseAlejandra Vera
 
Exposicion _bucket _sort
Exposicion _bucket _sortExposicion _bucket _sort
Exposicion _bucket _sortadrianasl
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONArun Sial
 
Base de datos relacionales algebra relacional
Base de datos relacionales algebra relacionalBase de datos relacionales algebra relacional
Base de datos relacionales algebra relacionalJEAN199627
 
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNmellcv
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navisionpabloesp
 
13. Pointer and 2D array
13. Pointer  and  2D array13. Pointer  and  2D array
13. Pointer and 2D arrayGem WeBlog
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptgourav kottawar
 

La actualidad más candente (20)

Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQL
 
Plsql y paquetes
Plsql y paquetesPlsql y paquetes
Plsql y paquetes
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Tecnología Orientada a Objetos
Tecnología Orientada a ObjetosTecnología Orientada a Objetos
Tecnología Orientada a Objetos
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Exposicion _bucket _sort
Exposicion _bucket _sortExposicion _bucket _sort
Exposicion _bucket _sort
 
SQL
SQLSQL
SQL
 
SQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTIONSQL BUILT-IN FUNCTION
SQL BUILT-IN FUNCTION
 
Base de datos relacionales algebra relacional
Base de datos relacionales algebra relacionalBase de datos relacionales algebra relacional
Base de datos relacionales algebra relacional
 
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
 
Programación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions NavisionProgramación con C/AL para Microsoft Business Solutions Navision
Programación con C/AL para Microsoft Business Solutions Navision
 
Oracle: PLSQL Introduction
Oracle: PLSQL IntroductionOracle: PLSQL Introduction
Oracle: PLSQL Introduction
 
передача параметрів в функції
передача параметрів в функціїпередача параметрів в функції
передача параметрів в функції
 
PL/SQL TRIGGERS
PL/SQL TRIGGERSPL/SQL TRIGGERS
PL/SQL TRIGGERS
 
C# Strings
C# StringsC# Strings
C# Strings
 
Arreglos - Assembler
Arreglos - AssemblerArreglos - Assembler
Arreglos - Assembler
 
13. Pointer and 2D array
13. Pointer  and  2D array13. Pointer  and  2D array
13. Pointer and 2D array
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) ppt
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 

Destacado

Bases de datos temas examen
Bases de datos temas examenBases de datos temas examen
Bases de datos temas examenVelmuz 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 MySQLTotus Muertos
 
Examen base de datos
Examen base de datosExamen base de datos
Examen base de datosalinahoyos
 
Programación MySQL-Ejercicios
Programación MySQL-EjerciciosProgramación MySQL-Ejercicios
Programación MySQL-Ejerciciostestgrupocomex
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sqlJulian Benavidez
 

Destacado (6)

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
 
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.pptxAlexVzquZ
 
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 Motoringjosmal 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 MotoringssharLudena
 
Base datos mysql y visual basic
Base datos mysql y visual basicBase datos mysql y visual basic
Base datos mysql y visual basicRafael Tobar Jame
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Solucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccionalSolucion laboratorio lenguaje_transaccional
Solucion laboratorio lenguaje_transaccionalromero 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áNeasDiegoFGaleano
 
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 VaronMARCEMEJIA11
 
Soluciones ejercicios 3
Soluciones ejercicios 3Soluciones ejercicios 3
Soluciones ejercicios 3yover01
 

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

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 

Último (20)

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 

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;