Enoncé du projet
Transcription
Enoncé du projet
Université de Cergy-Pontoise M2 IISC SIC 2015-2016 Data Warehouse - projet Le but de ce projet est de réaliser et étudier un entrepôt de données en intégrant des données venues de sources différentes. Les données concernent l'industrie cinématographique américaine. Le projet est divisé en deux parties. La première partie vise à construire un entrepôt de données pour ces études et à effectuer des analyses en SQL 99 pour éclairer différents phénomènes. La seconde étape vise la construction d’un médiateur simple, capable de combiner l’interrogation de l’entrepôt local avec celle d’une source LOD distante. Partie 1 Il faut d'abord construire un entrepôt de données pour collecter les informations nécessaires pour les études demandées ci-dessous. Nous intégrons dans cet entrepôt seulement les films des 6 plus grandes compagnies de distribution (distributor) : Sony Pictures, Warner Bros., Walt Disney, Universal, 20th Century Fox et Paramount Pictures entre 1995 à 2014. Nous nous intéressons seulement à six genres de film : « Adventure », « Comedy », « Drama », « Action », « Thriller/Suspense » et « Romantic Comedy ». Trois mesures sont considérées : les frais de production (Production Budget), le chiffre d'affaires aux États-Unis (Domestic Gross) et le chiffre d'affaires mondial (Worldwide Gross) pour analyser les phénomènes demandés dans ce projet. Les données pour construire la table de faits de cet entrepôt sont stockées dans le fichier movieBudgets.csv. Avant d'utiliser les données dans ce fichier, il faut éliminer tous les films dont le « Domestic Gross » et le « Worldwide Gross » sont nuls, car non exploitables pour ce projet. De plus, il faut éliminer des films dont le « Production Budget » est nul pour la même raison. Les tables de dimension sont construites à partir de différentes pages HTML du site www.thenumbers.com. Dans le fichier pagesProjet.txt vous pouvez trouver tous ces liens. Après la construction de l'entrepôt de données ci-dessus, nous voulons analyser des phénomènes suivants en utilisant des requêtes SQL99 : 1. Pour chaque compagnie, chaque genre de film et chaque année entre 1995 et 2014, nous cherchons les trois films ayant les plus hauts chiffres d’affaires mondiales (Worldwide Gross). 2. Pour chaque genre de film et chaque année entre 1995 et 2014, nous cherchons les films parmi les dix premiers en chiffre d'affaires mondial (Worldwide Gross) mais pas parmi les dix premiers films en chiffre d'affaires aux États-Unis (Domestic Gross). 3. Effectuer la même analyse qu’au point (1) pour le taux d'investissement, défini comme : (Worldwide Gross - Production Budget) / Production Budget 4. Pour chaque année, calculez la moyenne des bénéfices pour chaque genre de film. Le bénéfice de chaque film est défini comme la différence entre son chiffre d'affaires mondial (Worldwide Gross) et ses frais de production (Production Budget). 5. A partir de ces moyennes calculez leur moyenne mobile centrale pour chaque année entre 1995 et 2014. 6. Montrer le résultat du point (5) dans UN diagramme. Il est conseillé d'utiliser CASE pour former les données pour ce diagramme. Etape 2 L’entrepôt de la partie 1 sera utilisé pour créer un médiateur simple. Ce médiateur utilise deux sources : l’entrepôt et la source LOD « Linked Movie Database » (http://data.linkedmdb.org/), qui contient des informations sur le cinéma : films, acteurs, réalisateurs, etc. Le médiateur utilise un modèle avec une seule relation Film, qui contient toutes les caractéristiques de l’entrepôt (titre, date, genre, distributeur, budget, chiffre d’affaires US, chiffre d’affaires mondial, etc.) et trois attributs supplémentaires venant de la Linked Movie Database : réalisateur, acteur, personnage. Le lien entre les informations sur un film dans l’entrepôt et dans la source LOD se fait à travers le titre du film. Une requête sur le médiateur est composée d’une liste LR d’attributs de Film à retourner et d’une liste LC de conditions sur des attributs. Une condition sur un attribut peut être vue comme un triplet (a, op, val), où a est l’attribut, op un opérateur de comparaison (=,<,>,<=,>=, !=) et val la valeur de comparaison de la condition. Par exemple (acteur, =, "Brad Pitt") indique la condition acteur = "Brad Pitt". Les différentes conditions d’une requête sont reliées par conjonction (ET logique). Une requête portera toujours sur l’entrepôt et éventuellement aussi sur la source LOD si l’un des attributs à retourner ou avec condition fait partie des trois attributs spécifiques : réalisateur, acteur, personnage. Deux plans d’exécution d’une requête seront explorés : 1. On exécute la partie « entrepôt » de la requête et pour chaque titre de film résultant on interroge en SPARQL la source LOD pour valider les conditions et/ou compléter le résultat avec des attributs LOD. 2. On exécute séparément la partie « entrepôt » de la requête et une requête SPARQL qui correspond aux conditions LOD de la requête et aux caractéristiques générales de l’entrepôt (films américains, intervalle de temps). On joint ensuite les deux résultats sur le titre du film. Le médiateur sera programmé en Java à l’aide de l’API JDBC de la base de données utilisée pour l’entrepôt et de l’API Jena (http://jena.apache.org) pour interroger le point d’accès SPARQL de la source LOD « Linked Movie Database » (http://data.linkedmdb.org/sparql/). Plus précisément, on utilisera dans Jena l’API application, contenue dans le package com.hp.hpl.jena.query (voir http://jena.apache.org/documentation/query/app_api.html). A faire : • Exprimer le mapping entre le médiateur et les deux sources (entrepôt et LOD). Pour chaque source le mapping concernera seulement les attributs de Film présents dans la source. • Réaliser une interface graphique d’interrogation qui permet d’indiquer les attributs à retourner et les conditions. • Ecrire l’algorithme de traduction de la requête vers les deux sources, quelle que soit la requête sur le médiateur. • Implémenter les deux plans d’exécution et comparer les temps d’exécution sur quelques types de requêtes.