Está en la página 1de 7

CREATE DATABASE aeropuertoeldorado;

USE aeropuertoeldorado:

CREATE TABLE base(


id INT PRIMARY KEY AUTO_INCREMENT,
codigo VARCHAR(50) NOT NULL,
nombre VARCHAR(200) NOT NULL
);

CREATE TABLE piloto(


id INT PRIMARY KEY AUTO_INCREMENT,
codigo VARCHAR(10) NOT NULL,
nombre VARCHAR(200) NOT NULL,
horas_vuelo INT NOT NULL,
base_id INT NOT NULL,
FOREIGN KEY (base_id) REFERENCES base(id)
);

CREATE TABLE miembrostripulacion(


id INT PRIMARY KEY AUTO_INCREMENT,
Codigo VARCHAR(10) NOT NULL,
nombre VARCHAR(200) NOT NULL,
base id INT NOT NULL,
FOREIGN KEY (base_id) REFERENCES base(id)
);

CREATE TABLE avion(


id INT PRIMARY KEY AUTO_INCREMENT,
Codigo VARCHAR(50) NOT NULL,
tipo VARCHAR(200) NOT NULL,
base_revisiones_id INT NOT NULL,
FOREIGN KEY (base_revisiones_id) REFERENCES base(id)
);

CREATE TABLE ciudad(


id INT PRIMARY KEY AUTO_INCREMENT,
Codigo VARCHAR(10) NOT NULL,
nombre VARCHAR(100) NOT NULL,
);

CREATE TABLE vuelo(


id INT PRIMARY KEY AUTO_INCREMENT,
ciudad_origen_id INT NOT NULL,
ciudad_destino_id INT NOT NULL,
fecha_horas_vuelo TIMESTAMP,
numero_vuelo VARCHAR(10),
avion_id INT NOT NULL,
FOREIGN KEY (ciudad_origen_id) REFERENCES ciudad(id),
FOREIGN KEY (ciudad_destino_id) REFERENCES ciudad(id),
FOREIGN KEY (avion_id) REFERENCES avion(id)
);
CREATE TABLE miembrosvuelo(
id INT PRIMARY KEY AUTO_INCREMENT,
miembro_tripulacion_id INT NOT NULL,
vuelo_id INT NOT NULL,
FOREIGN KEY (miembro_tripulacion_id) REFERENCES miembrostrpulacion(id),
FOREIGN KEY (vuelo_id) REFERENCES vuelo(id),
);

CREATE TABLE pilotovuelo(


id INT PRIMARY KEY AUTO_INCREMENT,
piloto_id INT NOT NULL,
vuelo_id INT NOT NULL,
FOREIGN KEY (piloto_id) REFERENCES piloto(id),
FOREIGN KEY (vuelo_id) REFERENCES vuelo(id),
);

2. El primer paso que debe realizar el grupo de ingenieros es el análisis y diseño de la


base de datos.

Modelo relacional

3. En segunda instancia se debe desarrollar la base de datos e ingresar mínimo 5


registros.

INSERT INTO base (código, nombre) VALUES (’01’,’BASE TOLEMAIDA’);


INSERT INTO base (código, nombre) VALUES (’02’,’BASE MONCALEANO);
INSERT INTO base (código, nombre) VALUES (’03’,’BASE PERDOMO’);
INSERT INTO base (código, nombre) VALUES (’04’,’BASE RUPERTA’);
INSERT INTO base (código, nombre) VALUES (’05’,’BASE UNO’);

INSERT INTO piloto(código, nombre, hora_vuelo, base_id) VALUES (’55524’,’MARIA


CENAIDA GOMEZ PERDOMO’,150,3);
INSERT INTO piloto(código, nombre, hora_vuelo, base_id) VALUES (’78931’,’JOHAN
EDISSON RUBIANO’,400,5);
INSERT INTO piloto(código, nombre, hora_vuelo, base_id) VALUES (’45218’,’JUAN PABLO
VALDES’,300,5);
INSERT INTO piloto(código, nombre, hora_vuelo, base_id) VALUES (’16498’,’JULIO
GOMEZ’, 50,1);
INSERT INTO piloto(código, nombre, hora_vuelo, base_id) VALUES (’24375’,’MANUEL
PERDOMO’, 45,2);

INSERT INTO miembrostripulacion(código, nombre, base_id) VALUES (‘942’,’DIANA


MORENO’, 1);
INSERT INTO miembrostripulacion(código, nombre, base_id) VALUES (‘147’,’KATHERINE
VILLEGAS’, 2);
INSERT INTO miembrostripulacion(código, nombre, base_id) VALUES (‘159’,’WENDY
VILLANUEVA’, 5);
INSERT INTO miembrostripulacion(código, nombre, base_id) VALUES (‘123’,’PAOLA
ANDRADE’, 4);
INSERT INTO miembrostripulacion(código, nombre, base_id) VALUES (‘956’,’SOFIA
DELGADO’, 4);
INSERT INTO avion(código, tipo, base_revision_id) VALUES (‘737-1’,’BOEIGN 737’, 1);
INSERT INTO avion(código, tipo, base_revision_id) VALUES (‘A320-1’,’AIRBUS A320’, 2);
INSERT INTO avion(código, tipo, base_revision_id) VALUES (‘A320-2’,’AIRBUS A320’, 2);
INSERT INTO avion(código, tipo, base_revision_id) VALUES (‘TU204-1’,’TUPOLEV TU-
204’,3);
INSERT INTO avion(código, tipo, base_revision_id) VALUES (‘TU204-2’,’TUPOLEV TU-
204’,3);

INSERT INTO ciudad(código, nombre) VALUES(’NE’,’NEIVA’);


INSERT INTO ciudad(código, nombre) VALUES(’BO’,’BOGOTA’);
INSERT INTO ciudad(código, nombre) VALUES(’CA’,’CALI’);
INSERT INTO ciudad(código, nombre) VALUES(’IB’,’IBAGUE’);
INSERT INTO ciudad(código, nombre) VALUES(’SM’,’SANTA MARTA’);
INSERT INTO ciudad(código, nombre) VALUES(’CT’,’CARTAGENA’);
INSERT INTO ciudad(código, nombre) VALUES(’CJ’,’CAJAMARCA’);

INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,


numero_vuelo, avión_id)VALUES (1, 2, ‘2020-01-01 14:32:00’, ‘EN01001’, 1);
INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,
numero_vuelo, avión_id)VALUES (2, 1, ‘2020-01-01 16:32:00’, ‘EN01002’, 1);
INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,
numero_vuelo, avión_id)VALUES (3, 4, ‘2020-02-01 8:00:00’, ‘FE01001’, 2);
INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,
numero_vuelo, avión_id)VALUES (4, 3, ‘2020-02-01 10:00:00’, ‘FE01002’, 2);
INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,
numero_vuelo, avión_id)VALUES (5, 6, ‘2020-03-01 20:00:00’, ‘MA01001’, 4);
INSERT INTO vuelo (ciudad_origen_id, ciudad_destino_id, fecha_hora_vuelo,
numero_vuelo, avión_id)VALUES (6, 5, ‘2020-03-01 23:00:00’, ‘MA01002’, 4);

INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (1, 1);


INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (2, 1);
INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (3, 1);
INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (3, 2);
INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (1, 2);
INSERT INTO miembrosvuelo(miembro_tripulacion_id, vuelo_id) VALUES (4, 2);

INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (1, 2);


INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (2, 2);
INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (3, 1);
INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (4, 1);
INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (4, 3);
INSERT INTO pilotovuelo(piloto_id, vuelo_id) VALUES (2, 3);
4. Haciendo uso de JOINS, identifique la tribulación asociada a un vuelo; el avión, el
origen y el destino.

-- TRIPULACION ASOCIADA A UN VUELO


SELECT
v.numero_vuelo,
mt.nombre AS tripulación,
p.nombre AS piloto,
a.tipo AS avión.
corigen.nombre AS origen,
cdestino,nombre AS destino
FROM vuelo AS v
INNER JOIN miembrosvuelo AS mv ON mv.vuelo_id = v.id
INNER JOIN miembrostripulacion AS mt ON mt.id = mv.miembro_tripulacion_id
INNER JOIN pilotovuelo AS p ON pv.vuelo_id = v.id
INNER JOIN piloto AS p ON p.id = pv.piloto_id
INNER JOIN avion AS a ON a.id = v.avion_id
INNER JOIN ciudad AS corigen ON corigen.id = v.ciudad_origen_id

INNER JOIN ciudad AS cdestino ON cdestino.id = v.ciudad_destino_id

5. A través de funciones se debe mostrar la cantidad de pilotos que tiene la compañía,


cual es el avión que ha realizado más vuelos y cuáles son los destinos con mayor y
menor número de destinos.

-- FUNCION DE CANTIDAD DE PILOTOS


DELMITER //
CREATE FUNCTION cantidad_pilotos() RETURNS INT(11)
BEGIN
DECLARE cantidad INT;
SET cantidad = (SELECT COUNT(*) FROM piloto);

RETURN cantidad;
END//
DELIMITER ;
-- EJECUCION
SELECT cantidad_pilotos();

-- FUNCION DE AVION CON MAYOR NUMERO DE VUELOS


DELIMITER //
CREATE FUNCTION avión_mayor_vuelos() RETURNS VARCHAR(200)
BEGIN
DECLARE retorno VARCHAR(200);
DECLARE cantidad_a VARCHAR(200);

CREATE TEMPORARY TABLE resultados AS


SELECT
a.tipo,
COUNT(*) AS cantidad
FROM vuelo AS v
INNER JOIN avion AS a ON a.id = v.avion_id
GROUP BY a.tipo
ORDER BY cantidad DESC
LIMIT 1;

SET retorno =(SELECT CONCAT(destinos,’-‘,cantidad)FROM resultados);

RETURN retorno:

END//
DELIMITER ;

--EJECUCION
SELECT destino_menor_vuelos();
6. Se debe crear un procedimiento almacenado que permita conocer las fechas de vuelo
de cada avión.

-- PROCEDIMIENTO QUE PERMITA CONOCER LAS FECHAS DE VUELO DE CADA AVION

DELIMITER //
CREATE PROCEDURE fechas_vuelo_avion(IN tipo_avion VARCHAR(50))
BEGIN
SELECT fecha_hora_vuelo FROM vuelo AS v
INNER JOIN avión AS a ON a.id = v.avion_id
WHERE a.tipo = tipo_avion;
END//

DELIMITER :

-- EJECUCION
CALL fechas_vuelo_avion(‘BOEIGN 737’);

7. Mediante la construcción de disparadores crear un evento que permita realizar una


reserva en un vuelo según el destino.

8. Para culminar el grupo de ingenieros debe crear y gestionar usuarios que permitan
brindar seguridad a la base de datos. Se debe crear un usuario por cada estudiante.

9. El grupo debe crear un video con la explicación de todo el trabajo desarrollado; la


duración debe ser mínimo de 3 minutos y máximo de 5 minutos. Todos los estudiantes que
participaron en el trabajo deben salir en el video realizando la explicación de una parte del
trabajo. El video debe ser compartido en la nube y el enlace se debe incluir en el informe
del trabajo final.

10. El grupo de Trabajo Colaborativo, consolida el Informe final que se debe presentar en
el entorno de evaluación y seguimiento, los acuerdos, discusiones y apreciaciones se
deben dar en el foro Proyecto final.

También podría gustarte