Proyecto Final
FINAL BASE DE DATOS I
1. Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 8 tablas) (Entrega 1)
2 REALIZAR LO SIGUIENTE:
2.1. Darle un nombre a la base de datos.
2.2. Listado de tablas que llevara la BD. (Cuales son referenciales y cuales son de movimiento)
2.3. Diseñar el diccionario de datos de cada tabla (campo, nombre el campo, tipo, tamaño y descripción).
2.4. Montar o diseñar el modelo entidad relación.
2.5. Dibujar el Diagrama relacional.
3. Crear la BD y las tablas respectivas en MySQL (guardar evidencias del código MySQL con el que resuelva dicha actividad) e insertar 10 registros en cada tabla (Entrega 2)
4. Diseñar ejercicios en los que se apliquen los diferentes comandos que se utilizaron durante el semestre con su respectivo análisis y resultados. (Entrega 3)
5. Sustentación
EXITOS...
Proyecto sobre turismo
El proyecto consiste en la creación de una base de datos de turismo que centralice información relevante sobre destinos turísticos, alojamientos, actividades y servicios disponibles. El objetivo principal es facilitar la planificación de viajes y mejorar la experiencia del usuario al acceder a datos actualizados y organizados.
La base de datos incluirá información sobre destinos turísticos, como su nombre, ubicación y descripción, así como detalles sobre alojamientos, que abarcarán hoteles, hostales y casas rurales. También se integrarán actividades disponibles en cada destino, como excursiones y eventos, y servicios complementarios, incluyendo transporte y opciones de restauración.
NECESIDAD:
La creciente demanda de información turística accesible y organizada ha evidenciado la necesidad de una base de datos que centralice datos relevantes sobre destinos, alojamientos y actividades. En un mundo donde la planificación de viajes es esencial, es fundamental contar con una plataforma que no solo recopile, sino que también actualice constantemente esta información, permitiendo a los viajeros tomar decisiones informadas y optimizar su tiempo y recursos. La integración de opciones de alojamiento, desde hoteles hasta casas rurales, junto con actividades y servicios disponibles en cada destino, mejorará la experiencia del usuario, fomentando un turismo más accesible y satisfactorio.
1. Destinos
- Información sobre los destinos turísticos (nombre, ubicación, descripción).
2. Alojamientos
- Detalles de los alojamientos (nombre, dirección, precio por noche, ID del destino).
3. Actividades
- Registro de actividades disponibles (nombre, descripción, duración, ID del destino).
4. Dia de turismo
- Información sobre el día de turismo (descripción, ID del destino).
5. Tipos_Alojamiento
- Categorías de alojamientos (ID del tipo alojamiento, tipo).
6. Usuarios
- Información de los usuarios registrados (nombre, correo electrónico, contraseña, preferencias).
7. Destino_usuario
- Id de las dos tablas destinos y usuarios (id_destino, id_usuario).
8. Alojamiento_tipo alojamiento
- Id de las dos tablas alojamiento y tipo alojamiento(id_alojamiento, id_tipoAlojamiento).
9. DiaTurismo_Actividades
- Id de las dos tablas DiaTurismo y tipo de Actividad(id_diaturismo, id_actividad).
ENTREGA 2:
El nombre para mi base de datos es PTurismo.
2.2. Listado de tablas que llevara la BD. (Cuales son referenciales y cuales son de movimiento)
Tablas de referencia:
1. Destinos
- Información sobre los destinos turísticos (nombre, ubicación, descripción).
2. Alojamientos
- Detalles de los alojamientos (nombre, tipo, dirección, precio por noche, ID del destino).
3. Actividades
- Registro de actividades disponibles (nombre, descripción, duración, ID del destino).
4. Dia de turismo
- Información sobre el día de turismo (descripción, ID del destino).
5. Usuario
- Información de los usuarios registrados (nombre, correo electrónico, contraseña, preferencias).
6. Tipos_Alojamiento
- Categorías de alojamientos (hotel, hostal, casa rural).
Tablas de movimiento:
1. Destino_usuario
- Id de las dos tablas destinos y usuarios (id_destino, id_usuario).
2. Alojamiento_tipo alojamiento
- Id de las dos tablas alojamiento y tipo alojamiento(id_alojamiento, id_tipoAlojamiento).
3. DiaTurismo_Actividades
- Id de las dos tablas DiaTurismo y tipo de Actividad(id_diaturismo, id_actividad).
2.3. Diseñar el diccionario de datos de cada tabla (campo, nombre el campo, tipo, tamaño y descripción).
2.4. Montar o diseñar el modelo entidad relación.

2.5. Dibujar el Diagrama relacional.

Crear la BD y las tablas respectivas en MySQL (guardar evidencias del código MySQL con el que resuelva dicha actividad) e insertar 10 registros en cada tabla
Copia de proyecto final
ENTREGA 3
ENTREGA 4
Crear una consulta para visualizar los precios por noche mayores a 80.
Análisis:
Qué información se desea mostrar o visualizar
precio por noche mayores a 80
Tabla: alojamiento
Condición: alojamiento> 80
¿Qué comando se debe utilizar?
select
Sintaxis: select id_aloja "id alojamiento", Nombre "Nombres", Direccion "Direcciones" from alojamiento where precio_noche>80;

Crear una consulta para visualizar la dirección y el precio por noche cuyo precio sea menor a 80
Análisis:
Qué información se desea mostrar o visualizar
dirección y precio por noche
Tabla: alojamiento
Condición: dirección alojamiento > 80
¿Qué comando se debe utilizar?
select
Sintaxis: select direccion "direcciones", precio_noche "precio por noche" from alojamiento where precio_noche < 80;

Crear una consulta que visualice los usuarios con preferencia nivel 2
Análisis:
Qué información se desea mostrar o visualizar
preferencias nivel 2
Tabla: usuarios
Condición: preferencia = "2"
¿Qué comando se debe utilizar?
select
Sintaxis: select id_usua "id usuarios", Nombre "Nombres", E_mail "Correo", preferencia "Nivel preferencia" from usuario where preferencia = "2";

Visualizar las actividades que tengan duración mayor o igual a 3 horas
Análisis
Qué información se desea mostrar o visualizar
Actividades mayores o iguales a 3 horas
Tabla: Actividades
Condición: Duración >= "3 horas"
¿Qué comando se debe utilizar?
select
Sintaxis: select id_acti "id actividad", Nombre "Nombres", Duración "Tiempo" from Actividades where Duracion >= "3 horas";

Visualizar la información de los destinos con id 201,301,501,601
Análisis
Qué información se desea mostrar o visualizar
Información de los destinos con id 201,301,501 y 601
Tabla: destinos
Condición: Id_des = "201" o Id_des = "301" o Id_des = "501" o id_des = "601"
¿Qué comando se debe utilizar?
select, or
Sintaxis: select id_des "Id destinos", nombre "Nombre", ubicacion "Ubicación", descripcion "Descripción" from destinos where Id_des = "201" or Id_des = "301" or Id_des = "501" or id_des = "601";

Visualizar los usuarios cuyo nombre terminen con la letra z
Análisis
Qué información se desea mostrar o visualizar
usuarios, nombre
Tabla: usuario
Condición: El nombre del usuario que termine por la letra z
¿Qué comando se debe utilizar?
select, %
Sintaxis: select Nombre from usuario where Nombre like "%z";

Consultar los turistas que viajan a Tokio
Análisis:
¿Qué desea consultar y de qué tablas?
usuario.nombre, usuario.E_mail
destinos.Nombre, destinos.ubicacion, destinos.descripcion
¿Qué tablas se ven afectadas o involucradas?
usuario
destinos
Condicion(es)
viajes a Tokio
¿Cómo se relacionan las tablas?
usuario.id_usua = destinos.id_des
¿Qué comando se debe utilizar?
select, join on
Sintaxis: select usuario.nombre "nombre usuario", usuario.e_mail "correo", destinos.nombre "destino", destinos.ubicacion "ubicacion", destinos.descripcion "descripción" from usuario_destinos join usuario on usuario_destinos.id_usua = usuario.id_usua join destinos on usuario_destinos.id_des = destinos.id_des where destinos.nombre = 'Tokio';

Sumar el total de todos los alojamientos
Análisis:
¿Qué desea consultar y de qué tablas?
alojamiento.precio_noche
¿Qué tablas se ven afectadas o involucradas?
alojamiento
¿Qué comando se debe utilizar?
select, sum
Sintaxis: select sum(alojamiento.precio_noche) "Total de precio alojamiento" from alojamiento;

Consultar el alojamiento más alto
Análisis:
¿Qué desea consultar y de qué tablas?
alojamiento.precio_noche
¿Qué tablas se ven afectadas o involucradas?
alojamiento
¿Qué comando se debe utilizar?
select, max
Sintaxis: select max(alojamiento.precio_noche) "Alojamiento mas caro" from alojamiento;

Consultar el alojamiento más barato
Análisis:
¿Qué desea consultar y de qué tablas?
alojamiento.precio_noche
¿Qué tablas se ven afectadas o involucradas?
alojamiento
¿Qué comando se debe utilizar?
select, min
Sintaxis: select min (alojamineto.precio_noche) "Alojaminto mas barato" from alojamiento;

Consultar el precio por noche promedio de los alojamientos
Análisis:
¿Qué desea consultar y de qué tablas?
alojamiento.precio_noche
¿Qué tablas se ven afectadas o involucradas?
alojamiento
¿Qué comando se debe utilizar?
select, AVG
Sintaxis: select AVG(alojamiento.precio.noche) "Promedio de precio" from alojamiento;

Cambiar el tipo de dato de contraseña a varchar(45) en la tabla cliente
Análisis:
¿Qué desea actualizar y de qué tablas?
Tipo de dato la contraseña en la tabla usuario
¿Qué tablas se ven afectadas o involucradas?
usuario
¿Qué comando se debe utilizar?
alter, modify
Sintaxis: alter table usuario modify column contraseña varchar(45);

Eliminar el usuario con nombre "Carlos García" de la tabla referencias
Análisis:
¿Qué desea eliminar y de qué tablas?
eliminar a "Carlos García" de la tabla usuario
¿Qué tablas se ven afectadas o involucradas?
usuario
¿Qué comando se debe utilizar?
Delete
Sintaxis: Delete from usuario where nombre="Carlos García";

Ordenar usuarios por apellido
Análisis:
¿Qué desea ordenar y de qué tablas?
Ordenar de forma ascendente los apellidos de la tabla usuario
¿Qué tablas se ven afectadas o involucradas?
usuario
¿Qué comando se debe utilizar?
select, order by, asc
Sintaxis: select * from usuario order by apellido ASC;

Visualizar la referencias por usuario mayores a 2
Análisis:
¿Qué desea consultar y de qué tablas?
referencias mayores a 2
¿Qué tablas se ven afectadas o involucradas?
usuarios
¿Qué comando se debe utilizar?
select, sum, group by, having
Sintaxis: select preferencia, count(*) "total" from usuario group by preferencia having total > 1;

Insertar usuario
create procedure insertar_usuario( in _id_usua int, in _nombre varchar(40), in _e_mail varchar(100), in _contraseña varchar(40), in _preferencia int, in _apellido varchar(40))
begin
insert into usuario (id_usua, nombre, e_mail, contraseña, preferencia, apellido)
values ( _id_usua, _nombre, _e_mail, _contraseña, _preferencia, _apellido);
end //

Ahora insertando datos
