Proyecto Final
PROYECTO FINAL BASE DE DATOS II
- Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 12 tablas) (Entrega 1)
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.
2. REALIZAR LO SIGUIENTE:
2.1. Darle un nombre a la base de datos.
El nombre para mi base de datos es Viajes_Turismo.
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).
7. Categorías_Actividades
Información sobre las categorías de actividades (nombre, descripción).
8. Transporte
Detalles sobre los medios de transporte disponibles (tipo, descripción, ID del destino).
9. Restaurantes
Información sobre opciones de restauración (nombre, tipo de cocina, dirección, ID del destino).
10. Eventos
Registro de eventos especiales en los destinos (nombre, fecha, descripción, ID del destino).
11. Reseñas
Comentarios y calificaciones de los usuarios sobre destinos y alojamientos (ID del destino, ID del alojamiento, calificación, comentario).
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).
4. Reservas
Información sobre las reservas realizadas por los usuarios (ID del usuario, ID del alojamiento, fecha de inicio, fecha de fin, estado).
5. Itinerarios
Registro de itinerarios personalizados creados por los usuarios (ID del usuario, ID del destino, fecha, actividades planeadas).
6. Favoritos
Lista de destinos y alojamientos favoritos de los usuarios (ID del usuario, ID del destino, ID del alojamiento).
7. Historial_Viajes
Registro de viajes pasados de los usuarios (ID del usuario, ID del destino, fecha de viaje, actividades realizadas).
8. Promociones
Información sobre promociones y descuentos disponibles en alojamientos y actividades (ID del alojamiento, ID de la actividad, porcentaje de descuento, fecha de inicio, fecha de fin).
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) (Entrega 2)
Base de datos: pturismo.

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)
Base de datos con todas las tablas
EJERCICIOS
1. Crear tabla a partir de otra (Create - Insert)
Análisis.
¿Qué se desea consultar?
Crear una tabla con las preferencias únicas de los usuarios registrados.
¿De qué tablas?
-
Tabla fuente: usuario
-
Campo: preferencia
¿Qué tablas se ven afectadas o están involucradas?
-
Afectada: se crea una nueva tabla llamada preferencias_usuarios.
Condiciones:
-
Se deben eliminar duplicados de las preferencias.
¿Qué comandos se deben utilizar?
-
create table
-
select distinct
¿Cómo se relacionan las tablas?
-
Solo se usa la tabla usuario, no hay joins.

2 Crear tabla a partir de otra con join (create - insert - join)
Análisis
¿Qué se desea consultar?
Obtener la cantidad de alojamientos por tipo (hotel, hostal, etc.) y guardarla en una nueva tabla.
¿De qué tablas?
-
tipo_alojamiento
-
tipo_alojamiento_alojamiento
¿Qué tablas se ven afectadas o están involucradas?
-
Fuente: tipo_alojamiento, tipo_alojamiento_alojamiento
-
Afectada: nueva tabla cantidad_alojamientos_por_tipo
Condiciones:
-
Agrupar los datos por tipo de alojamiento.
-
Contar cuántos alojamientos están asociados a cada tipo.
¿Qué comandos se deben utilizar?
-
create table
-
select
-
join
-
group by
-
count
¿Cómo se relacionan las tablas?
-
tipo_alojamiento.id_taloja = tipo_alojamiento_alojamiento.id_taloja

3. Insertar datos en una tabla buscando un valor en otra (insert - select)
¿Qué se desea consultar?
Insertar un nuevo registro en la tabla favoritos, buscando el ID del destino por su nombre.
¿De qué tablas?
-
Se consulta en destinos
-
Se inserta en favoritos
¿Qué tablas se ven afectadas o están involucradas?
-
Afectada: favoritos
-
Fuente: destinos
Condiciones:
-
Que el nombre del destino sea exactamente "Barcelona"
-
El usuario y alojamiento deben existir (por ejemplo, id_usua = 109 y id_aloja = 40)
¿Qué comandos se deben utilizar?
-
insert into
-
select
-
where
¿Cómo se relacionan las tablas?
-
Se extrae id_des de la tabla destinos usando una condición textual (where nombre = 'Barcelona'), y se usa para insertar en favoritos.


creación de triggers
Primer trigger de agregar datos a una tabla, ejemplo:
utilizo una tabla (Destinos) para agregar los datos.


Trigger para modificar un valor
nota: el ifnull se utiliza para dejar los campos como estaban sin cambios.


Trigger para eliminar un dato:


5. Sustentación
EXITOS...