0% ont trouvé ce document utile (0 vote)
122 vues3 pages

Solution Datamart1

Ce document présente un exemple de modélisation d'un magasin de données pour les réservations d'hôtels. Il identifie les principaux événements, mesures, dimensions et leurs attributs, puis propose un schéma en étoile.

Transféré par

Fatima Karhich
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
122 vues3 pages

Solution Datamart1

Ce document présente un exemple de modélisation d'un magasin de données pour les réservations d'hôtels. Il identifie les principaux événements, mesures, dimensions et leurs attributs, puis propose un schéma en étoile.

Transféré par

Fatima Karhich
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Exemple de modélisation pour le magasin de données #1

1) Identifiez le principal évènement d’affaires

Le principal évènement d’affaires est: « la réservation par un client d’une chambre d’un
certain type dans un hôtel, pour une certain période ».

2) Identifiez les attributs associés aux faits

En se basant sur les questions analytiques, les trois métriques de performance sont :
• Le nombre de réservations
• La durée (moyenne) des séjours
• Les revenus non-attribuables aux restaurants

La dernière métrique s’obtient en multipliant le nombre de chambres (Room_count) avec


le nombre de jours (Number_of_days) et le tarif de la chambre (Room_standard_rate)

3) Identifiez les dimensions et leurs attributs

En se basant sur les questions analytiques et les sources, les principales dimensions
sont Client, Hôtel, DateArrivée et TypeChambre.

Note: bien que nous ne modélisons que le premier magasin de données, il est important
de prévoir la modélisation du second magasin de données afin d’éviter d’avoir des silos
de données. Pour ce faire, nous allons tenter de modéliser des dimensions conformes.

Dimension Clients (DimCustomer):

Cette dimension se retrouve dans les tables Guests et Customers des trois sources de
données. Les attributs diffèrent par le fait que la table Guests comporte une colonne
pour le prénom et une autre pour le nom de famille, alors que les autres tables ont une
seule colonne pour le nom complet. Puisqu’il est préférable d’avoir des attributs séparés,
nous choisissons cette option et laissons l’ETL diviser les noms complets dans les
tables Customers. De même, on conserve l’attribut courriel de la table Guests.

Note : On suppose que les numéros de client sont les mêmes pour le système de
réservation et de commandes. Si ce n’est pas le cas, il faudrait alors stocker les
identifiants des deux sources dans la table de dimension.

Attributs :
• Customer_number
• Customer_first_name
• Customer_last_name
• Customer_address
• Customer_city
• Customer_zipcode
• Customer_email

Dimension Hôtel (DimHotel):


On commence par identifier les attributs communs à toutes les sources :
• Hotel_id
• Country_code
• Hotel_name
• Hotel_address
• Hotel_city
• Hotel_zipcode

On analyse ensuite les relations avec les autres tables dans la base de données de
réservation. La relation plusieurs-à-un avec Countries correspond à une hiérarchie
dimensionnelle Hôtel → Pays et on met les attributs de Countries dans la dimension :
• Country_currency
• Country_name

La relation un-à-plusieurs avec HotelRooms est plus complexe à gérer car il ne s’agît
pas d’une hiérarchie dimensionnelle. Une solution consiste à résumer la relation à l’aide
de statistiques dans la dimension Hôtel. Par exemple :
• Nb_ rooms_total
• Nb_rooms_type1
• ...
• Nb_rooms_typeN
• Nb_floors
• etc.

La relation plusieurs-à-plusieurs avec Amenities peut être dénormalisée en introduisant


un attribut binaire (flag) et descriptifs pour chaque service :
• Amenity1_flag
• Amenity1_descr
• ...
• AmenityK_flag
• AmenityK_descr

Finalement, pour pouvoir faire une analyse sur la cote de l’hôtel, il faut rajouter un
attribut
• Average_rating

La mise à jour de cet attribut est gérée par l’ETL.

Dimension DateArrivée (DimCheckinDate):

Puisque la date peut jouer différents rôles, nous créons une dimension conforme Date,
contenant des attributs standards :
• Day
• Month
• Year
• Day_of_week
• Holiday_flag
• ...
Dimension TypeChambre (DimRoomType):

Pour cette dimension, nous utilisons les colonnes de la table Room types :
• Room_type_code
• Room_type_standard_rate
• Room_description
• Smoking_YN

4) Élaborez le schéma en étoile selon les principes vus en classe

DimHotel
DimDate
Hotel_id (PK)
Date_id (PK)
Hotel_name
Day
Hotel_address
Month
Hotel_city
Year
Hotel_zipcode
Day_of_week
Country_code
Holiday_flag
Country_currency
...
Country_name
Nb_rooms_total
Nb_rooms_type1
FactBooking ...
Booking_id (PK, DD) Nb_rooms_typeN
Customer_id (FK) Nb_floors
Hotel_id (FK) Amenity1_flag
Checkin_date_id (FK) Amenity1_descr
Room_type_id (FK) ...
Number_of_days AmenityK_flag
Room_count AmenityK_descr
Booking_total Average_rating
DimCustomer
Customer_id (PK)
Customer_number
Customer_first_name DimRoomType
Customer_last_name Room_type_id (PK)
Customer_address Room_type_code
Customer_city Room_standard_rate
Customer_zipcode Room_description
Customer_email Smoking_YN

Vous aimerez peut-être aussi