Asesor en Base de Datos

Iniciado por dark_headhunter, 13 Enero 2011, 18:11 PM

0 Miembros y 1 Visitante están viendo este tema.

dark_headhunter

Buenos días, quiero hacer una propuesta:

Soy estudiante de informática en erasmus (español en otro pais), y en la asignatura Base de datos estoy teniendo problemas en un trabajo que es definitivo. Basicamente el entidad relación está hecho (aun hay algunos problemas con atributos), y la cosa sería pasarlo a A Microsoft SQL Server 2008 y hacer pocas consultas. El problema es que debido al idioma no nos estamos enterando de muchas cosas, y necesitamos a alguien más o menos conocimientos sólidos que pueda ayudarnos y asesorarnos. Por supuesto, nosotros por nuestra parte aportaríamos una gratificación económica dentro de nuestras posibilidades que hablaríamos en privado. El trabajo no es gran cosa, el único problema es saber hacerlo.

Espero vuestras respuestas, un saludo.
La informacion es nuestra arma, el anonimato nuestra armadura

Devilboy.Devil


dark_headhunter

Bien, quizás sea un poco pesado, y se me condene al ostracismo en este foro, pero vosotros lo habéis querido  ;)

Dado este enunciado:
CitarHaga una base de datos para el uso de una cadena de hoteles. Esta base de datos debe tomar norta de las reservas efectuadas, de tal modo que permita gestionar corrientemente el hotel.

La base de datos debe registrar todos los hoteles de la cadena, y para cada uno especificar: el número de estrellas, la morada y la ciudad; restaurantes/bares que el hotel pueda tener, incluyendo su categoria y el tipo de comidas que proporciona en cada uno (snack, desayuno, comida, cena). Aparte de eso, debe especificar los servicios disponibles para los huéspedes, como alquiler de salas de reuniones, de coches, y otros.

Para cada habitación en cada hotel, es necesario especificar su número, el tipo (Individual, doble, matrimonio, etc) y las opciones disponibles en la habitación: TV, casa de baño, internet, mini-bar, casa de baño privada, lavanderia, etc. El sistema debe permitir especificar diversas opciones para cada habitación, pero sin limitarlas previamente.

Cada huésped que pase por el hotel tiene que quedar registrado, siendo necesario guardar el nombre completo, el DNI, el teléfono y la ciudad donde habita. Para cada reserva, es necesario guardar la(s) habitaciones(s) para la(s) cual(es) la reserva está hecha, los huéspedes para cada habitación, y para cada huésped las fechas de entrada y salida y el régimen alojamiento (Alojamiento, Alojamiento y desayuno, Media-Pensión, Pensión Completa).

Se pide hacer la base de datos, de momento, hablando con el profesor y tal, hemos llegado a que El E/R viene a ser algo así:



Faltan atributos correspondiente, pues bien, no sabría como pasarlo a tabla, sobre todo para el modelo relacional con el que empezar a rellenar mi estructura.
La informacion es nuestra arma, el anonimato nuestra armadura

Spider-Net

#3
CitarTabla HOTEL
idhotel (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(150))
estrellas (INT)
morada (VARCHAR(150) Aunque no estoy seguro a que se refiere con morada
ciudad (VARCHAR(150))

CitarTabla RESTAURANTE
idrestaurante (INT: unique, auto_increment, primary_key)
idhotel (INT: foreign_key)
nombre (VARCHAR(150))
categoria (VARCHAR(150)) No sé si la categoría son por ejemplo "3 tenedores" u otra cosa, como no se especifica lo pongo varchar, si es en número de tenedores sería más conveniente usar un INT.

CitarRelación HOTEL-SERVICIO
idhotel (INT: primary_key)
idservicio (INT: primary_key)

CitarTabla SERVICIO
idservicio (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(255))

CitarRelación RESTAURANTE-COMIDA
idrestaurante (INT: primary_key)
idcomida (INT: primary_key)

CitarTabla COMIDA
idcomida (INT: unique, auto_increment, primary_key)
tipo (ENUM('snack','desayuno','comida','cena'))

-----------

CitarRelación HOTEL-HABITACION
idhotel (INT: primary_key)
idhabitacion (INT: primary_key)

CitarTabla HABITACION
idhabitacion (INT: unique, auto_increment, primary_key)
tipo (VARCHAR(100))

CitarRelación HABITACION-SERVICIO
idhabitacion (INT: primary_key)
idserviciohabitacion (INT: primary_key)

CitarTabla SERVICIO_HABITACION
idserviciohabitacion (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(255))

-------------

CitarRelación HOTEL-HUESPED
idhotel (INT: primary_key)
idhuesped (INT: primary_key)

CitarTabla HUESPED
idhuesped (INT: unique, auto_increment, primary_key)
nombre (VARCHAR(200))
DNI (VARCHAR(10): unique)
telefono (VARCHAR(13)) 13 Caracteres para poder almacenar prefijos de distintos países. Se podría poner UNIQUE pero es posible que dos personas que vivan en la misma casa (por lo tanto con el mismo número fijo) hagan reservas individuales por lo que yo no usaría el atributo UNIQUE en el teléfono.
ciudad (VARCHAR(150))

CitarTabla RESERVA
idreserva (INT: unique, auto_increment, primary_key)
idhotel (INT: foreign_key)

CitarRelación RESERVA-HABITACION
idreserva (INT: primary_key)
idhabitacion (INT: primary_key)

CitarRelación RESERVA-HUESPED
idreserva (INT: primary_key)
idhabitacion (INT: primary_key)
idhuesped (INT: primary_key)
fecha_entrada (DATE)
fecha_salida (DATE)
regimen (ENUM('alojamiento','alojamiento_desayuno','media_pension','pension_completa'))

Es posible que me haya equivocado en algunas cosas, porque lo he hecho sobre la marcha aquí en el foro, ni lo he dibujado, ni lo he probado, pero creo que en general se adapta a los requerimientos del ejercicio, puede que falte algún detalle pero no creo que falte nada importante.

La entidad relación que yo haría sería así:

Está hecho con DBDesigner, te lo aconsejo, porque creas la entidad relación, añades los atributos correspondientes y luego exportas a SQL. Ese archivo SQL lo importas en tu gestor de bases de datos y ya tienes la tabla creada y diseñada.


En el modelo que he hecho en DBDesigner NO he puesto los atributos de cada tabla (sólo los claves principales y foráneas) para hacerla más sencilla de entender, pero obviamente cada tabla tendrá que tener los atributos que ya he especificado arriba en este post.


ERRORES que he visto en tu modelo entidad-relación

- Relacionas los servicios disponibles del hotel con la tabla huésped, ¿por qué?, no necesitas esa relación.

slis

Hola  muy buena ;-) ...tengo un similar problema con la base de datos para la administracion de un hotel, en la cual tenemos  una tabla Clientes, Pago, reservacion, habitacion y Servicio.. lo cual al realizar la relacion, hay conflicto al guardar las reservaciones.. Desde aHora se les Agradece, GRACIAS>>
**************************************************************