Les entrepôts De données TP 1



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Gestion de base de données

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

CREATION WEB DYNAMIQUE

Bases de données relationnelles

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

SUPPORT DE COURS / PHP PARTIE 3

PHP 5. La base de données MySql. A. Belaïd 1

SQL Historique

Olivier Mondet

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Le Langage De Description De Données(LDD)

1. Base de données SQLite

Historisation des données

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Langage SQL : créer et interroger une base

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Cours Bases de données 2ème année IUT

Pratique et administration des systèmes

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Création et Gestion des tables

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

A QUOI SERVENT LES BASES DE DONNÉES?

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Stockage du fichier dans une table mysql:

Bases de Données relationnelles et leurs systèmes de Gestion

Installation d'un serveur FTP géré par une base de données MySQL

TP3 : Creation de tables 1 seance

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

I4 : Bases de Données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Objectifs du TP : Initiation à Access

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

I. MySQL : Serveur et SGBD

Compétences Business Objects

PHP et les Bases de données - Généralités

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Présentation Windows Azure Hadoop Big Data - BI

TP Contraintes - Triggers

Les bases de données

Les BASES de DONNEES dans WampServer

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Application web de gestion de comptes en banques

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

Introduction aux Bases de Données 2004/2005

Modifications des modèles de factures

Mysql avec EasyPhp. 1 er mars 2006

MODE OPERATOIRE OPENOFFICE BASE

Le langage SQL Rappels

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Optimisations des SGBDR. Étude de cas : MySQL

TP3 : Etude de cas Talend

A QUOI SERVENT LES BASES DE DONNÉES?

La présente publication est protégée par les droits d auteur. Tous droits réservés.

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1 Position du problème

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

PHP 4 PARTIE : BASE DE DONNEES

1/ Présentation de SQL Server :

OpenPaaS Le réseau social d'entreprise

Le protocole FTP (File Transfert Protocol,

Le Langage SQL version Oracle

Notes de cours : bases de données distribuées et repliquées

Bases de données élémentaires Maude Manouvrier

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

BTS/CGO P10 SYSTEME INFORMATION Année

Cours SQL. Base du langage SQL et des bases de données

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Cours: Administration d'une Base de Données

Le langage SQL (première partie) c Olivier Caron

Devoir Data WareHouse

FileMaker 13. Guide de référence SQL

Mysql. Les requêtes préparées Prepared statements

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

NF26 Data warehouse et Outils Décisionnels Printemps 2010

SQL Server 2000, Analysis Services et DTS

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

BASES DE DONNEES TP POSTGRESQL

Django et PostgreSQL sous la charge

Introduction au Système de Gestion de Base de Données et aux Base de Données

Pour les débutants. langage de définition des données

Ecole Polytechnique de Louvain INGI Fichiers et bases de données

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Transcription:

UNIVERSITE SIDI MOHAMED BEN ABDELLAH FACULTE DES SCIENCES ET TECHNIQUES FES 2014-2015 Les entrepôts De données TP 1 Réalisé par : Supervisé par : AIT SKOURT BRAHIM Pr. L. Lemrini BOUCHANA ADIL ED-DAHMOUNI BOUTHAYNA EL ISSAOUI NAOUFAL

Installation d Access to MySQL -Dans ce TP on va essayer de réaliser un entrepôt de données de la société ADEX qui a besoin d effectuer l analyse des ventes réalisées auprès de ses clients. Donc, dans notre cas on a choisi d installer un programme pour convertir les bases de données Microsoft Access présents aux MySQL. P a g e 2 13

Après avoir installé ce programme on va convertir les fichiers Microsoft Access présents Adex_BASE_GEO, Adex_ventes, Adex_FOURNISSEURS aux formats (.sql). Création de la base de données Adex_ED -La base de données Adex_ED contient 4 tables : Client Produit Vente Temps -la table Client contient 1 clé primaire (Numéro) : CREATE TABLE IF NOT EXISTS `CLIENT` ( `NUMERO` INT (11) NOT NULL, `NOM` VARCHAR (255) DEFAULT NULL, P a g e 3 13

`PRENOM` VARCHAR (255) DEFAULT NULL, `VILLE` VARCHAR (255) DEFAULT NULL, `DEPARTEMENT` VARCHAR (255) DEFAULT NULL, `REGION` VARCHAR (255) DEFAULT NULL, PRIMARY KEY (`NUMERO`)) ENGINE=INNODB DEFAULT CHARSET=UTF8; -la table Produit contient 1 clé primaire (référence) : CREATE TABLE IF NOT EXISTS `produit` ( `reference` varchar(10) NOT NULL DEFAULT '0', `désignation` varchar(50) DEFAULT NULL, `Marque` varchar(50) DEFAULT NULL, `categorie` varchar(50) DEFAULT NULL, `secteur` varchar (50) DEFAULT NULL, `tauxtva` double DEFAULT NULL, PRIMARY KEY (`reference`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; -la table Temps contient 1 clé primaire (date_facture) : CREATE TABLE IF NOT EXISTS `temps` ( `date_facture` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `mois` int(11) DEFAULT NULL, `annee` int(11) DEFAULT NULL, `jour` int(11) DEFAULT NULL, PRIMARY KEY (`date_facture`), UNIQUE KEY `pk` (`date_facture`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; -la table vente contient 1 clé primaire (date_facture) et 3 clé étrangères : Les clés étrangères : Numéro<=> (Numéro) à partir de la table client. P a g e 4 13

Date_facture<=> (Date_facture) à partir de la table temps. refprod <=> (référence) de la table produit. CREATE TABLE IF NOT EXISTS `vente` ( `id` int(11) NOT NULL AUTO_INCREMENT, `refprod` varchar(10) DEFAULT NULL, `date_facture` datetime DEFAULT NULL, `numero` int(11) DEFAULT NULL, `quantite` int(11) DEFAULT NULL, `montant` double DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_num_vente_client` (`numero`), KEY `fk_datefact_vente_temps` (`date_facture`), KEY `fk_ref_vente_prod` (`refprod`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=141 ; Remplissage de la base de données Adex_ED -Dans cette partie on va définir les requêtes d interrogation sur les bases sources Adex_ventes et Adex_base_GEO permettant d alimenter les tables de l entrepôt de données Adex_ED qui contient 4 tables (Produit, client, temps, vente) et puis, on va transformer ces requêtes d interrogation en requêtes d ajout d enregistrements dans l entrepôt de données Adex_ED. Table produit : INSERT into Produit SELECT `Référence`,`Désignation`,Marque,`Catégorie`,Secteur,TauxTVA from adex_ventes.produit Table client : P a g e 5 13

INSERT into adex_ed.client select adex_ventes.client.`numéro`,adex_ventes.client.nom,adex_ventes.client.`prénom`,adex_bas e_geo.ville.nom,adex_base_geo.`département`.`nomdépt`,adex_base_geo.`région`.`nomré gion` FROM adex_ventes.client,adex_ventes.`coordonnées`,adex_base_geo.codepostal,adex_base_geo.`dé partement`,adex_base_geo.`région`,adex_base_geo.ville where client.adresse=`coordonnées`.id and `coordonnées`.`code Postal`=adex_base_geo.codepostal.`Code Postal` and adex_base_geo.codepostal.`numéro`=adex_base_geo.ville.`numéro` AND adex_base_geo.ville.`numérodépt`=adex_base_geo.`département`.`numérodépt` AND adex_base_geo.`département`.`numérorégion`=adex_base_geo.`région`.`numérorégion` Table Temps : INSERT into adex_ed.temps select `Date Facture`, MONTH(adex_ventes.facture.`Date Facture`) AS mois, YEAR(adex_ventes.facture.`Date Facture`) AS annee, DAY(adex_ventes.facture.`Date Facture`) AS jour from adex_ventes.facture GROUP BY `Date Facture` Table vente : SELECT produit.`référence`,`date Facture`,NumClient,`référencer`.`Quantité`,produit.PrixUnitHT,produit.TauxTVA P a g e 6 13

from adex_ventes.facture,adex_ventes.client,adex_ventes.fournir,adex_ventes.produit,adex_vente s.`référencer` where facture.numéro=`référencer`.`n Facture` AND facture.numclient=client.`numéro` and fournir.`réfprod`=produit.`référence` AND `référencer`.`réfprod`=produit.`référence` Calcul montant : prixht(1+tva)*quantité : Insert into adex_ed.vente(refprod,date_facture,numero,quantite,montant) SELECT produit.`référence`,`date Facture`,NumClient,`référencer`.`Quantité`, `référencer`.`quantité`*produit.prixunitht*(1+produit.tauxtva) as montant from adex_ventes.facture,adex_ventes.client,adex_ventes.fournir,adex_ventes.produit,adex_vente s.`référencer` where facture.numéro=`référencer`.`n Facture` AND facture.numclient=client.`numéro` and fournir.`réfprod`=produit.`référence` AND `référencer`.`réfprod`=produit.`référence` Requêtes liées au décisionnel sur un entrepôt de données : -Dans cette partie on va essayer à l'aide du langage SQL, d exécuter les requêtes répondant aux questions suivantes : Question 1 : - Obtenir la quantité moyenne vendue par produit (référence, désignation) et par mois pour l année 2001 P a g e 7 13

select (SUM(quantite)/count(refProd)) as moyenne from vente,temps where vente.date_fact ure=temps.date_facture AND annee=2001 Question 2 : -Obtenir le montant total TTC des ventes par département et par catégorie de produit SELECT departement, categorie, SUM(montant) as ttc from client,vente,prod uit WHERE vente.numero=client.numero AND refprod=reference Group by departement, categorie P a g e 8 13

Question 3 : -Obtenir le meilleur client (Numéro, nom, prénom) en montant total. select sum(montant),client.numero, nom,prenom FROM vente, client where client.numero =vente.numero group by vente.numero ORDER By sum(montant) DESC limit 1 Question 4 : - Obtenir le nombre de marques achetées par client. SELECT nom,prenom,count(marque) from client,vente,produit where refprod=reference a nd client.numero=vente.numero GROUP BY vente.numero P a g e 9 13

Modification d un entrepôt de données - Dans cette partie on va modifier l entrepôt de données Adex_ED afin de prendre en compte le nouveau fait ACHAT et la nouvelle dimension FOURNISSEUR). En utilisant la nouvelle base données Adex_FOURNISSEURS, on va créer la requête SQL pour ajouter les nouvelles dates liées aux approvisionnements de produits auprès des fournisseurs dans la table TEMPS existante. Ensuite on va créer la requête SQL pour ajouter les données dans la nouvelle table FOURNISSEUR et la requête SQL pour ajouter les données dans la table nouvelle table ACHAT. Après modification de la base de données Adex_ED : P a g e 10 13

REMPLISSAGE DE LA TABLE TEMPS : INSERT INTO temps(date_facture,`mois`,`annee`) SELECT DISTINCT `Date`,extract(month From `Date`),extract(year From `Date`) FROM Adex_fournisseurs.fournir WHERE NOT Exists(select * from temps where `date_facture`=date) REMPLISSAGE DE LA TABLE FOURNISSEURS : INSERT INTO fournisseur(`code`,`raison`,n,voie,`code postal`, ville,tel) SELECT * FROM adex_fournisseurs.fournisseur P a g e 11 13

REMPLISSAGE DE LA TABLE ACHAT : INSERT INTO achat(`codef`,`refprod`,`date`,`quantite`,`prixunit`,`total`) SELECT `codef`,`réfprod`,`date`,`quantité`,`prixunitht`, (quantité*prixunitht) as total from adex_fournisseurs.fournir -Maintenant et après Avoir réalisé notre nouvelle base de données Adex_ED on passe à calculer le montant total horst taxes acheté auprès de chaque fournisseur chaque année : SELECT codef,annee,sum(total) as HT FROM achat,temps WHERE achat.date=temps.date_facture Group by codef,annee P a g e 12 13

P a g e 13 13