0% encontró este documento útil (0 votos)
112 vistas11 páginas

Tarea 8

Cargado por

Charly Garcia
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)
112 vistas11 páginas

Tarea 8

Cargado por

Charly Garcia
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

Universidad Mariano Gálvez de Guatemala

Ingenería En Sistemas De Información Y Ciencias De la Computacion

Ing. Carmen Lorena España Jurado

Curso: Base de datos 1

Tarea #8

Carné: 9989-19-5853

Charly Alexander Garcia Gomez


Contenido
Introducción al Diseño de Base de Datos para una Cadena de Hoteles.....................................3
Crear el diagrama E/R (Entidad/Relación):.................................................................................4
Crear el modelo relacional..........................................................................................................5
Identificar las relaciones entre entidades...................................................................................5
Identificar las llaves Primarias y Foráneas..................................................................................6
Identificar campos que pueden ser llaves únicas.......................................................................6
Crear las tablas en Oracle............................................................................................................7
Insertar datos y realizar consultas..............................................................................................9
Consulta 1................................................................................................................................9
Consulta 2..............................................................................................................................10
Conclusión.................................................................................................................................11
Introducción al Diseño de Base de Datos para
una Cadena de Hoteles

En el mundo de la tecnología de la información, el diseño de bases de datos desempeña un


papel fundamental en la organización y gestión eficiente de la información. Uno de los
escenarios más comunes donde esta disciplina cobra relevancia es en la industria hotelera.
Imagina una cadena de hoteles que opera en diversas ubicaciones, atendiendo a una amplia
clientela, y que necesita gestionar la información relacionada con sus hoteles, categorías,
habitaciones, clientes, reservas y más. Este desafío requiere un diseño de base de datos sólido
y bien estructurado para garantizar la eficiencia en la gestión de datos y la satisfacción de los
clientes.

El objetivo principal de este proyecto es desarrollar un modelo de base de datos que permita a
la cadena de hoteles almacenar y acceder a información crítica de manera eficiente. Este
modelo no solo debe representar la estructura y relaciones de los datos, sino también
garantizar la integridad y consistencia de la información. Para lograrlo, se empleará un enfoque
basado en el modelo Entidad-Relación (E/R), que es una técnica ampliamente utilizada en el
diseño de bases de datos.

A lo largo de este proceso, exploraremos las diversas entidades que componen este sistema,
como hoteles, categorías, habitaciones, clientes y agencias de viajes, y entenderemos cómo se
relacionan entre sí. Además, identificaremos las claves primarias y foráneas necesarias para
mantener la integridad de los datos y abordaremos consideraciones importantes, como la
eliminación de redundancias y la minimización de duplicación de información.

En última instancia, este proyecto no solo se enfocará en el diseño conceptual de la base de


datos, sino que también incluirá la creación de tablas reales en un sistema de gestión de bases
de datos (DBMS) como Oracle, junto con ejemplos de consultas que pueden realizarse para
obtener información útil para la cadena de hoteles.
Crear el diagrama E/R (Entidad/Relación):

Primero, necesitas identificar las entidades y las relaciones entre ellas. Aquí están las entidades
principales:

Hotel (con atributos: nombre, dirección, teléfono, año de construcción, etc.)

Categoría de Hotel (con atributos: tipo de categoría, descripción)

Habitación (con atributos: código, tipo, planta)

Cliente (con atributos: nombre, dirección, teléfono)

Agencia de Viajes (con atributos: nombre)

Reserva (con atributos: precio, fecha de inicio, fecha de fin)

Las relaciones principales son:

Un hotel pertenece a una categoría de hotel.

Un hotel tiene muchas habitaciones.

Un cliente puede realizar muchas reservas.

Una agencia de viajes puede realizar muchas reservas.

Una reserva está asociada a un cliente o una agencia de viajes.

Una reserva está asociada a una habitación.

Dibuja el diagrama E/R con estas entidades y relaciones. Utiliza rombos para las relaciones y
rectángulos para las entidades. Conecta las entidades con líneas para mostrar las relaciones.

Crear el modelo relacional


A partir del diagrama E/R, puedes crear un modelo relacional. Cada entidad se convierte en
una tabla, y las relaciones se convierten en claves foráneas en las tablas correspondientes.
Aquí tienes una representación simplificada del modelo relacional:

Tabla de Hotel (HotelID, Nombre, Dirección, Teléfono, Año de Construcción, CategoríaID)

Tabla de Categoría de Hotel (CategoríaID, Tipo de Categoría, Descripción)

Tabla de Habitación (HabitaciónID, Código, Tipo, Planta, HotelID)

Tabla de Cliente (ClienteID, Nombre, Dirección, Teléfono)

Tabla de Agencia de Viajes (AgenciaID, Nombre)

Tabla de Reserva (ReservaID, Precio, Fecha de Inicio, Fecha de Fin, ClienteID, AgenciaID,
HabitaciónID)

Identificar las relaciones entre entidades

Hotel y Categoría de Hotel tienen una relación uno a uno.

Hotel y Habitación tienen una relación uno a muchos.

Cliente y Reserva tienen una relación uno a muchos.

Agencia de Viajes y Reserva tienen una relación uno a muchos.

Reserva y Habitación tienen una relación uno a uno.

4. Identificar tablas intermedias para relaciones muchos a muchos:

En este diseño, no hay relaciones muchos a muchos, por lo que no se necesitan tablas
intermedias.

Identificar las llaves Primarias y Foráneas


Las llaves primarias están marcadas con "(ID)" en las tablas anteriores. Por ejemplo, HotelID es
la llave primaria de la tabla de Hotel.

Las llaves foráneas son las que hacen referencia a las llaves primarias en otras tablas. Por
ejemplo, CategoríaID en la tabla de Hotel es una llave foránea que se relaciona con la llave
primaria de Categoría de Hotel (CategoríaID).

Identificar campos que pueden ser llaves


únicas

Número de identificación único para hoteles: Puedes considerar un campo adicional, como un
"HotelID" o "Código de Hotel," que sea único para cada hotel en tu base de datos. Esto podría
ser útil si necesitas identificar un hotel de manera única en tus consultas y relaciones.

Número de identificación único para categorías de hotel: Al igual que con los hoteles, podrías
agregar un campo único, como "CategoriaID" o "Código de Categoría," para identificar de
manera única cada categoría de hotel.

Número de identificación único para habitaciones: Similar a los hoteles y categorías, puedes
tener un campo como "HabitacionID" o "Código de Habitación" que sea único para cada
habitación.

Número de identificación único para clientes y agencias de viajes: Puedes usar un campo como
"ClienteID" y "AgenciaID" para identificar de manera única a cada cliente y agencia de viajes.

Número de identificación único para reservas: Si es necesario, podrías tener un campo


"ReservaID" que sea único para cada reserva en la base de datos.

Correo electrónico único para clientes o agencias de viajes: Si se requiere que los clientes o
agencias de viajes tengan una identificación única basada en su dirección de correo
electrónico, podrías considerar usar el campo "Email" como llave única.

Crear las tablas en Oracle


-- Tabla de Hotel

CREATE TABLE Hotel (

HotelID NUMBER PRIMARY KEY,

Nombre VARCHAR2(255) NOT NULL,

Direccion VARCHAR2(255) NOT NULL,

Telefono VARCHAR2(20),

AnioConstruccion NUMBER,

CategoriaID NUMBER,

FOREIGN KEY (CategoriaID) REFERENCES CategoriaDeHotel(CategoriaID)

);

-- Tabla de CategoriaDeHotel

CREATE TABLE CategoriaDeHotel (

CategoriaID NUMBER PRIMARY KEY,

TipoDeCategoria VARCHAR2(50) NOT NULL,

Descripcion VARCHAR2(255)

);

-- Tabla de Habitacion

CREATE TABLE Habitacion (

HabitacionID NUMBER PRIMARY KEY,

Codigo VARCHAR2(20) NOT NULL,

Tipo VARCHAR2(50) NOT NULL,

Planta NUMBER,

HotelID NUMBER,

FOREIGN KEY (HotelID) REFERENCES Hotel(HotelID)

);

-- Tabla de Cliente

CREATE TABLE Cliente (


ClienteID NUMBER PRIMARY KEY,

Nombre VARCHAR2(100) NOT NULL,

Direccion VARCHAR2(255),

Telefono VARCHAR2(20)

);

-- Tabla de AgenciaDeViajes

CREATE TABLE AgenciaDeViajes (

AgenciaID NUMBER PRIMARY KEY,

Nombre VARCHAR2(100) NOT NULL

);

-- Tabla de Reserva

CREATE TABLE Reserva (

ReservaID NUMBER PRIMARY KEY,

Precio NUMBER NOT NULL,

FechaInicio DATE NOT NULL,

FechaFin DATE NOT NULL,

ClienteID NUMBER,

AgenciaID NUMBER,

HabitacionID NUMBER,

FOREIGN KEY (ClienteID) REFERENCES Cliente(ClienteID),

FOREIGN KEY (AgenciaID) REFERENCES AgenciaDeViajes(AgenciaID),

FOREIGN KEY (HabitacionID) REFERENCES Habitacion(HabitacionID)

);

Insertar datos y realizar consultas


Consulta 1: Listado de personas que han realizado reservas de habitaciones,
identificando si fueron de forma particular o por medio de la agencia de viajes.

SELECT

CASE

WHEN r.ClienteID IS NOT NULL THEN c.Nombre

WHEN r.AgenciaID IS NOT NULL THEN 'Agencia: ' || a.Nombre

END AS Persona,

CASE

WHEN r.ClienteID IS NOT NULL THEN 'Particular'

WHEN r.AgenciaID IS NOT NULL THEN 'Agencia de Viajes'

END AS Tipo

FROM Reserva r

LEFT JOIN Cliente c ON r.ClienteID = c.ClienteID

LEFT JOIN AgenciaDeViajes a ON r.AgenciaID = a.AgenciaID;

Consulta 2: Lista de hoteles con sus diferentes habitaciones, incluyendo código de


habitación y tipo, así como, deberá indicar qué tipo de categoría son.
SELECT

h.Nombre AS Hotel,

h.Direccion,

h.Telefono,

c.TipoDeCategoria AS Categoria,

ha.Codigo AS CodigoHabitacion,

ha.Tipo AS TipoHabitacion

FROM Hotel h

INNER JOIN CategoriaDeHotel c ON h.CategoriaID = c.CategoriaID

INNER JOIN Habitacion ha ON h.HotelID = ha.HotelID

ORDER BY Hotel, CodigoHabitacion;


Conclusión

El diseño de una base de datos para una cadena de hoteles es un proceso esencial para
gestionar eficazmente la información crítica relacionada con la industria hotelera. Durante este
proyecto, hemos explorado los principios fundamentales del diseño de bases de datos, desde
la identificación de entidades y relaciones hasta la implementación práctica en un sistema de
gestión de bases de datos (DBMS).

Algunos puntos destacados de este proceso incluyen:

Modelo E/R para la representación conceptual: Hemos utilizado el modelo Entidad-Relación


(E/R) para visualizar las entidades clave involucradas en el sistema, como hoteles, categorías,
habitaciones, clientes y agencias de viajes, así como las relaciones entre ellas. Esto proporciona
una base sólida para comprender cómo se estructuran los datos.

Modelo relacional para la implementación práctica: A partir del modelo E/R, hemos creado un
modelo relacional que define las tablas, campos y relaciones necesarios en la base de datos.
Esto asegura que los datos se almacenen de manera organizada y coherente.

Gestión de integridad de datos: Hemos identificado las llaves primarias y foráneas que
garantizan la integridad de los datos, evitando duplicados y estableciendo conexiones precisas
entre las entidades.

Consultas prácticas: Hemos demostrado cómo realizar consultas útiles que permiten acceder a
información valiosa, como listar las personas que han realizado reservas y obtener detalles de
hoteles y habitaciones.

En resumen, el diseño de una base de datos para una cadena de hoteles es un proceso integral
que abarca desde la planificación inicial hasta la implementación práctica. Una base de datos
bien diseñada no solo facilita la gestión de datos, sino que también contribuye a una operación
eficiente de la cadena de hoteles, mejorando la satisfacción del cliente y la toma de decisiones
informadas. La adaptabilidad y escalabilidad son esenciales para garantizar que la base de
datos pueda crecer y evolucionar con las necesidades cambiantes de la industria hotelera.

También podría gustarte