miércoles, 18 de enero de 2012

Ejemplo de Normalizacion (1FN a 4FN)

Efectúe la normalización del conjunto de datos propuesto en relación al caso presentado a continuación; explique cada paso y muestre el conjunto de relaciones resultante.

No olvide subrayar la clave primaria en cada relación.

HOSPEDAJES RURALES

La Dirección de Turismo de la Región Lima desea guardar información sobre los alojamientos rurales que existen en su territorio. Para ello decide crear una base de datos que recoja las siguientes consideraciones:

· Un alojamiento rural se identifica con código, tiene un nombre y una dirección.

· En cada alojamiento trabajan una serie de personas que se identifican con un código de empleado, único en todo el sistema. Se requiere conocer además su nombre completo, dirección y DNI. Aunque en un alojamiento trabajen varias personas, cada persona solamente puede trabajar en un alojamiento.

· Los alojamientos se alquilan por habitaciones, y se desea conocer cuántas habitaciones componen cada alojamiento, de qué tipo (individuales, dobles, triples) es cada una, si posee baño propio y su precio.

· Algunos de estos alojamientos organizan actividades multiaventura para sus huéspedes (caminatas, ciclismo de montaña, canotaje, etc.). Estas actividades se identifican con un código único. Es de interés saber el nombre de la actividad, la descripción y el nivel de dificultad, el cual es propio de la actividad (es decir, la dificultad no depende del alojamiento que la organice).

· Estas actividades se realizan uno o más días a la semana en cada alojamiento. Por ejemplo, en el alojamiento L005 hay canotaje los miércoles, sábado y domingo; en el alojamiento L042 hay canotaje martes, sábado y domingo, y ciclismo de montaña los lunes, miércoles y viernes.

· Los alojamientos registran a sus huéspedes asignándoles un código de identificación (único en cada alojamiento), y registrando su nombre completo y su nacionalidad. Se debe conocer además todas las ocasiones en que se hospedó cada huésped, guardando la información la habitación que ocupó y del período de hospedaje en términos de la fecha de llegada y de salida del alojamiento. Esto es muy importante puesto que hay personas que regresan muchas veces al mismo alojamiento, en sus vacaciones o aprovechando fines de semana largos.

Elemento de dato
Definición
#_Telefono
Número de Teléfono del alojamiento
$_Habitacion
Costo de alquiler de la habitación
C_Actividad
Código de identificación de la actividad
C_Alojamiento
Código de identificación del alojamiento
C_DNIEmpleado
DNI del empleado
C_Empleado
Código de identificación del empleado
C_Habitacion
Código de identificación de la habitación dentro del alojamiento al que pertenece
C_Huesped
Código de identificación del huésped dentro del alojamiento
D_FinHospedaje
Fecha en que el huésped se retira del alojamiento
D_IniHospedaje
Fecha en que el huésped llega al alojamiento
F_Baño
Indicador de si la habitación cuenta con baño incorporado
N_Actividad
Nombre de la actividad (ciclismo de montaña, canotaje, etc.)
N_Alojamiento
Nombre del alojamiento
N_DiaSemana
Día de la semana en que se realiza una actividad en un alojamiento
N_Dificultad
Grado de dificultad de la actividad
N_Empleado
Nombre y apellidos del empleado
N_Huesped
Nombre y apellidos del huésped
N_Nacionalidad
Nacionalidad del huésped
N_TipoHabitacion
Nombre del tipo de habitación (simple, doble, triple)
T_Actividad
Descripción de la actividad
T_DirecAlojamiento
Dirección del alojamiento
T_DirecEmpleado
Dirección del empleado
Paso #1 - Armar el diagrama de dependencias y definir la PK:


Determinantes: (C_Actividad, C_Alojamiento, C_Empleado, C_Habitacion, C_Huesped, D_IniHospedaje)
Atributo en DMV no soportado por el conjunto de determinantes: N_DiaSemana
(C_Empleado) determina C_Alojamiento
(C_Alojamiento, C_Huesped, D_IniHospedaje) determinan C_Habitacion
è PK: (C_Actividad, C_Empleado, C_Huesped, D_IniHospedaje, N_DiaSemana)
R:      (C_Alojamiento, C_Actividad, C_Empleado, C_Habitacion, C_Huesped, #_Telefono, $_Habitacion, C_DNIEmpleado, D_FinHospedaje, D_IniHospedaje, F_Baño, N_Actividad, N_Alojamiento, N_DiaSemana, N_Dificultad, N_Empleado, N_Huesped, N_Nacionalidad, N_TipoHabitacion, T_Actividad, T_DirecAlojamiento, T_DirecEmpleado)
Paso #2 -  Trabajamos las DMV:
Actividad en Alojamiento: (C_Alojamiento, C_Actividad, N_DiaSemana)

Paso #3 -  Armar relaciones donde haya DFC:
Actividad: (C_Actividad, N_Actividad, N_Dificultad, T_Actividad)
Empleado: (C_Empleado, C_Alojamiento, C_DNIEmpleado, N_Empleado, T_DirecEmpleado, N_Alojamiento, #_Telefono, T_DirecAlojamiento)
Huésped: (C_Alojamiento, C_Huesped, N_Huesped, N_Nacionalidad)
Hospedaje: (C_Alojamiento, C_Huesped, D_IniHospedaje, D_FinHospedaje, C_Habitacion)
Habitación: (C_Alojamiento, C_Habitacion, $_Habitacion, N_TipoHabitacion, F_Baño)

Paso #4 – Despejar las DT que hubiera:
Empleado (1): (C_Empleado, C_Alojamiento, C_DNIEmpleado, N_Empleado, T_DirecEmpleado)
Alojamiento: (C_Alojamiento, N_Alojamiento, #_Telefono, T_DirecAlojamiento)

Conjunto Solución: {Actividad en Alojamiento, Actividad, Empleado (1), Alojamiento, Huésped, Hospedaje, Habitación}

No hay comentarios:

Publicar un comentario