**TODO**
Gestionnaire de bases de données
===== Analyse des données=====
**Définitions**:
* **Données aggrégées** : données regroupées en classes (clusters), éventuellement organisées de façon hiérarchique. Possibilité d’appartenances à de multiples hiérarchies (cubes de données).
* **Analyse des données** : le but est de dégager des indicateurs à partir d’un grand ensemble de données, afin de faciliter la prise de décision.
**cas d’utilisation** :
* quels sont les magasins les plus rentables? doit-on ouvrir / fermer des magasins?
* où doit-on implanter un nouveau magasin?
* y a-t-il une corrélation entre le lancement d’une campagne publicitaire et les chiffres de vente? quels sont les supports les plus efficaces?
* quelle est la liste des clients à fidéliser?
* de quelle quantité doit-on approvisionner les magasins en fonction de la période de l’année?
analyse:
* quels sont les catégories de films/livres les plus fréquemment empruntés?
* réussite / taux d’embauche / salaire en fonction de la prépa d’origine / sexe / profession des parents
Les opérateurs d’aggrégation permettent de réaliser des statistiques sur les données, sous forme d’histogrammes (ou camemberts) organisés selon des catégories définies par les valeurs de certains attributs:
**principe :**
* opérateur d’aggrégation : comptage, somme, moyenne, ecart-type (count, sum, mean, avg, …)
* les données aggrégées sont de type quantitatif
* les attributs définissant les classes sont de type qualitatif.
Exemples de requêtes faisant appel aux fonctions d’aggrégation :
//Nombre d’élèves par groupe de TD / par prepa d’origine etc..://
SELECT groupe_TD , count(num_eleve)
FROM Eleve
GROUP BY groupe_TD
//Donner les chiffres des ventes du magasin pour chaque mois de l’année//
SELECT mois, sum(montant)
FROM Vente
GROUP BY mois
//Donner le nombre de ventes d’un montant > à 1000 euros pour chaque mois de l’année//
SELECT mois, count(num_vente)
FROM Vente
GROUP BY mois
HAVING montant >= 1000
//Tester les disparités salariales entre hommes et femmes//
SELECT sexe, avg( salaire )
FROM Employé
GROUP BY sexe
//Tester les disparités salariales selon le niveau d’éducation//
SELECT niveau_educatif, avg( salaire )
FROM Employé
GROUP BY niveau_éducatif
===== 4. Analyse des données et découverte d'informations =====
**TODO** : Manu
* fichiers csv
* matrice données (cube)
* excel
La découverte d'informations consiste à développer des outils de mise en forme des données
facilitant leur analyse. Elle repose sur deux aspects :
* projection de données qualitatives sur des espaces vectoriels ("quantification" des données)
* production d'histogrammes dans le but d'analyser la distribution des données dans l'espace de reconstruction
Le but est de dégager :
* des **tendances** (covariables)
* des **modes** de la distribution (présence de plusieurs maxima)
à partir d’un **grand** ensemble de données (chiffre d’affaires, nb de ventes, masse salariale, ...) évoluant dans le **temps** et dans l’**espace**, afin de
* définir des **indicateurs** pertinents
* faciliter la prise de décision.
==Vocabulaire anglophone généralement utilisé :==
* Business Intelligence (BI)
* Data Warehouses (Entrepôts de données)
* OLAP (Online Analytical Processing) :
"//Unlike Online Transaction Processing (OLTP), where typical operations read and modify individual and small numbers of records, OLAP deals with data in bulk, and operations are generally read-only.//"
==Entrepôts de données (Data warehouses) / Magasins de données (Data Mart)==
Exemples de grandes masses de données :
* Masses de données (pullulantes) : tickets de caisse, clics web, appels tel, operations bancaires, remboursements no URSSAF, trajets SNCF…
* Données importantes : fichiers de clients, données biométriques, campagnes de mesures, sondages,...
* Données géographiquement localisées (gestion d’un “territoire”) : appels tel, centres de production, consommation eau-électricité-gaz, infractions pénales, arrêts maladie, prêts bancaires, allocations chômage, jugements des TGI, accidents du travail...
Remarque : Les transactions marchandes sont un cas classique (acte d’achat bien répertorié et enregistrés, livres de comptes, …)
== Problèmes ==
* Quels sont les catégories de films/livres les plus fréquemment empruntés?
* Réussite / taux d’embauche / salaire en fonction de la prépa d’origine / sexe / profession des parents
* Tester les disparités salariales hommes/femmes en fonction du niveau d’éducation.
* Donner le taux de réussite par groupe de matière en fonction de la filière d’origine (MP, PSI, PC, PT, ...)
* A quelles heures de la journée la messagerie est-elle la plus sollicitée?
* Comment se répartissent géographiquement les utilisateurs de la messagerie?
== Agrégation ==
L'agrégation consiste:
* à positionner les mesures sur des axes (temporels, géographiques,...)
* ou à les organiser en classes (et sous-classes) selon la valeur d'un ou plusieurs attributs.
* à utiliser des **opérateur d’aggrégation** :
* comptage, somme, moyenne, ecart-type, max, min, ...
* (''count'', ''sum'', ''mean'', ''avg'', ''max'', ''min''...)
* afin de dégager :
* des tendances (selon des dimensions)
* des modes (analyse par histogramme)
* des corrélations (analyse croisée)
== Dimensions ==
* (qui?) Quels sont les magasins les plus rentables? doit-on ouvrir / fermer des magasins?
* Où doit-on implanter un nouveau magasin?
* Y a-t-il une corrélation entre le lancement d’une campagne publicitaire et les chiffres de vente? quels sont les supports les plus efficaces?
* (qui?) Quelle est la liste des clients à contacter?
* (quand?) De quelle quantité doit-on approvisionner les magasins en fonction de la période de l’année?
==Problèmes : ==
* définir des intervalles temporels?? créneaux horaires? => distributions, histogrammes
* définir des secteurs géographiques?
* => hiérarchies pays > département > région
* Taille du message, has_attachement?
* => mesures sur des faits élémentaires
==== 4.1 Tableaux de données ====
Organisation des données sous forme de tableaux bidimensionnels :
=== Schémas de données ===
* Une mesure est un jeu de valeurs organisé sous forme de **tuple**
* A un tuple on associe en général un **schéma de données**.
{{public:std-3:cm1:s7_schema.png}}
* Définir un **schéma** consiste à définir :
* une liste d'attributs (labels) associées à chacune des valeurs du tuples.
* A chaque **attribut** correspond :
* un //intitulé//
* un //domaine// de valeurs (type/format des données)
=== Tableau de données ===
Un tableau de données est une liste (finie et ordonnée) de tuples, chaque tuple obéissant à un même schéma $R$.
{{https://wiki.centrale-marseille.fr/informatique/_media/public:std-3:cm1:s7-tableau-data.png}}
=== Formats d'échange ===
Les principaux formats d'échange de données sont :
* csv
* json
* xml
TODO
Exemples :
* {{http://edauce.perso.centrale-marseille.fr/visible/clients.xml|Clients}}
* {{http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml|Cours de l'Euro}}
* {{http://edauce.perso.centrale-marseille.fr/visible/Zipssortedbycitystate.csv|codes postaux}}
* {{http://edauce.perso.centrale-marseille.fr/visible/codes-postaux.json|codes postaux}}
Sites de données :
* {{https://www.data.gouv.fr/fr/|www.data.gouv.fr}}
* {{https://www.nature.com/sdata/|scientific data}}
* {{https://www.opendatasoft.fr/ressource-liste-portails-open-data-dans-le-monde/|Liste de ressources open data}}
* {{https://www.data.gov/|data.gov}}
* {{https://fr.openfoodfacts.org/|open food facts}}
==== 4.2 Faits élémentaires ====
* Notion de fait élémentaire (//fact//): transaction ou opération localisée dans le temps et dans l’espace
Exemples de “fait”:
* Achat/Vente
* Opération bancaire (débit/crédit)
* Consultation (site web)
* Souscription à un contrat d’assurance
* Appel téléphonique
* Inscription
Tous ces faits peuvent être localisés. Des mesures peuvent être effectuées sur ces faits (montant d’une vente, durée d’un appel, montant d’une opération bancaire, …)
**Points clés** :
* distinction entre **Dimension** et **Mesure**.
* Notion de dimension : qui? quoi? où? quand? Comment? : associe des **coordonnées** à l’événement (géographiques, temporelles) et par extension une catégorie.
* Notion de **mesure(s)** associées à l’événement (exemple : montant de la vente)
* distributions, répartitions, etc... cf analogie proba/stats : événement aléatoire, vecteur aléatoire, …
* les événements sont associés par paquets sur des intervalles réguliers ou selon des catégories discretes.
* Fonctions d’aggrégation : réalise la mesure sur les groupe : somme, comptage, moyenne, min, max, etc...
* histogramme : nb d’événements observés par secteur sur un maillage régulier de l’espace des coordonnées. Par extension mesure sur ce maillage par une fonction d’aggrégation.
== Modèle en étoile==
* un fait est une association située au centre du schéma. Les attributs de l’association sont les mesures effectuées
* une dimension est une relation participant au fait. Les dimensions sont donc décrites par des attributs (ex : attributs année, trimestre, mois, jour, heure, minute, seconde,...pour une dimension temporelle)
* pour chaque dimension, on décrit une hiérarchie sur les différents attributs de la dimension en définissant un ordre, du particulier au général.
{{public:omi-5a-o-rech:bi2.png}}
==Exemples :==
* sur la dimension temporelle : mois ⊂ trimestre ⊂ année
* sur la dimension promotion : nom ⊂ catégorie ⊂ média ⊂ type de média
etc...
==Exemples==
* {{https://forge.centrale-marseille.fr/attachments/download/143/ventes.csv|Ventes}}
* {{http://edauce.perso.centrale-marseille.fr/visible/sales.csv|Ventes}}
* {{http://edauce.perso.centrale-marseille.fr/visible/Track.csv|Pistes}}
=== Tables pivot ===
Les tables pivot permettent d'analyser des faits selon deux dimensions organisées sur les deux axes d'un tableau
===Cubes de données===
Un cube de données est une structure de données organisée sur le principe des espaces vectoriels. Différents axes sont définis, chaque axe étant associé à une dimension particulière.
* Les dimensions peuvent correspondre à des valeurs discrètes (catégories : type de produit, catégorie de client,...) ou continues (valeurs temporelles ou géographiques, ...).
* Chaque fait est décrit comme un point de l’espace vectoriel. Il est positionné dans une cellule du cube. A ce point sont associées une ou plusieur mesures.
* Le cube est un ensemble de cellules (voir figure), chaque cellule correspondant à un intervalle (sur les axes continus) ou une valeur (sur les axes discrets).
Un élément essentiel du modèle de données est la définition de **hiérarchies** sur les dimensions du cube. Chaque dimension se divise en intervalles et sous-intervalles (pour le continu/ quantitatif) ou en catégories et sous-catégories (pour le discret/qualitatif)
Les hiérarchies sur les différentes dimensions permettent de définir le “niveau de résolution” sur les différentes dimensions.
* On peut ainsi s’intéresser à l’évolution d’une certaine grandeur au cours du temps année par année, trimestre par trimestre ou mois par mois selon le niveau de résolution choisi.
*-> Hiérarchie : description arborescente d’intervalles et de sous-intervalles sur une dimension. Implemente differentes granularités sur la dimension considérée.
{{public:omi-5a-o-rech:bi1.png}}
La structure de cube de données est adaptée pour la réalisation d’histogramme multidimensionnels, selon les axes choisis et le niveau de résolution choisi, à l’aide de fonctions d’aggrégation.
* Histogramme et aggrégation
* (vue quantitative) comptage/répartition d’événements sur un intervalle (discrétisaton d’une distribution d’événements)
* (vue qualitative) comptage d’événements par catégorie
* (vue intermediaire) comptage d’événements par catégories hiérarchisées
==== 4.3. Mise en oeuvre ====
=== Pandas ===
http://pandas.pydata.org/pandas-docs/stable/10min.html
=== XMLA / MDX ===