Está en la página 1de 8

UNIVERSIDAD JOS FAUSTINO SNCHEZ CARRIN

ESCUELA

DE

F A C U LTAD

DE

INGENIERA

INGENIERA

DE

SISTEMAS

COMPUTACIN

TRABAJO FINAL
CURSO: BASE
NOMBRE

DEL

DE

D ATOS I

PROYECTO: HOTEL CENTENARIO

DOCENTE: ING. ANA DORIS


AUTOR: FREDERIC VICTOR ROMERO SHAPIAMA

HUACHO, DICIEMBRE 2015

HOTEL CENTENARIO
Actualmente el hotel va en constante crecimiento, por lo que necesita de un sistema de
base de datos que registre datos de los clientes que llegan a hospedarse al hotel. Para
as poder dejar atrs los registros hechos a mano y tener un mejor manejo de
informacin. Se espera llevar un buen control con este nuevo proyecto. Los datos
significativos a tener en cuenta son:

Registrar los siguientes datos de los clientes: Documento de identidad, Nombres,


Apellidos, Direccin, Telfono.
Si el husped trae consigo un vehculo, se necesita saber su placa, ya que el Hotel
cuenta con una cochera y se necesitar datos del vehculo para mayor seguridad.
Muchas veces los huspedes viajan por motivos de negocio y trabajo, por lo tanto
desean que les emitan facturas por su alojamiento. Por este motivo el Hotel
necesita registrar la razn social (RUC) para ingresarlo en el registro.
Se necesita registrar el nmero de habitacin alquilado. Adems de ingresar el tipo
de habitacin (Presidencial, Matrimonial, Dos Plazas, Una Plaza), se debe ingresar
el precio de cada habitacin alquilada.
Se debe tener tambin en cuenta el nmero de acompaantes que ingresan a la
habitacin y se debe registrar sus nombres, apellidos y DNI.
Tomar en cuenta que el Hotel realiza reservas de habitaciones, asignndole un
cdigo, indicando el precio, la fecha de inicio y final de la reserva.
Los recepcionistas sern los encargados de registrar las reservas.

CREACIN DE VISTAS
Crear una vista donde se pueda visualizar los nombres, apellidos, DNI
y fecha del da que los clientes se hospedaron en el hotel.
CREATE VIEW V_Clientes
AS
SELECT
dbo.Cliente.Nombres_Cliente,
dbo.Cliente.Apellidos_Cliente,
dbo.Cliente.DNI_Cliente,
dbo.Reserva.Fecha_Inicio FROM dbo.Cliente INNER JOIN dbo.Cliente_reserva ON
dbo.Cliente.ID_Cliente
=
dbo.Cliente_reserva.ID_Cliente
INNER
JOIN
dbo.Reserva ON dbo.Cliente_reserva.ID_Reserva = dbo.Reserva.ID_Reserva
Crear una vista donde se pueda visualizar la cantidad, el mayor y
menor precio de todas las reservas del hotel.
CREATE VIEW V_Cantidad_Reservas
AS
SELECT count(ID_Reserva) as Cantidad_Reservas, max(Precio_Reserva) as
Mximo_Reservas,
min(Precio_Reserva)
as
Mnimo_Reservas
FROM
dbo.Reserva
Crear una vista donde se puedan visualizar el nombre del hotel,
nombre de tipo de habitacin y el nmero de camas que existen en
esa habitacin. Asimismo, solo mostrar descripciones de las
habitaciones del hotel centenario
CREATE VIEW V_Hotel
AS
SELECT dbo.Hotel.Nombre_Hotel, dbo.Numero_habitacion.Numero_Habitacion,
dbo.Tipo_habitacion.Nombre_Tipo_Habitacion, dbo.Tipo_habitacion.Num_Camas
FROM dbo.Hotel INNER JOIN dbo.Habitacion ON dbo.Hotel.ID_Hotel =
dbo.Habitacion.ID_Hotel
INNER
JOIN
dbo.Numero_habitacion
ON
dbo.Habitacion.ID_Numero = dbo.Numero_habitacion.ID_Numero INNER JOIN
dbo.Tipo_habitacion
ON
dbo.Habitacion.ID_Tipo_Habitacion
=
dbo.Tipo_habitacion.ID_Tipo_Habitacion where Nombre_Hotel = 'Centenario'
Crear una vista donde se pueda visualizar que clientes no tienen
vehculos.
CREATE VIEW V_Clientes_Sin_Vehiculo
AS
SELECT
dbo.Cliente.Nombres_Cliente,
dbo.Cliente.DNI_Cliente

dbo.Cliente.Apellidos_Cliente,

FROM dbo.Cliente INNER JOIN dbo.Vehiculo ON dbo.Cliente.ID_Vehiculo =


dbo.Vehiculo.ID_Vehiculo Where Placa_Vehiculo = 'Carece'
Crear una vista donde se pueda visualizar el monto y que factura
registro el empleado Alex Junior.
CREATE VIEW V_Empleados_Facturas
AS
SELECT dbo.Empleado.Nombres_Empleado, dbo.Empleado.Apellidos_Empleado,
dbo.Factura.ID_Factura, dbo.Factura.Total_Factura FROM dbo.Factura INNER
JOIN dbo.Empleado ON dbo.Factura.ID_Empleado = dbo.Empleado.ID_Empleado
where Nombres_Empleado = 'Alex Junior'
Crear una vista donde se pueda visualizar el monto total de todas las
facturas del hotel centenario.
CREATE VIEW V_Monto_Total_Facturas
AS
SELECT sum(Total_Factura) as Total_Facturas, Nombre_Hotel FROM Factura
CROSS JOIN Hotel
where Nombre_Hotel = 'Centenario' group by Nombre_Hotel
Crear una vista donde se pueda visualizar el monto total de facturas
que ha registrado cada trabajador.
CREATE VIEW V_Cantidad_Total_Facturas_Empleados
AS
SELECT
Nombres_Empleado,
Count
(ID_Factura)
AS
Cantidad_Facturas_Registradas FROM dbo.Factura INNER JOIN dbo.Empleado
ON dbo.Factura.ID_Empleado = dbo.Empleado.ID_Empleado
group by
(Nombres_Empleado)
Crear una vista donde se pueda visualizar que cliente han reservado la
habitacin de tipo 'una plaza.
CREATE VIEW V_Cliente_Habitacion
AS
SELECT
dbo.Cliente.Nombres_Cliente,
dbo.Cliente.Apellidos_Cliente,
dbo.Cliente.DNI_Cliente,
dbo.Tipo_habitacion.Nombre_Tipo_Habitacion FROM dbo.Cliente CROSS JOIN
dbo.Tipo_habitacion CROSS JOIN dbo.Reserva where Nombre_Tipo_Habitacion =
'Una Plaza'

Crear una vista donde se pueda visualizar el nmero de facturas que


ha registrado todas las empresas.
CREATE VIEW V_Total_Facturas_Empresas
AS
SELECT Nombre_Empresa, count(ID_Factura) as Total_Facturas FROM
dbo.Empresa INNER JOIN
dbo.Factura ON dbo.Empresa.ID_Empresa = dbo.Factura.ID_Empresa where
Nombre_Empresa = 'Laurente'
group by Nombre_Empresa
Crear una vista donde se pueda visualizar el precio del tipo de
habitacin ms barata y del tipo de habitacin ms cara del hotel
centenario.
CREATE VIEW V_Maximo_Minimo_Habitacion
AS
SELECT max(Precio_Tipo_Habitacion) as Mximo_Precio_Habitacin, min
(Precio_Tipo_Habitacion) as Mnimo_Precio_Habitacin, Nombre_Hotel FROM
dbo.Habitacion
INNER
JOIN
dbo.Tipo_habitacion
ON
dbo.Habitacion.ID_Tipo_Habitacion = dbo.Tipo_habitacion.ID_Tipo_Habitacion
INNER JOIN dbo.Hotel ON dbo.Habitacion.ID_Hotel = dbo.Hotel.ID_Hotel where
Nombre_Hotel = 'Centenario'
group by Nombre_Hotel
Crear una vista donde se pueda observar todos los clientes cuyo
nombre comienza con la letra C.
CREATE VIEW V_Clientes
AS
SELECT
Nombres_Cliente, Apellidos_Cliente, DNI_Cliente, Direccion_Cliente,
Telefono_Cliente
FROM dbo.Cliente
where Nombres_Cliente LIKE 'L%'

CREACIN DE PROCEDIMIENTOS ALMACENADOS


Crear un procedimiento que permita registrar una empresa
create Procedure Ingresar_Empresa
@id_empresa char(5),
@nombre_empresa varchar(50),
@direccion_empresa varchar(50),
@telefono_empresa varchar (50),
@RUC_empresa char(11)

as
begin
insert into
Empresa(ID_Empresa,Nombre_Empresa,Direccion_Empresa,Telefono_Empresa,R
UC_Empresa)
values
(@id_empresa,@nombre_empresa,@direccion_empresa,@telefono_empresa,@
RUC_empresa)
end
go
exec
Ingresar_Empresa
123','015896588','12256654845'

'EM_03','Laureate','Los

Manglares

Crear un procedimiento que permita eliminar una empresa.


create Procedure Eliminar_Empresa
@id_empresa char (5)
as
begin
delete from empresa
where @id_empresa = ID_Empresa
end
go
exec Eliminar_Empresa 'EM_03'
Crear un procedimiento que nos permita recuperar los datos de un
cliente.
create Procedure Buscar_Cliente
@dni_cliente char (8)
as
begin
select * from Cliente
where @dni_cliente = DNI_Cliente
end
go
Execute Buscar_Cliente '48095689'
Crear un procedimiento almacenado que nos devuelva las 2 facturas
con mayor precio.
Create Procedure facturas_mayor_precio
as

begin
select top 2 ID_Factura as Facturas_Mayores, Total_Factura from Factura
order by Total_Factura desc
end
go
exec facturas_mayor_precio
Crear un procedimiento almacenado que nos devuelva todos los
clientes cuyo nombre comienza con la letra L.

CREATE PROCEDURE CLIENTES_NOMBREINICIAL


@letra varchar (5)
AS
BEGIN
SELECT
Nombres_Cliente, Apellidos_Cliente, DNI_Cliente, Direccion_Cliente,
Telefono_Cliente
FROM dbo.Cliente
where Nombres_Cliente LIKE '@letra%'
END
GO
exec CLIENTES_NOMBREINICIAL 'L'
Crear un procedimiento almacenado donde se pueda visualizar que clientes no tienen autos.

CREATE PROCEDURE Clientes_Sin_Vehiculo


@placa varchar(8)
AS
begin
SELECT
dbo.Cliente.Nombres_Cliente,
dbo.Cliente.Apellidos_Cliente,
dbo.Cliente.DNI_Cliente
FROM dbo.Cliente INNER JOIN dbo.Vehiculo ON dbo.Cliente.ID_Vehiculo =
dbo.Vehiculo.ID_Vehiculo
Where Placa_Vehiculo = @placa
end
go
exec Clientes_Sin_Vehiculo 'carece'

También podría gustarte