0% encontró este documento útil (0 votos)
206 vistas27 páginas

Informe Final - Base de Datos

Informe Final - Base de datos

Cargado por

20181090
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
206 vistas27 páginas

Informe Final - Base de Datos

Informe Final - Base de datos

Cargado por

20181090
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Facultad de Ingeniería

Carrera de Ingeniería de Sistemas e Informática

Tema:

Proyecto Final – Base de Datos

Curso

Base de Datos (17899)

Docente: Kelvin Celso Macedo Ylachoque

Integrantes:

 Paulocesar Donovan Olivera Bautista U22311356


 Erik Manuel Huamán Garriazo U22213662

Sistema de gestión de Reserva de un Hotel

2024
Identidad de la Empresa: Hotel Hatunkay

En un mundo cada vez más conectado y dinámico, la industria hotelera se enfrenta al


desafío constante de proporcionar experiencias excepcionales y servicios de calidad a
sus huéspedes. Con más de 20 años de trayectoria en la ciudad de Lima y Cajamarca, el
Hotel Hatunkay se ha distinguido por ofrecer un trato familiar y cercano, buscando
siempre que sus clientes se sientan como en casa durante su estancia. En línea con su
visión de proveer la mejor experiencia a sus huéspedes, surge la necesidad de
modernizar sus procesos y servicios, adaptándose a las demandas del mercado actual.

Por ello, me complace presentar el proyecto de implementación de un Sistema de


Reservas en el Hotel Hatunkay. Este sistema representa un paso adelante en la misión
de ofrecer servicios de alojamiento de calidad, mejorando la experiencia tanto para los
huéspedes como para el equipo interno. Al facilitar el proceso de reserva y gestión de
habitaciones, buscando optimizar la eficiencia operativa y garantizar la satisfacción total
de los clientes.

En este documento, exploraremos los detalles de este proyecto, desde su justificación


hasta su implementación y beneficios esperados. Me enfocare en cómo el sistema de
reservas en línea no solo mejorará la experiencia de reserva para los clientes, sino que
también fortalecerá la posición competitiva en el mercado y reforzará la reputación
como un destino hospitalario y acogedor.

Descripción del Proceso en un Hotel

1. Reserva de Habitación:
o El cliente entra al sistema del hotel.
o El cliente busca la disponibilidad de habitaciones.
o El cliente selecciona la habitación y las fechas de estancia.
o El cliente proporciona sus datos personales y confirma la reserva.
o El sistema genera una reserva y envía una confirmación al cliente.
2. Check-in:
o El cliente llega al hotel y se presenta en la recepción.
o El personal del hotel verifica la reserva y asigna la habitación.
o El cliente recibe la llave de la habitación.
3. Estancia:
o Durante la estancia, el cliente puede solicitar servicios adicionales (por
ejemplo, servicio de habitación, spa).
o Los servicios adicionales son registrados en la cuenta de la reserva del
cliente.
4. Check-out:
o El cliente se presenta en la recepción para hacer el check-out.
o El personal del hotel verifica los servicios adicionales y calcula el total a
pagar.
o El cliente realiza el pago y entrega la llave de la habitación.
o El sistema registra el pago y actualiza el estado de la reserva.
5. Valoración del Servicio:
o Después de la estancia, el cliente puede recibir una solicitud para valorar
su experiencia.
o El cliente deja un comentario y una valoración.
o El sistema almacena la valoración y el comentario.

4. Modelamiento
4.1 Identificación de Entidades:

1. Cliente: La tabla “Cliente” almacena información sobre los clientes del hotel,
incluyendo su identificador único, nombre, apellido, correo electrónico único,
número de teléfono y fecha de registro en el sistema.
2. TipoHabitacion: La tabla “TipoHabitacion” define los diferentes tipos de
habitaciones disponibles en el hotel, detallando el identificador único, nombre,
descripción, capacidad máxima de personas y el precio por noche para cada tipo
de habitación.
3. Habitacion: La tabla “Habitación” contiene información sobre las habitaciones
individuales del hotel, especificando el identificador único de cada habitación, el
tipo de habitación al que pertenece, el número de la habitación y su estado actual
(Disponible, Ocupada o en Mantenimiento).
4. Servicio: La tabla “Servicio” detalla los servicios adicionales ofrecidos por el
hotel a los huéspedes, incluyendo el identificador único de cada servicio, su
nombre, descripción y precio.
5. Reserva: La tabla “Reserva” registra las reservas realizadas por los clientes, con
detalles como el identificador único de la reserva, el cliente que realizó la
reserva, la habitación reservada, las fechas de inicio y fin de la reserva, el estado
de la reserva (Pendiente, Confirmada o Cancelada), la cantidad de personas
incluidas y el monto total a pagar.
6. ReservaServicio: La tabla “ReservaServicio” asocia los servicios adicionales
con las reservas realizadas, especificando el identificador de la reserva y del
servicio, junto con la cantidad solicitada de cada servicio.
7. Comentario: La tabla “Comentario” almacena los comentarios y valoraciones
realizados por los clientes sobre su estancia, incluyendo un identificador único
para cada comentario, el cliente que lo realizó, la reserva a la que se refiere, el
texto del comentario, la valoración numérica y la fecha en que se realizó.
8. TransaccionPago: La tabla “TransaccionPago” registra las transacciones de
pago asociadas a las reservas, detallando el identificador único de cada
transacción, la reserva relacionada, el monto del pago, la fecha de la transacción
y el estado del pago (Pendiente, Aprobado o Rechazado).
9. PersonalHotel: La tabla “PersonalHotel” almacena información sobre el
personal del hotel, incluyendo su identificador único, nombre, apellido, puesto o
rol, fecha de contratación y opcionalmente la reserva asignada al personal si
aplica, referenciando la tabla “Reserva”.

4.2 Trazar Primer Diagrama:


4.3 Relación de Entidades

TipoHabitacion y Habitacion

 Relación: Uno a Muchos (1)


 Descripción: Un tipo de habitación puede tener muchas habitaciones, pero una
habitación pertenece a un solo tipo de habitación.
 Atributos de Relación: id_tipo en Habitacion referencia id_tipo en
TipoHabitacion.

Habitacion y Reserva

 Relación: Uno a Muchos (1)


 Descripción: Una habitación puede tener muchas reservas a lo largo del tiempo,
pero una reserva está asociada a una sola habitación.
 Atributos de Relación: id_habitacion en Reserva referencia id_habitacion en
Habitacion.

Cliente y Reserva

 Relación: Uno a Muchos (1)


 Descripción: Un cliente puede hacer muchas reservas, pero una reserva es hecha
por un solo cliente.
 Atributos de Relación: id_cliente en Reserva referencia id_cliente en Cliente.

Cliente y Comentario

 Relación: Uno a Muchos (1)


 Descripción: Un cliente puede dejar muchos comentarios, pero un comentario es
dejado por un solo cliente.
 Atributos de Relación: id_cliente en Comentario referencia id_cliente en Cliente.
Reserva y Comentario

 Relación: Uno a Muchos (1)


 Descripción: Una reserva puede tener muchos comentarios, pero un comentario
está asociado a una sola reserva.
 Atributos de Relación: id_reserva en Comentario referencia id_reserva en
Reserva.

Reserva y Servicio (a través de ReservaServicio)

 Relación: Muchos a Muchos (M)


 Descripción: Una reserva puede incluir muchos servicios, y un servicio puede
ser incluido en muchas reservas.
 Atributos de Relación: id_reserva en ReservaServicio referencia id_reserva en
Reserva; id_servicio en ReservaServicio referencia id_servicio en Servicio.

Reserva y TransaccionPago

 Relación: Uno a Muchos (1)


 Descripción: Una reserva puede tener muchas transacciones de pago (por
ejemplo, pagos parciales), pero una transacción de pago está asociada a una sola
reserva.
 Atributos de Relación: id_reserva en TransaccionPago referencia id_reserva en
Reserva.

Reserva y PersonalHotel (a través de la referencia id_reserva en PersonalHotel)

 Relación: Muchos a Uno (M:1) (Opcional, dependiendo de la estructura de datos


específica)
 Descripción: Muchas reservas pueden ser gestionadas por el mismo personal del
hotel, pero este es un aspecto más operacional y puede variar dependiendo del
diseño del sistema.

4.4 Identificación de Atributos:

El siguiente es paso es identificar los atributos para cada conjunto de entidades.

Cliente

 Id de cliente
 nombre
 apellido
 email
 teléfono
 fecha de registro

Habitación

 Id de habitación
 Id del tipo de habitación
 numero
 estado

TipoHabitacion

 Id del tipo de habitación


 nombre
 descripción
 capacidad
 precio

PersonalHotel

 Id de personal
 nombre
 apellido
 puesto
 fecha de contratación

Reserva

 Id de reserva
 id de cliente
 id de habitacion
 fecha de inicio
 fecha de fin
 estado
 cantidad de personas
 total de pago

Servicio

 Id de servicio
 nombre
 descripción
 precio

ReservaServicio

 Id de reserva
 Id de servicio
 cantidad

Comentario

 Id de comentario
 id de cliente
 id de reserva
 comentario
 valoración
 fecha de comentario

TransaccionPago

 Id de transacción
 Id de reserva
 monto
 fecha de transaccion
 estado de pago

4.5 Selección de claves Principales:

TipoHabitacion

 Clave Principal: id_tipo


 Descripción: Identificador único para cada tipo de habitación.
 Tipo: INT

Habitacion

 Clave Principal: id_habitacion


 Descripción: Identificador único para cada habitación.
 Tipo: INT

Cliente

 Clave Principal: id_cliente


 Descripción: Identificador único para cada cliente.
 Tipo: INT

PersonalHotel

 Clave Principal: id_personal


 Descripción: Identificador único para cada miembro del personal.
 Tipo: INT

Reserva

 Clave Principal: id_reserva


 Descripción: Identificador único para cada reserva.
 Tipo: INT

Servicio

 Clave Principal: id_servicio


 Descripción: Identificador único para cada servicio ofrecido.
 Tipo: INT

ReservaServicio
 Clave Principal: id_reserva, id_servicio
 Descripción: Combinación única de reserva y servicio.
 Tipo: INT (ambos)

Comentario

 Clave Principal: id_comentario


 Descripción: Identificador único para cada comentario.
 Tipo: INT

TransaccionPago

 Clave Principal: id_transaccion


 Descripción: Identificador único para cada transacción de pago.

4.5 Modelo Lógico:


4.6 Diccionario de datos

Tabla Descripción Columna Tipo de Restricciones Relaciones


Dato
Cliente Almacena id_cliente INT PRIMARY KEY
información sobre nombre VARCHA
los clientes del hotel. R(50)
apellido VARCHA
R(50)
email VARCHA UNIQUE
R(100)
telefono VARCHA
R(15)
fecha_registro DATE
TipoHabit Define los diferentes id_tipo INT PRIMARY KEY
acion tipos de habitaciones nombre VARCHA
disponibles en el R(50)
hotel. descripcion TEXT
capacidad INT
precio DECIMAL
(18, 2)
Habitacion Contiene id_habitacion INT PRIMARY KEY
información sobre las id_tipo INT FOREIGN KEY TipoHabitaci
habitaciones REFERENCES on(id_tipo)
individuales del TipoHabitacion(id
hotel. _tipo)
numero INT
estado VARCHA CHECK (estado
R(15) IN ('Disponible',
'Ocupada',
'Mantenimiento'))
Servicio Detalla los servicios id_servicio INT PRIMARY KEY
adicionales que el nombre VARCHA
hotel ofrece a los R(180)
huéspedes. descripcion TEXT
precio DECIMAL
(18, 2)
Reserva Registra las reservas id_reserva INT PRIMARY KEY
realizadas por los id_cliente INT FOREIGN KEY Cliente(id_cl
clientes. REFERENCES iente)
Cliente(id_cliente
)
id_habitacion INT FOREIGN KEY Habitacion(i
REFERENCES d_habitacion
Habitacion(id_ha )
bitacion)
fecha_inicio DATE
fecha_fin DATE
estado VARCHA CHECK (estado
R(10) IN ('Pendiente',
'Confirmada',
'Cancelada'))
cantidad_perso INT
nas
total_pago DECIMAL
(18, 2)
ReservaSe Asocia servicios id_reserva INT PRIMARY KEY, Reserva(id_r
rvicio adicionales con las FOREIGN KEY eserva),
reservas realizadas. REFERENCES Servicio(id_s
Reserva(id_reserv ervicio)
a) PRIMARY
KEY, FOREIGN
KEY
REFERENCES
Servicio(id_servic
io)
id_servicio INT
cantidad INT
Comentari Almacena id_comentario INT PRIMARY KEY
o comentarios y id_cliente INT FOREIGN KEY Cliente(id_cl
valoraciones REFERENCES iente)
realizadas por los Cliente(id_cliente
clientes sobre su )
estancia. id_reserva INT FOREIGN KEY Reserva(id_r
REFERENCES eserva)
Reserva(id_reserv
a)
comentario TEXT
valoracion INT
fecha_comenta DATE
rio
Transaccio Registra las id_transaccion INT PRIMARY KEY
nPago transacciones de id_reserva INT FOREIGN KEY Reserva(id_r
pago asociadas a las REFERENCES eserva)
reservas. Reserva(id_reserv
a)
monto DECIMAL
(18, 2)
fecha_transacc DATE
ion
estado_pago VARCHA CHECK
R(10) (estado_pago IN
('Pendiente',
'Aprobado',
'Rechazado'))
PersonalH Almacena id_personal INT PRIMARY KEY
otel información sobre el nombre VARCHA
personal que trabaja R(50)
en el hotel. apellido VARCHA
R(50)
puesto VARCHA
R(50)
fecha_contrata DATE
cion
id_reserva INT FOREIGN KEY Reserva(id_r
REFERENCES eserv
Reserva(id_reserv
a)

5. Implementación:
5.1 Creación e Inserción:
Tabla Cliente:
Tabla Habitación:

Tabla Tipo de Habitación:


Tabla Personal Hotel:

Tabla Reserva:
Tabla Servicio:

Tabla Reserva y Servicio:


Tabla Transacción Pago:

Tabla Comentario:
5.2 Consultas:
5.2.1 Consultas Simples:
Se desea mostrar: Todos los clientes que se han registrado en el sistema después del 1 de julio
de 2024. Esto ayuda a identificar clientes recientes.
SELECT * FROM Cliente
WHERE fecha_registro < '2024-01-20';

Se desea mostrar: Todas las habitaciones cuyo estado es 'Disponible'. Esto permite ver qué
habitaciones están libres para ser reservadas.
SELECT * FROM Habitacion WHERE estado = 'Disponible';

5.2.2 Consultas con grupo:


Se desea mostrar: El número total de reservas que ha hecho cada cliente. La columna
num_reservas indica cuántas reservas tiene cada cliente.

Se desea mostrar: La cantidad total de pagos agrupados por el estado de pago


(estado_pago). Esto proporciona una visión del total pagado según cada estado (por ejemplo,
'Pendiente', 'Completo').
SELECT estado_pago, SUM(monto) AS total_pagado
FROM TransaccionPago
GROUP BY estado_pago;

5.2.3 Procedimientos almacenados


Se desea realizar: Un procedimiento almacenado que, al proporcionar el id_cliente,
devuelve todas las reservas realizadas por ese cliente. Esto facilita la consulta de reservas
específicas de un cliente.
CREATE PROCEDURE ObtenerReservasPorCliente
@id_cliente INT
AS
BEGIN
SELECT * FROM Reserva
WHERE id_cliente = @id_cliente;
END;
EXEC ObtenerReservasPorCliente @id_cliente = 304;

Se desea realizar: Un procedimiento almacenado que actualiza el estado de una reserva


específica, permitiendo modificar el estado de la reserva a uno nuevo proporcionado
como parámetro.

CREATE PROCEDURE ActualizarEstadoReserva


@id_reserva INT,
@nuevo_estado VARCHAR(50)
AS
BEGIN
UPDATE Reserva
SET estado = @nuevo_estado
WHERE id_reserva = @id_reserva;

END;

EXEC ActualizarEstadoReserva @id_reserva = 506, @nuevo_estado =


'Confirmada';

SELECT [estado] FROM [dbo].[Reserva]

5.2.4 Funciones
Se desea realizar: Una función que calcula el total de pago para una reserva específica
sumando el precio de todos los servicios asociados a esa reserva.
CREATE FUNCTION CalcularTotalPago (@id_reserva INT)
RETURNS DECIMAL(10, 2)
AS
BEGIN
DECLARE @total DECIMAL(10, 2);
SELECT @total = SUM(precio) FROM ReservaServicio
JOIN Servicio ON ReservaServicio.id_servicio = Servicio.id_servicio
WHERE ReservaServicio.id_reserva = @id_reserva;
RETURN @total;
END;

SELECT dbo.CalcularTotalPago(508) AS TotalPago;


Se desea realizar: Una función que calcula el número de noches entre dos fechas dadas, lo cual
es útil para determinar la duración de una estadía.
CREATE FUNCTION CalcularNoches (@fecha_inicio DATE, @fecha_fin DATE)
RETURNS INT
AS
BEGIN
RETURN DATEDIFF(DAY, @fecha_inicio, @fecha_fin);
END;

SELECT dbo.CalcularNoches('2024-07-01', '2024-07-10') AS NumeroDeNoches;

5.2.5 Vistas

Se desea mostrar: Una vista que combina información sobre las reservas, clientes y
habitaciones, proporcionando una vista completa de todas las reservas, incluyendo el nombre
del cliente, el número de la habitación, y otros detalles relevantes.

CREATE VIEW VistaReservas AS


SELECT
r.id_reserva,
c.nombre AS cliente_nombre,
c.apellido AS cliente_apellido,
h.numero AS habitacion_numero,
r.fecha_inicio,
r.fecha_fin,
r.estado,
r.cantidad_personas,
r.total_pago
FROM Reserva r
JOIN Cliente c ON r.id_cliente = c.id_cliente

JOIN Habitacion h ON r.id_habitacion = h.id_habitacion;

SELECT * FROM VistaReservas;


Se desea mostrar: Una vista que presenta el total de ingresos generados por cada servicio,
calculado a partir de la cantidad de servicios solicitados multiplicada por su precio. Esto ayuda
a analizar el rendimiento financiero de cada servicio.

CREATE VIEW VistaIngresosPorServicio AS


SELECT
ser.nombre AS servicio_nombre,
SUM(rs.cantidad * ser.precio) AS total_ingresos
FROM ReservaServicio rs
JOIN Servicio ser ON rs.id_servicio = ser.id_servicio
GROUP BY ser.nombre;

GO

Select * from VistaIngresosPorServicio

6. Administración
6.1 Creación de Back Up
Vamos donde nuestra base de datos y damos anticlic ahí escogemos “Tasks” luego
hacemos clic en “Back up”.
Seleccionamos Full:

Ponemos el nombre de nuestro “Back up”


Luego verificamos el “Back up”

6.1 Creación de Usuarios


Nos vamos a “security” y luego “logins” y luego seleccionamos “New login”:
Después le damos lo roles que tendrá.
Después la base de datos que queremos que use.
Luego verificamos el usuario que creamos:

Nos conectamos:
7. Conclusiones

7.1 Conclusiones:

 El sistema de gestión de reservas propuesto para el Hotel Hatunkay está bien


estructurado, con un modelo de datos completo y relaciones adecuadas entre las
tablas.
 La identificación de entidades, atributos y claves primarias está clara, facilitando
la integridad de los datos y la ejecución eficiente de consultas y procedimientos.
 Las consultas SQL, procedimientos almacenados, funciones y vistas
proporcionan herramientas útiles para la administración y análisis de reservas,
pagos y servicios.
 Los procesos de administración como la creación de copias de seguridad y
usuarios están bien definidos, asegurando la seguridad y mantenimiento
adecuado del sistema.

7.2 Recomendaciones:

 Realizar pruebas exhaustivas del sistema para verificar la funcionalidad y


detectar posibles errores antes de su implementación en el entorno real.
 Capacitar al personal del hotel en el uso del nuevo sistema para asegurar una
transición fluida y una adopción efectiva.
 Considerar la integración de módulos adicionales para la gestión de promociones
y descuentos, lo que podría mejorar aún más la experiencia del cliente y la
eficiencia operativa.
 Monitorear el rendimiento del sistema después de su implementación para
realizar ajustes y mejoras según sea necesario.
Referencias Bibliográficas

 Ramos, J. (2012). Sistemas de bases de datos: Diseño, implementación y


administración. Alfaomega.
 Méndez, A., & Martínez, M. (2018). Diseño y administración de bases de
datos. McGraw-Hill Interamericana.
 Morales, F. (2017). Administración de bases de datos relacionales. Editorial
Reverte.
 García, J. R. (2015). Fundamentos de sistemas de información. Pearson
Educación.
 Cordero, J. L. (2019). Gestión de bases de datos y sistemas de información.
Editorial UOC.
 Zamora, A. (2020). Introducción a las bases de datos: Teoría y práctica.
Ediciones Paraninfo.
 López, R. (2016). Administración y diseño de bases de datos. Editorial
Universitaria.
 Núñez, C. (2014). Modelado de datos y diseño de bases de datos. Ediciones
Edet.

También podría gustarte