Está en la página 1de 7

lOMoARcPSD| 16977617

l
O
M
o
A
R
c
P
S
D
|
1
6
9
7

Actividad Evaluativa Bases de Datos II

EJE 3 BASES DE DATOS II “VUELOS”

Jhonatan Smith Hernandez


Herrera

Fundación Universitaria del Área Andina


Bases de datos 2
Noviembre
2022
lOMoARcPSD| 16977617

INTRODUCCIÓN

A continuación podemos apreciar una imagen donde se puede encontrar este diagrama de un
forma un poco sencilla y una parte del código que se empleó para crear esta pequeña BD ,
pero que da respuesta al requerimiento planteado.
lOMoARcPSD| 16977617

Diagrama Entidad – Relación

En esta imagen podemos apreciar las relaciones 1::N (uno a muchos)


N::N (Muchos a muchos), donde en algunas utilizamos tablas puentes,
ya que para generar un lugar donde cumpliera los requisitos solicitados
y poder manejar bien las llaves FK (llave foránea) y PK (llave
primaria), a continuación veremos una pequeña parte del código que
utilizamos para crear estas tablas y BD.
lOMoARcPSD| 16977617

Código utilizado:
Crear BD -> Create Database “Vuelos”;
Usar BD -> Use Database Vuelos;

Creación de tabla Roles -> CREATE TABLE IF NOT EXISTS Roles (


idRoles INT NOT NULL AUTO_INCREMENT,
nombre_rol VARCHAR(45) NOT NULL,
descripcio_rol VARCHAR(45) NULL,
estado INT(2) NULL,
PRIMARY KEY (idRoles));

Creación de tabla Usuarios -> CREATE TABLE Usuarios (


idUsuarios INT NOT NULL AUTO_INCREMENT,
nombres VARCHAR(45) NOT NULL,
apellidos VARCHAR(45) NULL,
celular VARCHAR(11) NULL,
correo VARCHAR(45) NULL,
Roles_idRoles INT NOT NULL,
PRIMARY KEY (idUsuarios),
FOREIGN KEY (Roles_idRoles);

Creación de tabla Vuelos -> CREATE TABLE Vuelos (


idVuelos INT NOT NULL AUTO_INCREMENT,
codigo VARCHAR(45) NOT NULL,
fecha_vuelo DATETIME NULL,
horas_vuelo INT NULL,
PRIMARY KEY (idVuelos));

Creación de tabla aviones -> CREATE TABLE aviones (


idaviones INT NOT NULL AUTO_INCREMENT,
marca VARCHAR(45) NULL,
codigo_avion VARCHAR(45) NULL,
company VARCHAR(45) NULL,
PRIMARY KEY (idaviones));
lOMoARcPSD| 16977617

Creación de tabla asientos -> CREATE TABLE asientos (


idasientos INT NOT NULL AUTO_INCREMENT,
num_fila VARCHAR(45) NOT NULL,
num_columna VARCHAR(45) NOT NULL,
estado INT(3) NULL,
preferencial INT(3) NULL,
clase_servicio INT(3) NULL,
PRIMARY KEY (idasientos));

Creación de tabla reservas -> CREATE TABLE reservas (


idreservas INT NOT NULL AUTO_INCREMENT,
fecha_reserva DATETIME NULL,
fecha_salisa DATETIME NULL,
fecha_llegada DATETIME NULL,
estad_reserva INT(2) NULL,
valor_reserva FLOAT NULL,
fecha_canelacio DATETIME NULL,
peso_equipaje FLOAT NULL,
valor_eqiupaju FLOAT NULL,
PRIMARY KEY (idreservas));

Creación de tabla aeropuertos -> CREATE TABLE aeropuertos (


idaeropuertos INT UNSIGNED NOT NULL AUTO_INCREMENT,
nombre VARCHAR(45) NOT NULL,
ciudad VARCHAR(45) NULL,
telefeno VARCHAR(45) NULL,
capacidad_avio INT NULL,
num_vuelos INT NULL,
PRIMARY KEY (idaeropuertos));
lOMoARcPSD| 16977617

Asi creamos las tablas con sus campos básicos, teniendo en cuenta que pueden ser mucho
mas complejas estas tablas, a continuación realizaremos las tablas “puente” o la tercera
tabla la cual se genera con base en la relación de N::N (muchos a muchos).

Creación tercera tabla aviones_asientos -> CREATE TABLE aviones_asientos (


asientos_idasientos INT NOT NULL,
aviones_idaviones INT NOT NULL,
Idavionesasientos INT UNSIGNED NOT NULL,
PRIMARY KEY (asientos_idasientos, aviones_idaviones, Idavionesasientos),
FOREIGN KEY (aviones_idaviones),
FOREIGN KEY (asientos_idasientos);

Creación tercera tabla aviones_vuelos-> CREATE TABLE aviones_Vuelos (


avionesVuelosc INT UNSIGNED NOT NULL AUTO_INCREMENT,
aviones_idaviones INT NOT NULL,
Vuelos_idVuelos INT NOT NULL,
PRIMARY KEY (avionesVuelosc, aviones_idaviones, Vuelos_idVuelos),
FOREIGN KEY (aviones_idaviones),
FOREIGN KEY (Vuelos_idVuelos);

Creación tercera tabla reservas_Usuarios-> CREATE TABLE reservas_Usuarios (


reservas_Usuarios INT UNSIGNED NOT NULL AUTO_INCREMENT,
reservas_idreservas INT NOT NULL,
Usuarios_idUsuarios INT NOT NULL,
asientos_idasientos INT NOT NULL,
Vuelos_idVuelos INT NOT NULL,
PRIMARY KEY (reservas_Usuarios, reservas_idreservas, Usuarios_idUsuarios),
FOREIGN KEY (reservas_idreservas),
FOREIGN KEY (Usuarios_idUsuarios),
FOREIGN KEY (asientos_idasientos),
FOREIGN KEY (Vuelos_idVuelos);
lOMoARcPSD| 16977617

Creación tercera tabla aviones_vuelos-> CREATE TABLE aeropuertos_Vuelos (


aeropuertos_Vuelos INT UNSIGNED NOT NULL AUTO_INCREMENT,
aeropuertos_idaeropuertos INT NOT NULL,
Vuelos_idVuelos INT NOT NULL,
PRIMARY KEY (aeropuertos_Vuelos, aeropuertos_idaeropuertos, Vuelos_idVuelos),
FOREIGN KEY (aeropuertos_idaeropuertos),
FOREIGN KEY (Vuelos_idVuelos);

Aquí podemos ver que tenemos 3 PK en las diferentes tablas puente esto no es un error se
debe a que como esta tabla es el puente entre dos tablas, se permite poner 3 PK para poder
asociar los registros e información entre ellas.
Otro punto a tener en cuenta es que se pueden crear Triggers, Procedimientos almacenados y
Funciones.

Conclusiones

Este trabajo nos permite ver una vista básica de como realizar una base de datos, sus
relaciones, tipos de campos, terceras tablas y nos da una pequeña introducción a lo
que nos espera en el ambiente laboral, ya que en una empresa una BD puede tener
como mínimo 150 tablas perfectamente y se debe conocer muy bien como realizar,
subconsultas, triggers, procedimientos, cursores, Loops, Funciones y lo mas
importante tener muy presente que una consulta no puede demorarse mucho tiempo,
por ejemplo una consulta de 2000 líneas de código puede realizarse perfectamente
en 30 sg o menos, aquí es cuando entra la Normalización de las bases de datos,
donde se debe indexar, mejorar el código en algunos casos hacer subconsultas y
demás. Pero en general esta actividad nos sirve bastante a todos para tener las bases
bien estructuradas.

También podría gustarte